// receive event notifications from MusicBee
        // you need to set about.ReceiveNotificationFlags = PlayerEvents to receive all notifications, and not just the startup event
        public void ReceiveNotification(string sourceFileUrl, NotificationType type)
        {
            switch (type)
            {
            case NotificationType.PluginStartup:
                systemMediaControls = BackgroundMediaPlayer.Current.SystemMediaTransportControls;
                systemMediaControls.PlaybackStatus                   = MediaPlaybackStatus.Closed;
                systemMediaControls.IsEnabled                        = false;
                systemMediaControls.IsPlayEnabled                    = true;
                systemMediaControls.IsPauseEnabled                   = true;
                systemMediaControls.IsStopEnabled                    = true;
                systemMediaControls.IsPreviousEnabled                = true;
                systemMediaControls.IsNextEnabled                    = true;
                systemMediaControls.IsRewindEnabled                  = false;
                systemMediaControls.IsFastForwardEnabled             = false;
                systemMediaControls.ButtonPressed                   += systemMediaControls_ButtonPressed;
                systemMediaControls.PlaybackPositionChangeRequested += systemMediaControls_PlaybackPositionChangeRequested;
                systemMediaControls.PlaybackRateChangeRequested     += systemMediaControls_PlaybackRateChangeRequested;
                systemMediaControls.ShuffleEnabledChangeRequested   += systemMediaControls_ShuffleEnabledChangeRequested;
                systemMediaControls.AutoRepeatModeChangeRequested   += systemMediaControls_AutoRepeatModeChangeRequested;
                displayUpdater      = systemMediaControls.DisplayUpdater;
                displayUpdater.Type = MediaPlaybackType.Music;
                musicProperties     = displayUpdater.MusicProperties;
                SetDisplayValues();
                break;

            case NotificationType.PlayStateChanged:
                SetPlayerState();
                break;

            case NotificationType.TrackChanged:
                SetDisplayValues();
                break;
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Sets the current song.
        /// </summary>
        /// <param name="song">Song to use.</param>
        private void SetSong(Song song)
        {
            updater.Type = MediaPlaybackType.Music;
            MusicDisplayProperties musicProps = updater.MusicProperties;

            musicProps.Title       = song.Title;
            musicProps.Artist      = song.Artist;
            musicProps.TrackNumber = GetTrack(song.Track);
            musicProps.AlbumTitle  = song.Album;
            musicProps.AlbumArtist = song.Artist;

            // Don't wait
#pragma warning disable CS4014
            SetThumbnailAsync(song.Filename);
#pragma warning restore CS4014

            updater.Update();
        }
Esempio n. 3
0
        private void PluginStartUp()
        {
            // set up media player to get manual control of SystemMediaTransportControls
            mediaPlayer = new MediaPlayer();
            mediaPlayer.CommandManager.IsEnabled = false;

            // set up SystemMediaTransportControls
            systemMediaControls = mediaPlayer.SystemMediaTransportControls;
            // set flags
            systemMediaControls.PlaybackStatus       = MediaPlaybackStatus.Closed; // nothing in list to play
            systemMediaControls.IsEnabled            = true;                       // show it
            systemMediaControls.IsPlayEnabled        = true;
            systemMediaControls.IsPauseEnabled       = true;
            systemMediaControls.IsStopEnabled        = true;
            systemMediaControls.IsPreviousEnabled    = true;
            systemMediaControls.IsNextEnabled        = true;
            systemMediaControls.IsRewindEnabled      = true;
            systemMediaControls.IsFastForwardEnabled = false;

            // Sync musicbee volume with Windows volume
            //mbApiInterface.Player_SetVolume() = systemMediaControls.SoundLevel

            systemMediaControls.ButtonPressed += systemMediaControls_ButtonPressed;
            systemMediaControls.PlaybackPositionChangeRequested +=
                systemMediaControls_PlaybackPositionChangeRequested;
            systemMediaControls.PlaybackRateChangeRequested   += systemMediaControls_PlaybackRateChangeRequested;
            systemMediaControls.ShuffleEnabledChangeRequested +=
                systemMediaControls_ShuffleEnabledChangeRequested;
            systemMediaControls.AutoRepeatModeChangeRequested +=
                systemMediaControls_AutoRepeatModeChangeRequested;

            // setup overlay properties
            displayUpdater            = systemMediaControls.DisplayUpdater;
            displayUpdater.Type       = MediaPlaybackType.Music; // media type
            displayUpdater.AppMediaId = "MusicBee";              // program name
            // setup for display music properties on overlay
            musicProperties = displayUpdater.MusicProperties;
            SetDisplayValues();
        }