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; } }
/// <inheritdoc /> public bool ScrobblingEnabled() { return(_api.Player_GetScrobbleEnabled()); }