using System; using System.Collections.Generic; using System.Linq; using System.Net.Http.Headers; using System.Text; using System.Threading.Tasks; using System.Text.Json; using System.Text.Json.Serialization; namespace VirtualDJ_MidiDeviceBridge { internal class MidiConfig { [JsonInclude] public int ShiftNoteId = 0; [JsonInclude] public bool ToggleShift = true; [JsonInclude] public Dictionary MidiInCommands = new Dictionary(); [JsonInclude] public List MidiOutCommandsSysEx = new List(); [JsonInclude] public Dictionary MidiInShiftCommands = new Dictionary(); [JsonInclude] public List MidiOutShiftCommandsSysEx = new List(); public static MidiConfig GetDefaultConfig() { MidiConfig conf = new MidiConfig(); conf.MidiInCommands.Add("NOTEON_0", "play"); conf.MidiInCommands.Add("NOTEOFF_0", "pause"); conf.MidiInCommands.Add("CONTROL_0", "set_gain %val%"); conf.MidiOutCommandsSysEx.Add("deck 1 play ? get_text '0x90,0x20,0x01' : get_text '0x90,0x20,0x00'"); return conf; } public Dictionary GetActiveMidiInCommands(bool shift) { if (shift) return MidiInShiftCommands; return MidiInCommands; } public List GetActiveMidiOutShiftCommandsSysEx(bool shift) { if (shift) return MidiOutShiftCommandsSysEx; return MidiOutCommandsSysEx; } } }