public override int RenderVisualization() { try { if (VisualizationWindow == null || !VisualizationWindow.Visible || _visParam.VisHandle == 0) { return(0); } // Set Song information, so that the plugin can display it if (trackTag != null && Bass != null) { _playlistPlayer = PlayListPlayer.SingletonPlayer; PlayListItem curPlaylistItem = _playlistPlayer.GetCurrentItem(); _mediaInfo.Position = (int)Bass.CurrentPosition; _mediaInfo.Duration = (int)Bass.Duration; _mediaInfo.PlaylistLen = 1; _mediaInfo.PlaylistPos = _playlistPlayer.CurrentPlaylistPos; } else { _mediaInfo.Position = 0; _mediaInfo.Duration = 0; _mediaInfo.PlaylistLen = 0; _mediaInfo.PlaylistPos = 0; } if (IsPreviewVisualization) { _mediaInfo.SongTitle = "Mediaportal Preview"; } BassVis.BASSVIS_SetInfo(_visParam, _mediaInfo); if (RenderStarted) { return(1); } int stream = 0; if (Bass != null) { stream = (int)Bass.GetCurrentVizStream(); } BassVis.BASSVIS_SetPlayState(_visParam, BASSVIS_PLAYSTATE.Play); RenderStarted = BassVis.BASSVIS_RenderChannel(_visParam, stream); } catch (Exception) {} return(1); }
public override int RenderVisualization() { try { if (VisualizationWindow == null || !VisualizationWindow.Visible || _visParam.VisHandle == 0) { return(0); } // Any is wrong with PlaybackStateChanged, if the songfile automatically changed // so i have create a new variable which fix this problem if (Bass != null) { if ((Bass.CurrentFile != _OldCurrentFile) && !Bass.IsRadio) { trackTag = TagReader.TagReader.ReadTag(Bass.CurrentFile); if (trackTag != null) { _songTitle = String.Format("{0} - {1}", trackTag.Artist, trackTag.Title); _OldCurrentFile = Bass.CurrentFile; } else { _songTitle = " "; } } // Set Song information, so that the plugin can display it if (trackTag != null && !Bass.IsRadio) { _mediaInfo.SongTitle = _songTitle; _mediaInfo.SongFile = Bass.CurrentFile; _mediaInfo.Position = (int)(1000 * Bass.CurrentPosition); _mediaInfo.Duration = (int)Bass.Duration; } else { if (Bass.IsRadio) { // Change TrackTag to StreamTag for Radio trackTag = Bass.GetStreamTags(); if (trackTag != null) { // Artist and Title show better i think _songTitle = trackTag.Artist + ": " + trackTag.Title; _mediaInfo.SongTitle = _songTitle; } else { _songTitle = " "; } _mediaInfo.Position = (int)(1000 * Bass.CurrentPosition); } else { _mediaInfo.Position = 0; _mediaInfo.Duration = 0; } } } if (IsPreviewVisualization) { _mediaInfo.SongTitle = "Mediaportal Preview"; } BassVis.BASSVIS_SetInfo(_visParam, _mediaInfo); if (RenderStarted) { return(1); } int stream = 0; if (Bass != null) { stream = (int)Bass.GetCurrentVizStream(); } // ckeck is playing int nReturn = BassVis.BASSVIS_SetPlayState(_visParam, BASSVIS_PLAYSTATE.IsPlaying); if (nReturn == Convert.ToInt32(BASSVIS_PLAYSTATE.Play) && (_visParam.VisHandle != 0)) { // Do not Render without playing if (MusicPlayer.BASS.Config.MusicPlayer == AudioPlayer.WasApi) { RenderStarted = BassVis.BASSVIS_RenderChannel(_visParam, stream, true); } else { RenderStarted = BassVis.BASSVIS_RenderChannel(_visParam, stream, false); } } } catch (Exception) {} return(1); }