public void ReceiveNotification(string sourceFileUrl, NotificationType type) { if (mediaChannel != null) { switch (type) { case NotificationType.PlayStateChanged: //Play and pause the chromecast from the MB player if (mediaChannel.Status != null) { switch (mbApiInterface.Player_GetPlayState()) { case PlayState.Paused: mediaChannel.PauseAsync().WaitWithoutException(); break; case PlayState.Playing: mediaChannel.PlayAsync().WaitWithoutException(); break; } } break; case NotificationType.NowPlayingListChanged: //natural = false; //progressTimer.Enabled = false; break; case NotificationType.PluginStartup: break; case NotificationType.VolumeLevelChanged: break; case NotificationType.TrackChanged: if (!PrerequisitesMet()) { return; } fileDeletionTimer.Enabled = false; fileDeletionTimer.Enabled = true; CalculateHash(mbApiInterface.NowPlaying_GetFileUrl(), "current").WaitWithoutException(); var info = CopySong(sourceFileUrl, songHash.Current).WaitAndUnwrapException(); _ = LoadSong(info.Item1, info.Item2); break; } } }
public void CreateFileHash() { using (var md5 = MD5.Create()) { using (var stream = File.OpenRead(mbApiInterface.NowPlaying_GetFileUrl())) { var temp = md5.ComputeHash(stream); _fileHash = BitConverter.ToString(temp).Replace("-", "").ToLowerInvariant(); } } }
private void SetDisplayValues() { displayUpdater.ClearAll(); displayUpdater.Type = MediaPlaybackType.Music; SetArtworkThumbnail(null); string url = mbApiInterface.NowPlaying_GetFileUrl(); if (url != null) { musicProperties.AlbumArtist = mbApiInterface.NowPlaying_GetFileTag(MetaDataType.AlbumArtist); musicProperties.AlbumTitle = mbApiInterface.NowPlaying_GetFileTag(MetaDataType.Album); uint value; if (UInt32.TryParse(mbApiInterface.NowPlaying_GetFileTag(MetaDataType.TrackCount), out value)) { musicProperties.AlbumTrackCount = value; } musicProperties.Artist = mbApiInterface.NowPlaying_GetFileTag(MetaDataType.Artist); musicProperties.Title = mbApiInterface.NowPlaying_GetFileTag(MetaDataType.TrackTitle); if (string.IsNullOrEmpty(musicProperties.Title)) { musicProperties.Title = url.Substring(url.LastIndexOfAny(new char[] { '/', '\\' }) + 1); } if (UInt32.TryParse(mbApiInterface.NowPlaying_GetFileTag(MetaDataType.TrackNo), out value)) { musicProperties.TrackNumber = value; } //musicProperties.Genres = mbApiInterface.NowPlaying_GetFileTag(MetaDataType.Genres).Split(new string[] {"; "}, StringSplitOptions.RemoveEmptyEntries); PictureLocations pictureLocations; string pictureUrl; byte[] imageData; mbApiInterface.Library_GetArtworkEx(url, 0, true, out pictureLocations, out pictureUrl, out imageData); SetArtworkThumbnail(imageData); } displayUpdater.Update(); }
public void changeRating(float number) { String url = mbApiInterface_.NowPlaying_GetFileUrl(); mbApiInterface_.Library_SetFileTag(url, MetaDataType.Rating, number.ToString()); mbApiInterface_.Library_CommitTagsToFile(url); mbApiInterface_.MB_RefreshPanels(); }
// 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) { if (type == NotificationType.PlayCountersChanged) { string file = _mbApiInterface.NowPlaying_GetFileUrl(); if (file.Length > 0) { UpdateAutoRating(file); } } }
// return lyrics for the requested artist/title from the requested provider // only required if PluginType = LyricsRetrieval // return null if no lyrics are found public string RetrieveLyrics(string sourceFileUrl, string artist, string trackTitle, string album, bool synchronisedPreferred, string provider) { if (!provider.Contains("LocalLyricsLoader")) { return(null); } if (sourceFileUrl == "") { sourceFileUrl = mbApiInterface.NowPlaying_GetFileUrl(); } ; var loader = LoaderManager.GetLyricsLoader(provider.Replace("(LocalLyricsLoader)", "")); var lyrics = loader.RetrieveLyrics(sourceFileUrl, artist, trackTitle, album, synchronisedPreferred, provider); return(lyrics); }
/// <inheritdoc/> public NowPlayingTrack GetPlayingTrackInfoLegacy() { var url = _api.NowPlaying_GetFileUrl().Cleanup(); var title = _api.NowPlaying_GetFileTag(MetaDataType.TrackTitle).Cleanup(); var nowPlayingTrack = new NowPlayingTrack { Artist = _api.NowPlaying_GetFileTag(MetaDataType.Artist).Cleanup(), Album = _api.NowPlaying_GetFileTag(MetaDataType.Album).Cleanup(), Year = _api.NowPlaying_GetFileTag(MetaDataType.Year).Cleanup(), }; nowPlayingTrack.SetTitle(title, url); return(nowPlayingTrack); }
private void SetDisplayValues() { // displayUpdater.ClearAll(); if (displayUpdater.Type != MediaPlaybackType.Music) { displayUpdater.Type = MediaPlaybackType.Music; } // SetArtworkThumbnail(null); var url = mbApiInterface.NowPlaying_GetFileUrl(); if (url != null) { musicProperties.AlbumArtist = mbApiInterface.NowPlaying_GetFileTag(MetaDataType.AlbumArtist); musicProperties.AlbumTitle = mbApiInterface.NowPlaying_GetFileTag(MetaDataType.Album); if (TryParse(mbApiInterface.NowPlaying_GetFileTag(MetaDataType.TrackCount), out var value)) { musicProperties.AlbumTrackCount = value; } musicProperties.Artist = mbApiInterface.NowPlaying_GetFileTag(MetaDataType.MultiArtist); musicProperties.Title = mbApiInterface.NowPlaying_GetFileTag(MetaDataType.TrackTitle); if (string.IsNullOrEmpty(musicProperties.Title)) { musicProperties.Title = url.Substring(url.LastIndexOfAny(new[] { '/', '\\' }) + 1); } if (TryParse(mbApiInterface.NowPlaying_GetFileTag(MetaDataType.TrackNo), out value)) { musicProperties.TrackNumber = value; } // musicProperties.Genres = mbApiInterface.NowPlaying_GetFileTag(MetaDataType.Genres).Split(new string[] {"; "}, StringSplitOptions.RemoveEmptyEntries); mbApiInterface.Library_GetArtworkEx(url, 0, true, out _, out _, out var imageData); SetArtworkThumbnail(imageData); } else { SetArtworkThumbnail(null); } displayUpdater.Update(); }
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); }