예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
                    }
                }
            }
        }