internal MixerConnector(PlatformMXController controller, Mixer mixer) { this.controller = controller; this.mixer = mixer; controller.ButtonChanged += HandleButtonChanged; controller.FaderMoved += ChangeVolume; // TODO: Mapping from knob to input channel customization channels = Enumerable.Range(1, 8) .Select(index => XAir.CreateInputChannel(mixer, index)) .ToList(); renewTimer = new Timer(RefreshSubscriptionsAsync); }
static async Task Main(string[] args) { var controller = await PlatformMXController.ConnectAsync("Platform M+ V2.15"); controller.ButtonChanged += (sender, args) => { Console.WriteLine($"Channel {args.Channel} button {args.Button} {(args.Down ? "pressed" : "released")}"); controller.SetLight(args.Channel, args.Button, args.Down); }; controller.KnobTurned += (sender, args) => { Console.WriteLine($"Channel {args.Channel} knob turned with value {args.Value}"); }; controller.FaderMoved += (sender, args) => { Console.WriteLine($"Channel {args.Channel} fader moved to {args.Position}"); controller.MoveFader(args.Channel, args.Position); }; await Task.Delay(60000); }
static async Task Main(string[] args) { // MIDI input name hard-coded as I think the chances of anyone else running this are slim... await using (var controller = await PlatformMXController.ConnectAsync("Platform M+ V2.15")) { Console.WriteLine("Connected to controller"); using (var mixer = new Mixer()) { // IP address hard-coded as I think the chances of anyone else running this are slim... mixer.Connect("192.168.1.41", 10024); mixer.RegisterHandler("/info", (sender, message) => Console.WriteLine($"Mixer info response: {string.Join("/", message)}")); await mixer.SendInfoAsync(); using (var connector = new MixerConnector(controller, mixer)) { await connector.StartAsync(); await Task.Delay(Timeout.Infinite); } } } }