Пример #1
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 getVolume()
 {
     foreach (Screen screen in lcdScreenList_)
     {
         screen.volumeChanged(mbApiInterface_.Player_GetVolume());
     }
 }
Пример #3
0
        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;
            }
        }
Пример #4
0
        public Dictionary <string, string> GenerateMetaDataDictionary()
        {
            var ret = new Dictionary <string, string>(Enum.GetNames(typeof(MetaDataType)).Length);

            foreach (MetaDataType elem in Enum.GetValues(typeof(MetaDataType)))
            {
                ret.Add(elem.ToString(), _mbApiInterface.NowPlaying_GetFileTag(elem));
            }
            ret.Add("PlayState", _mbApiInterface.Player_GetPlayState().ToString());
            ret.Add("Volume", Convert.ToInt32(_mbApiInterface.Player_GetVolume() * 100.0f).ToString());

            return(ret);
        }
Пример #5
0
        private void systemMediaControls_ButtonPressed(SystemMediaTransportControls smtc, SystemMediaTransportControlsButtonPressedEventArgs args)
        {
            switch (args.Button)
            {
            case SystemMediaTransportControlsButton.Stop:
                MediaControl_StopButtonPress();
                break;

            case SystemMediaTransportControlsButton.Play:
            case SystemMediaTransportControlsButton.Pause:
                MediaControl_PlayPauseButtonPress();
                break;

            case SystemMediaTransportControlsButton.Next:
                MediaControl_NextTrackButtonPress();
                break;

            case SystemMediaTransportControlsButton.Previous:
                MediaControl_PreviousTrackButtonPress();
                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;
            }
        }
Пример #6
0
        public Dictionary <string, string> GenerateMetaDataDictionary(string fileUrl = null)
        {
            var ret = new Dictionary <string, string>(Enum.GetNames(typeof(MetaDataType)).Length + Enum.GetNames(typeof(FilePropertyType)).Length);

            foreach (MetaDataType elem in Enum.GetValues(typeof(MetaDataType)))
            {
                ret.Add(elem.ToString(), string.IsNullOrWhiteSpace(fileUrl) ? _mbApiInterface.NowPlaying_GetFileTag(elem) : _mbApiInterface.Library_GetFileTag(fileUrl, elem));
            }
            foreach (FilePropertyType elem in Enum.GetValues(typeof(FilePropertyType)))
            {
                ret.Add(elem.ToString(), string.IsNullOrWhiteSpace(fileUrl) ? _mbApiInterface.NowPlaying_GetFileProperty(elem) : _mbApiInterface.Library_GetFileProperty(fileUrl, elem));
            }
            ret.Add("Extension", Path.GetExtension(string.IsNullOrWhiteSpace(fileUrl) ? _mbApiInterface.NowPlaying_GetFileUrl() : fileUrl).TrimStart('.').ToUpper());
            ret.Add("PlayState", _mbApiInterface.Player_GetPlayState().ToString());
            ret.Add("Volume", Convert.ToInt32(_mbApiInterface.Player_GetVolume() * 100.0f).ToString());

            return(ret);
        }
        public void ReceiveNotification(string sourceFileUrl, NotificationType type)
        {
            string artist      = MbApiInterface.NowPlaying_GetFileTag(MetaDataType.AlbumArtist);
            string trackArtist = MbApiInterface.NowPlaying_GetFileTag(MetaDataType.Artist);
            string trackTitle  = MbApiInterface.NowPlaying_GetFileTag(MetaDataType.TrackTitle);
            string album       = MbApiInterface.NowPlaying_GetFileTag(MetaDataType.Album);
            string duration    = MbApiInterface.NowPlaying_GetFileProperty(FilePropertyType.Duration);
            int    volume      = Convert.ToInt32(MbApiInterface.Player_GetVolume() * 100.0f);
            int    position    = MbApiInterface.Player_GetPosition() / 1000;

            if (string.IsNullOrEmpty(artist))
            {
                artist = "[artist empty]";
            }

            switch (type)
            {
            case NotificationType.PlayStateChanged:
                switch (MbApiInterface.Player_GetPlayState())
                {
                case PlayState.Playing:
                    UpdatePresence(artist, trackArtist, trackTitle, album, duration, true, position, volume);
                    break;

                case PlayState.Paused:
                    UpdatePresence(artist, trackArtist, trackTitle, album, duration, false, 0, volume);
                    break;
                }

                break;

            case NotificationType.TrackChanged:
                UpdatePresence(artist, trackArtist, trackTitle, album, duration, true, 0, volume, true);
                break;

            case NotificationType.VolumeLevelChanged:
                if (MbApiInterface.Player_GetPlayState() == PlayState.Playing)
                {
                    UpdatePresence(artist, trackArtist, trackTitle, album, duration, true, position, volume);
                }
                break;
            }
        }
Пример #8
0
 /// <inheritdoc />
 public int GetVolume()
 {
     return((int)Math.Round(_api.Player_GetVolume() * 100, 1));
 }