Exemplo n.º 1
0
        public void ReceiveNotification(string src, NotificationType type)
        {
            if (type == NotificationType.PlayerScrobbleChanged)
            {
                if (Api.Player_GetScrobbleEnabled())
                {
                    Api.Player_SetScrobbleEnabled(false);
                }
                return;
            }

            if (type != NotificationType.TrackChanged && type != NotificationType.PlayStateChanged)
            {
                return;
            }

            var title       = Api.NowPlaying_GetFileTag(Settings.GetTag("ScrobbleBee-Title", MetaDataType.TrackTitle));
            var artist      = Api.NowPlaying_GetFileTag(Settings.GetTag("ScrobbleBee-Artist", MetaDataType.Artist));
            var album       = Api.NowPlaying_GetFileTag(Settings.GetTag("ScrobbleBee-Album", MetaDataType.Album));
            var albumArtist = Api.NowPlaying_GetFileTag(Settings.GetTag("ScrobbleBee-AlbumArtist", MetaDataType.AlbumArtist));
            var duration    = Api.NowPlaying_GetDuration();

            switch (type)
            {
            case NotificationType.TrackChanged:
                TryScrobble(lastTitle, lastArtist, lastAlbum, lastAlbumArtist, lastDuration);
                LastFm.Update(title, artist, album, albumArtist, duration);

                hasScrobbled = duration < 30000;
                started      = DateTime.UtcNow;
                played       = 0;

                lastTitle       = title;
                lastArtist      = artist;
                lastAlbum       = album;
                lastAlbumArtist = albumArtist;
                lastDuration    = duration;
                break;

            case NotificationType.PlayStateChanged:
                switch (Api.Player_GetPlayState())
                {
                case PlayState.Playing:
                    started = DateTime.UtcNow;
                    break;

                case PlayState.Paused:
                case PlayState.Stopped:
                    TryScrobble(title, artist, album, albumArtist, duration);
                    break;
                }
                break;
            }
        }
Exemplo n.º 2
0
 /// <inheritdoc />
 public bool ScrobblingEnabled()
 {
     return(_api.Player_GetScrobbleEnabled());
 }