public Macro(MacroEntry title, MacroEntry icon, MacroEntry key, MacroEntry[] lines) { Title = title; Icon = icon; Key = key; Lines = lines; }
private Macro ReadMacro(byte[] data, ref int offset) { MacroEntry t = new MacroEntry(); t.Type = EntryType.T; MacroEntry i = new MacroEntry(); i.Type = EntryType.I; MacroEntry k = new MacroEntry(); k.Type = EntryType.K; MacroEntry[] lines = new MacroEntry[15]; // we can actually ignore types, we know what comes after what offset++; byte titleSize = data[offset]; offset += 2; // skip a null as well t.Data = Encoding.UTF8.GetString(data, offset, titleSize).TrimEnd('\0'); offset += titleSize; offset++; byte iconSize = data[offset]; offset += 2; i.Data = Encoding.UTF8.GetString(data, offset, iconSize).TrimEnd('\0'); offset += iconSize; offset++; byte keySize = data[offset]; offset += 2; k.Data = Encoding.UTF8.GetString(data, offset, keySize).TrimEnd('\0'); offset += keySize; for (int j = 0; j < 15; j++) { lines[j] = new MacroEntry(); offset++; byte thisLineSize = data[offset]; offset += 2; lines[j].Data = Encoding.UTF8.GetString(data, offset, thisLineSize).TrimEnd('\0'); offset += thisLineSize; } Macro toReturn = new Macro(t, i, k, lines); BitmapImage bi; _iconImages.TryGetValue(i.Data, out bi); toReturn.IconImage = bi; return(toReturn); }
private void BytesLength(MacroEntry e) { }