public static Dictionary <int, string> GetValues(byte[] allBytes, byte[] makernoteBytes, bool bigEndian, int type, bool isHex, int length, int offset)
        {
            Dictionary <int, string> dic = new Dictionary <int, string>();

            //byte[] bytes = new byte[];



            if (offset == 0 || length == 1)
            {
                if (type == 2)
                {
                    int z = 0;
                }
                else if (type == 3)
                {
                    byte[] valueBytes = { makernoteBytes[8], makernoteBytes[9], makernoteBytes[10], makernoteBytes[11] };
                    Int64  value16    = ByteToInt16(valueBytes, true);
                    dic.Add(0, value16.ToString());
                }
                else if (type == 4)
                {
                    byte[] valueBytes = { makernoteBytes[8], makernoteBytes[9], makernoteBytes[10], makernoteBytes[11] };
                    Int64  value64    = ByteToInt64(valueBytes, true);
                    dic.Add(0, value64.ToString());
                }
            }
            else
            {
                // ascii = bit byte
                if (type == 1)
                {
                    int    count      = length;
                    byte[] valueBytes = new byte[count];
                    int    index      = offset - s_beginningDataBytes;
                    for (int i = 0; i < count; i++)
                    {
                        valueBytes[i] = allBytes[index + i];
                    }

                    dic = MakernoteFactory.GetValuesInt8(valueBytes);
                }
                // ascii = bit byte
                else if (type == 2)
                {
                    int    count      = length;
                    byte[] valueBytes = new byte[count];
                    int    index      = offset - s_beginningDataBytes;
                    for (int i = 0; i < count; i++)
                    {
                        valueBytes[i] = allBytes[index + i];
                    }

                    dic = MakernoteFactory.GetValuesString(valueBytes, false);
                }
                // short = 2 byte
                else if (type == 3)
                {
                    int    count      = length * 2;
                    byte[] valueBytes = new byte[count];
                    int    index      = offset - s_beginningDataBytes;
                    for (int i = 0; i < count; i = i + 2)
                    {
                        valueBytes[i]     = allBytes[index + i];
                        valueBytes[i + 1] = allBytes[index + (i + 1)];
                    }

                    if (isHex)
                    {
                        dic = MakernoteFactory.GetValuesHex(valueBytes, false);
                    }
                    else
                    {
                        dic = MakernoteFactory.GetValuesInt16(valueBytes, true);
                    }
                }

                // long = 4 byte
                else if (type == 4)
                {
                    int    count      = length * 4;
                    byte[] valueBytes = new byte[count];
                    int    index      = offset - s_beginningDataBytes;
                    for (int i = 0; i < count; i = i + 4)
                    {
                        valueBytes[i]     = allBytes[index + i];
                        valueBytes[i + 1] = allBytes[index + (i + 1)];
                        valueBytes[i + 2] = allBytes[index + (i + 2)];
                        valueBytes[i + 3] = allBytes[index + (i + 3)];
                    }

                    dic = MakernoteFactory.GetValuesInt32(valueBytes, bigEndian);
                }
            }

            return(dic);
        }