/// <summary> /// Evaluate button press from remote /// </summary> /// <param name="button">Remote Button</param> private void OnRemoteClick(object sender, RemoteEventArgs e) //RemoteButton button) { RemoteButton remoteButton = e.Button; // Set LastHidRequest, otherwise the HID handler (if enabled) would react on some remote buttons (double execution of command) switch (remoteButton) { case RemoteButton.Record: InputDevices.LastHidRequest = AppCommands.MediaRecord; break; case RemoteButton.Stop: InputDevices.LastHidRequest = AppCommands.MediaStop; break; case RemoteButton.Pause: InputDevices.LastHidRequest = AppCommands.MediaPause; break; case RemoteButton.Rewind: InputDevices.LastHidRequest = AppCommands.MediaRewind; break; case RemoteButton.Play: InputDevices.LastHidRequest = AppCommands.MediaPlay; break; case RemoteButton.Forward: InputDevices.LastHidRequest = AppCommands.MediaFastForward; break; case RemoteButton.Replay: InputDevices.LastHidRequest = AppCommands.MediaPreviousTrack; break; case RemoteButton.Skip: InputDevices.LastHidRequest = AppCommands.MediaNextTrack; break; case RemoteButton.Back: InputDevices.LastHidRequest = AppCommands.BrowserBackward; break; case RemoteButton.ChannelUp: InputDevices.LastHidRequest = AppCommands.MediaChannelUp; break; case RemoteButton.ChannelDown: InputDevices.LastHidRequest = AppCommands.MediaChannelDown; break; case RemoteButton.Mute: InputDevices.LastHidRequest = AppCommands.VolumeMute; break; case RemoteButton.VolumeUp: return; // Don't handle this command, benefit from OS' repeat handling instead case RemoteButton.VolumeDown: return; // Don't handle this command, benefit from OS' repeat handling instead } // Get & execute Mapping RemoteHandler((int) remoteButton); }
private static void OnClick(object sender, RemoteEventArgs e) { if (e.Button != RemoteButton.Start) return; ILogger logger = ServiceRegistration.Get<ILogger>(); logger.Info("Received StartButton press"); Process[] processes = Process.GetProcessesByName("MP2-Client"); if (processes.Length == 0) { logger.Info("MP2-Client is not running - starting it."); StartClient(); } else if (processes.Length == 1) { logger.Info("MP2-Client is already running - switching focus."); SwitchFocus(); } else { logger.Info("More than one window named 'MediaPortal' has been found!"); foreach (Process procName in processes) { logger.Debug("MPTray: {0} (Started: {1}, ID: {2})", procName.ProcessName, procName.StartTime.ToShortTimeString(), procName.Id); } } }