예제 #1
0
        internal async Task StartAsync()
        {
            for (int i = 0; i < channels.Count; i++)
            {
                int oneChannel = i + 1;
                var channel    = channels[i];
                channel.PropertyChanged += (sender, args) =>
                {
                    switch (args.PropertyName)
                    {
                    case nameof(Channel.On):
                        controller.SetLight(oneChannel, ButtonType.Mute, channel.On == 1 ? false : true);
                        break;

                    case nameof(Channel.FaderLevel):
                        controller.MoveFader(oneChannel, (int)(channel.FaderLevel * 1023));
                        break;
                    }
                };
                await channel.RequestDataOnce().ConfigureAwait(false);
            }
            renewTimer.Change(TimeSpan.Zero, TimeSpan.FromSeconds(5));
        }