//Synchronize changes made directly to the chromecast (i.e by some other remote) to the musicbee player
        private void Synchronize_Reciever(object sender, EventArgs e)
        {
            if (mediaChannel == null)
            {
                return;
            }
            var obj = mediaChannel.Status;

            if (obj == null)
            {
                return;
            }

            var chromecastTime = obj.First().CurrentTime;
            var playerState    = obj.First().PlayerState;

            //Reflect changes made in the songs timeline to the musicbee player
            mbApiInterface.Player_SetPosition((int)(chromecastTime * 1000));

            var musicbeePlayerState = mbApiInterface.Player_GetPlayState();

            //Reflect the changes in the play state on the chromecast to the musicbee player
            if (playerState == "PAUSED" && musicbeePlayerState == PlayState.Playing)
            {
                mbApiInterface.Player_PlayPause();
            }
            if (playerState == "PLAYING" && musicbeePlayerState == PlayState.Paused)
            {
                mbApiInterface.Player_PlayPause();
            }
        }
示例#2
0
        private void systemMediaControls_ButtonPressed(SystemMediaTransportControls smtc,
                                                       SystemMediaTransportControlsButtonPressedEventArgs args)
        {
            lock (commandLock)
            {
                switch (args.Button)
                {
                case SystemMediaTransportControlsButton.Play:
                case SystemMediaTransportControlsButton.Pause:

                    if (systemMediaControls.PlaybackStatus != MediaPlaybackStatus.Changing)
                    {
                        mbApiInterface.Player_PlayPause();
                    }

                    break;

                case SystemMediaTransportControlsButton.Stop:
                    mbApiInterface.Player_Stop();
                    break;

                case SystemMediaTransportControlsButton.Next:
                    mbApiInterface.Player_PlayNextTrack();
                    break;

                case SystemMediaTransportControlsButton.Rewind:
                case SystemMediaTransportControlsButton.Previous:
                    if (systemMediaControls.PlaybackStatus != MediaPlaybackStatus.Changing)
                    {
                        // restart song
                        if (DateTime.Now.Subtract(lastPrevious).TotalMilliseconds > PreviousDelay)
                        {
                            mbApiInterface.Player_Stop();
                            mbApiInterface.Player_PlayPause();
                            lastPrevious = DateTime.Now;
                            break;
                        }

                        // play previous track
                        if (DateTime.Now.Subtract(lastPrevious).TotalMilliseconds < PreviousDelay)
                        {
                            mbApiInterface.Player_Stop();
                            mbApiInterface.Player_PlayPreviousTrack();
                            lastPrevious = DateTime.Now;
                        }
                    }

                    break;

                // TODO: fix
                case SystemMediaTransportControlsButton.ChannelUp:
                    mbApiInterface.Player_SetVolume(mbApiInterface.Player_GetVolume() + 0.05F);
                    break;

                case SystemMediaTransportControlsButton.ChannelDown:
                    mbApiInterface.Player_SetVolume(mbApiInterface.Player_GetVolume() - 0.05F);
                    break;
                }
            }
        }
        public void changePlayState(int state)
        {
            switch (state)
            {
            case 0:
                mbApiInterface_.Player_PlayPause();
                break;

            case 1:
                mbApiInterface_.Player_PlayNextTrack();
                break;

            case 2:
                mbApiInterface_.Player_PlayPreviousTrack();
                break;

            case 3:
                mbApiInterface_.Player_Stop();
                break;

            case 4:
                mbApiInterface_.Player_Stop();
                mbApiInterface_.Player_PlayPause();
                break;
            }
        }
示例#4
0
 private void MediaControl_PlayPauseButtonPress()
 {
     if (DateTime.Now.Subtract(lastPlayPauseKeyPress).TotalMilliseconds > mediaKeysInvalidateBeforeMs)
     {
         mbApiInterface.Player_PlayPause();
     }
 }
        private void systemMediaControls_ButtonPressed(SystemMediaTransportControls smtc, SystemMediaTransportControlsButtonPressedEventArgs args)
        {
            switch (args.Button)
            {
            case SystemMediaTransportControlsButton.Stop:
                mbApiInterface.Player_Stop();
                break;

            case SystemMediaTransportControlsButton.Play:
                if (mbApiInterface.Player_GetPlayState() != PlayState.Playing)
                {
                    mbApiInterface.Player_PlayPause();
                }
                break;

            case SystemMediaTransportControlsButton.Pause:
                if (mbApiInterface.Player_GetPlayState() != PlayState.Paused)
                {
                    mbApiInterface.Player_PlayPause();
                }
                break;

            case SystemMediaTransportControlsButton.Next:
                mbApiInterface.Player_PlayNextTrack();
                break;

            case SystemMediaTransportControlsButton.Previous:
                mbApiInterface.Player_PlayPreviousTrack();
                break;

            case SystemMediaTransportControlsButton.Rewind:
                break;

            case SystemMediaTransportControlsButton.FastForward:
                break;

            case SystemMediaTransportControlsButton.ChannelUp:
                mbApiInterface.Player_SetVolume(mbApiInterface.Player_GetVolume() + 0.05F);
                break;

            case SystemMediaTransportControlsButton.ChannelDown:
                mbApiInterface.Player_SetVolume(mbApiInterface.Player_GetVolume() - 0.05F);
                break;
            }
        }
        // Panel Click Event (seekbar)
        private void PanelClick(object sender, EventArgs e)
        {

            MouseEventArgs me = (MouseEventArgs)e;
            if (me.Button == System.Windows.Forms.MouseButtons.Left)
            {

                mbApiInterface.Player_SetPosition((int)Math.Round(findPos()));

            }
            else if (me.Button == System.Windows.Forms.MouseButtons.Right)
            {

                mbApiInterface.Player_PlayPause();

            }
        }
示例#7
0
 /// <inheritdoc />
 public bool PlayPause()
 {
     return(_api.Player_PlayPause());
 }