Beispiel #1
0
 public ChromecastService(IDeviceLocator deviceLocator, ISender sender)
 {
     DeviceLocator = deviceLocator;
     Sender        = sender;
     sender.GetChannel <IMediaChannel>().StatusChanged    += MediaChannelStatusChanged;
     sender.GetChannel <IReceiverChannel>().StatusChanged += ReceiverChannelStatusChanged;
 }
Beispiel #2
0
 public MidiController(string definitionPath, string profilePath, ILogger logger, IDeviceLocator deviceLocator)
 {
     _commandQueue   = new ConcurrentQueue <ICommand>();
     _definitionPath = definitionPath;
     _profilePath    = profilePath;
     _logger         = logger;
     _deviceLocator  = deviceLocator;
 }
Beispiel #3
0
 public void Initialize(Control control, ControlGroup controlGroup, MidiController midiController, ILogger logger, IDeviceLocator deviceLocator)
 {
     _midiController    = midiController;
     this.Control       = control;
     this.Logger        = logger;
     this.ControlGroup  = controlGroup;
     this.DeviceLocator = deviceLocator;
 }
Beispiel #4
0
        /// <summary>
        /// Initializes a new instance of MainViewModel class
        /// </summary>
        /// <param name="deviceLocator">GoogleCast device locator</param>
        /// <param name="sender">GoogleCast sender</param>
        public MainViewModel(IDeviceLocator deviceLocator, ISender sender)
        {
            DeviceLocator = deviceLocator;
            Sender        = sender;
            sender.GetChannel <IMediaChannel>().StatusChanged    += MediaChannelStatusChanged;
            sender.GetChannel <IReceiverChannel>().StatusChanged += ReceiverChannelStatusChanged;
            PlayCommand    = new RelayCommand(async() => await Try(PlayAsync), () => AreButtonsEnabled);
            PauseCommand   = new RelayCommand(async() => await Try(PauseAsync), () => AreButtonsEnabled);
            StopCommand    = new RelayCommand(async() => await Try(StopAsync), () => AreButtonsEnabled);
            RefreshCommand = new RelayCommand(async() => await Try(RefreshAsync), () => IsLoaded);

            if (!IsInDesignMode)
            {
                Task.Run(RefreshAsync);
            }
        }
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            _deviceLocator  = new MMDeviceLocator();
            _midiController = new MidiController(
                ".\\nanoKONTROL2.controller", ".\\nanoKONTROL2.commands",
                new TraceLogger(), _deviceLocator);

            _midiController.ControlChanged += _midiController_ControlChanged;

            _controlGroups = new Dictionary <string, ControlGroupUserControl>()
            {
                { "Group 1", this.Group1 },
                { "Group 2", this.Group2 },
                { "Group 3", this.Group3 },
                { "Group 4", this.Group4 },
                { "Group 5", this.Group5 },
                { "Group 6", this.Group6 },
                { "Group 7", this.Group7 },
                { "Group 8", this.Group8 }
            };

            _midiController.Start();
        }
        public static ICommand Create(string name, Control control, ControlGroup controlGroup, MidiController midiController, ILogger logger, IDeviceLocator deviceLocator)
        {
            lock (_controllerCommandsLock)
            {
                InitializeCommands();

                if (_controllerCommands.TryGetValue(control.Controller, out var commandInstance))
                {
                    return(commandInstance);
                }
                else
                {
                    if (_commands.TryGetValue(name, out var _commandType) ||
                        _commands.TryGetValue(name + "Command", out _commandType))
                    {
                        commandInstance = Activator.CreateInstance(_commandType) as ICommand;
                        if (commandInstance != null)
                        {
                            commandInstance.Initialize(control, controlGroup, midiController, logger, deviceLocator);
                        }
                        _controllerCommands.Add(control.Controller, commandInstance);
                        return(commandInstance);
                    }
                }
                return(null);
            }
        }
Beispiel #7
0
 public void Initialize(Control control, ControlGroup controlGroup, MidiController midiController, ILogger logger, IDeviceLocator deviceLocator)
 {
     _deviceLocator = deviceLocator;
     _controlGroup  = controlGroup;
 }