internal static AGenericMidiDefinition Parse(MappingType type, Format.MidiDefinition definition) { string id = definition.MidiNote; if (string.IsNullOrEmpty(id)) { return(null); } int channel = int.Parse(id.Substring(2, 2)); if (id.Contains("+")) { return(new ComboMidiDefinition(type, channel, definition)); } var parts = id.Split('.'); switch (parts[1]) { case "CC": return(new ControlChangeMidiDefinition(type, channel, int.Parse(parts[2]), definition)); case "Note": return(new NoteMidiDefinition(type, channel, parts[2], definition)); case "PitchBend": return(new PitchBendMidiDefinition(type, channel, definition)); default: return(null); } }
internal static AProprietaryMidiDefinition Parse(string deviceTypeStr, Format.MidiDefinition definition) { switch (definition.MidiControlType) { case MidiControlType.Button: return(new ButtonMidiDefinition(deviceTypeStr, definition)); case MidiControlType.FaderOrKnob: return(new FaderOrKnobMidiDefinition(deviceTypeStr, definition)); case MidiControlType.PushEncoder: return(new PushEncoderMidiDefinition(deviceTypeStr, definition)); case MidiControlType.Encoder: return(new EncoderMidiDefinition(deviceTypeStr, definition)); case MidiControlType.Jog: return(new JogMidiDefinition(deviceTypeStr, definition)); case MidiControlType.Out: return(new OutMidiDefinition(deviceTypeStr, definition)); default: return(null); } }
internal ComboMidiDefinition(MappingType type, int channel, Format.MidiDefinition definition) : base(type, channel, definition) { var defs = splitDefinition(definition); _midiDefinition1 = AGenericMidiDefinition.Parse(type, defs.Item1); _midiDefinition2 = AGenericMidiDefinition.Parse(type, defs.Item2); }
private Tuple <Format.MidiDefinition, Format.MidiDefinition> splitDefinition(Format.MidiDefinition definition) { var parts = definition.MidiNote.Split('+'); return(new Tuple <Format.MidiDefinition, Format.MidiDefinition>( new Format.MidiDefinition( parts[0], definition.MidiControlType, definition.MinValue, definition.MaxValue, definition.EncoderMode, definition.ControlId), new Format.MidiDefinition( parts[1], definition.MidiControlType, definition.MinValue, definition.MaxValue, definition.EncoderMode, definition.ControlId) )); }
internal EncoderMidiDefinition(string deviceTypeStr, Format.MidiDefinition definition) : base(deviceTypeStr, MappingType.In, definition) { }
internal FaderOrKnobMidiDefinition(string deviceTypeStr, Format.MidiDefinition definition) : base(deviceTypeStr, MappingType.In, definition) { }
internal static AMidiDefinition Parse(string deviceTypeStr, MappingType type, Format.MidiDefinition definition) { if ( (deviceTypeStr == "Traktor.Kontrol S4 MK3") || (deviceTypeStr == "Traktor.Kontrol S2 MK3") || (deviceTypeStr == "Traktor.Kontrol S8") || false ) { return(AProprietaryMidiDefinition.Parse(deviceTypeStr, definition)); } if (definition.ControlId > -1) { return(AProprietaryMidiDefinition.Parse(deviceTypeStr, definition)); } else { return(AGenericMidiDefinition.Parse(type, definition)); } }
internal AMidiDefinition(string deviceTypeStr, MappingType type, Format.MidiDefinition definition) { DeviceTypeStr = deviceTypeStr; Type = type; RawDefinition = definition; }
internal PitchBendMidiDefinition(MappingType type, int channel, Format.MidiDefinition definiton) : base(type, channel, definiton) { }
internal AGenericMidiDefinition(MappingType type, int channel, Format.MidiDefinition definition) : base(Device.TYPE_STRING_GENERIC_MIDI, type, definition) { _channel = channel; _note = definition.MidiNote.Replace(string.Format("Ch{0:00}.", channel), ""); }
internal AProprietaryMidiDefinition(string deviceTypeStr, MappingType type, Format.MidiDefinition definition) : base(deviceTypeStr, type, definition) { }
internal static AMidiDefinition Parse(string deviceTypeStr, MappingType type, Format.MidiDefinition definition) { if (definition.ControlId > -1) { return(AProprietaryMidiDefinition.Parse(deviceTypeStr, definition)); } else { return(AGenericMidiDefinition.Parse(type, definition)); } }
internal OutMidiDefinition(string deviceTypeStr, Format.MidiDefinition definition) : base(deviceTypeStr, MappingType.Out, definition) { }
internal NoteMidiDefinition(MappingType type, int channel, string keyText, Format.MidiDefinition definition) : base(type, channel, definition) { _keyText = keyText; }
internal ControlChangeMidiDefinition(MappingType type, int channel, int cc, Format.MidiDefinition definition) : base(type, channel, definition) { _cc = cc; }