/// <summary> /// Thread for Creating the BASS Audio Engine objects. /// </summary> private static void InternalCreatePlayerAsync() { if (_player == null) { _player = new BassAudioEngine(); } }
public void DonePlayer() { if (SpectrumProvider == Utils.Provider.Mediaportal && Bass != null) { Bass = null; if (Utils.SpectrumDebug) { logger.Debug("Bass Player done."); } } }
public void InitPlayer(bool force = false) { if (SpectrumProvider == Utils.Provider.Mediaportal && BassMusicPlayer.IsDefaultMusicPlayer && (Bass == null || force)) { Bass = BassMusicPlayer.Player; if (Utils.SpectrumDebug) { logger.Debug("Bass Player init."); } } }
public VisualizationManager(BassAudioEngine bass, VisualizationWindow vizWindow) { Bass = bass; VisualizationBase.Bass = Bass; VizRenderWindow = vizWindow; if (bass != null) { Bass.PlaybackStateChanged += new BassAudioEngine.PlaybackStateChangedDelegate(OnPlaybackStateChanged); } SetVisualizationFPS(_TargetFPS); }
/// <summary> /// Thread for Creating the BASS Audio Engine objects. /// </summary> private static void InternalCreatePlayerAsync() { if (_player == null) { try { _player = new BassAudioEngine(); } catch (Exception ex) { Log.Error("BASS: InternalCreatePlayerAsync failed {0}", ex); } } }
private void InitializeVizEngine() { //System.Diagnostics.Debugger.Launch(); Cursor.Current = Cursors.WaitCursor; BassAudioEngine bassEngine = BassMusicPlayer.Player; IVizMgr = bassEngine.IVizManager; List <VisualizationInfo> vizPluginsInfo = null; if (IVizMgr != null) { vizPluginsInfo = IVizMgr.VisualizationPluginsInfo; } LoadVisualizationList(vizPluginsInfo); }
void Player_InternetStreamSongChanged(object sender) { if (!g_Player.Playing) { return; } BassAudioEngine engine = sender as BassAudioEngine; MusicTag tag = engine.GetStreamTags(); var dlg1 = (GUIDialogNotify)GUIWindowManager.GetWindow((int)Window.WINDOW_DIALOG_NOTIFY); if (dlg1 == null) { return; } dlg1.Reset(); dlg1.SetHeading(""); dlg1.SetText(tag.Artist + "-" + tag.Title); dlg1.Reset(); dlg1.TimeOut = 3; dlg1.DoModal(GetID); }
public bool Initialize(string bassRegEmail = "", string bassRegKey = "") { _cqman = new ControlQueryManager(); _cqman.NextRequest += _cqman_NextRequest; _cqman.PauseRequest += _cqman_PauseRequest; _cqman.PlayRequest += _cqman_PlayRequest; _cqman.StopRequest += _cqman_StopRequest; _cqman.PlayStateRequest += _cqman_PlayStateRequest; _cqman.SetSongMetaRequest += _cqman_SetSongMetaRequest; _sessionWatcher = new SessionWatcher(); RegisterPlayerControlQuery(_sessionWatcher); _pandora = new Pandora(); _pandora.ConnectionEvent += _pandora_ConnectionEvent; _pandora.StationUpdateEvent += _pandora_StationUpdateEvent; _pandora.FeedbackUpdateEvent += _pandora_FeedbackUpdateEvent; _pandora.LoginStatusEvent += _pandora_LoginStatusEvent; _pandora.StationsUpdatingEvent += _pandora_StationsUpdatingEvent; _pandora.QuickMixSavedEvent += _pandora_QuickMixSavedEvent; _bass = new BassAudioEngine(bassRegEmail, bassRegKey); _bass.PlaybackProgress += bass_PlaybackProgress; _bass.PlaybackStateChanged += bass_PlaybackStateChanged; _bass.PlaybackStart += bass_PlaybackStart; _bass.PlaybackStop += bass_PlaybackStop; _bass.InitBass(); _playlist = new Playlist(); _playlist.MaxPlayed = 8; _playlist.PlaylistLow += _playlist_PlaylistLow; _playlist.PlayedSongQueued += _playlist_PlayedSongQueued; _playlist.PlayedSongDequeued += _playlist_PlayedSongDequeued; DailySkipLimitReached = false; DailySkipLimitTime = DateTime.MinValue; LoggedIn = false; return(true); }
public MixerStream(BassAudioEngine bassPlayer) { _bassPlayer = bassPlayer; _playbackEndProcDelegate = new SYNCPROC(PlaybackEndProc); }
public VisualizationWindow(BassAudioEngine bass) { Bass = bass; Init(); }
public MixerStream(BassAudioEngine bassPlayer) { _bassPlayer = bassPlayer; }
internal MiniDisplayHelper(BassAudioEngine bass) : base() { Bass = bass; }
/// <summary> /// Check our EQ settings and MP states to determine if it is appropriate to show our EQ. /// </summary> /// <param name="EQSETTINGS"></param> /// <returns>True if it is appropriate to show our EQ, false otherwise.</returns> public static bool GetEQ(ref EQControl EQSETTINGS) public static bool GetEQ(ref EQControl EQSETTINGS) { SystemStatus MPStatus = new SystemStatus(); GetSystemStatus(ref MPStatus); bool extensiveLogging = Settings.Instance.ExtensiveLogging; bool flag2 = (EQSETTINGS.UseStereoEq | EQSETTINGS.UseVUmeter) | EQSETTINGS.UseVUmeter2; if (!MPStatus.UserIsIdle || g_Player.Player == null || !g_Player.IsMusic || !BassMusicPlayer.IsDefaultMusicPlayer) { return(false); } if (!EQSETTINGS.UseEqDisplay) { return(false); } if (EQSETTINGS._AudioUseASIO) { return(false); } try { if (g_Player.Paused) { return(false); } if (Bass == null) { Bass = BassMusicPlayer.Player; } if (EQSETTINGS.DelayEQ & (g_Player.CurrentPosition < EQSETTINGS._DelayEQTime)) { EQSETTINGS._EQDisplayTitle = false; EQSETTINGS._LastEQTitle = (DateTime.Now.Ticks / 1000); return(false); } if (EQSETTINGS.EQTitleDisplay) { if (g_Player.CurrentPosition < EQSETTINGS._EQTitleDisplayTime) { EQSETTINGS._EQDisplayTitle = false; } if (((DateTime.Now.Ticks / 1000) - EQSETTINGS._LastEQTitle) > (EQSETTINGS._EQTitleDisplayTime * 10000)) { EQSETTINGS._LastEQTitle = (DateTime.Now.Ticks / 1000); EQSETTINGS._EQDisplayTitle = !EQSETTINGS._EQDisplayTitle; } if (EQSETTINGS._EQDisplayTitle & (((DateTime.Now.Ticks / 1000) - EQSETTINGS._LastEQTitle) < (EQSETTINGS._EQTitleShowTime * 10000))) { return(false); } } } catch { EQSETTINGS._EQDisplayTitle = false; EQSETTINGS._LastEQTitle = (DateTime.Now.Ticks / 1000); return(false); } int handle = -1; try { handle = g_Player.Player.CurrentAudioStream; } catch (Exception exception) { Log.Debug("MiniDisplay.GetEQ(): Caugth exception obtaining audio stream: {0}", new object[] { exception }); return(false); } if ((handle != 0) & (handle != -1)) { int num2; if (extensiveLogging) { Log.Info("MiniDisplay.GetEQ(): attempting to retrieve equalizer data from audio stream {0}", new object[] { handle }); } try { int num3; if (flag2) { num3 = -2147483630; } else { num3 = -2147483646; } if (Bass.BASS_WASAPI_IsStarted()) { num2 = Bass.GetDataFFT(EQSETTINGS.EqFftData, num3); } else { num2 = Bass.GetChannelData(handle, EQSETTINGS.EqFftData, num3); } } catch (Exception exception) { if (extensiveLogging) { Log.Info("MiniDisplay.GetEQ(): CAUGHT Exception - audio stream {0} disappeared - {1}", new object[] { handle }, exception.Message); } return(false); } if (num2 > 0) { return(true); } if (extensiveLogging) { Log.Info("MiniDisplay.GetEQ(): unable to retreive equalizer data"); } return(false); } if (extensiveLogging) { Log.Info("MiniDisplay.GetEQ(): Audio Stream not available"); } return(false); }
internal StreamCopy(BassAudioEngine bass) : base() { Bass = bass; }
/// <summary> /// Play the selected Music File /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btPlay_Click(object sender, EventArgs e) { if (File.Exists(textBoxMusicFile.Text)) { // Init BASS BassAudioEngine bassEngine = BassMusicPlayer.Player; if (bassEngine.BassFreed) { bassEngine.InitBass(); } _stream = Bass.BASS_StreamCreateFile(textBoxMusicFile.Text, 0, 0, BASSFlag.BASS_SAMPLE_FLOAT | BASSFlag.BASS_STREAM_AUTOFREE | BASSFlag.BASS_SAMPLE_SOFTWARE); if (_stream != 0) { // Attach the BASS DSP Effects to the stream if (_gain != null) { _gain.ChannelHandle = _stream; _gain.Start(); } if (checkBoxDAmp.Checked) { _dampHandle = Bass.BASS_ChannelSetFX(_stream, BASSFXType.BASS_FX_BFX_DAMP, _dampPrio); Bass.BASS_FXSetParameters(_dampHandle, _damp); } if (checkBoxCompressor.Checked) { _compHandle = Bass.BASS_ChannelSetFX(_stream, BASSFXType.BASS_FX_BFX_COMPRESSOR, _compPrio); Bass.BASS_FXSetParameters(_compHandle, _comp); } // Attach the plugins to the stream foreach (DSPPluginInfo dsp in listBoxSelectedPlugins.Items) { if (dsp.DSPPluginType == DSPPluginInfo.PluginType.VST) { _vstHandle = BassVst.BASS_VST_ChannelSetDSP(_stream, dsp.FilePath, BASSVSTDsp.BASS_VST_DEFAULT, 1); // Copy the parameters of the old handle int vstold = _vstHandles[dsp.Name]; BassVst.BASS_VST_SetParamCopyParams(vstold, _vstHandle); // Now find out to which stream the old handle was assigned and free it BASS_VST_INFO bassvstinfo = new BASS_VST_INFO(); BassVst.BASS_VST_GetInfo(vstold, bassvstinfo); BassVst.BASS_VST_ChannelRemoveDSP(bassvstinfo.channelHandle, vstold); _vstHandles[dsp.Name] = _vstHandle; } else { _waDspPlugin = _waDspPlugins[dsp.FilePath]; BassWaDsp.BASS_WADSP_Start(_waDspPlugin, 0, 0); BassWaDsp.BASS_WADSP_ChannelSetDSP(_waDspPlugin, _stream, 1); } } btPlay.Enabled = false; btStop.Enabled = true; Bass.BASS_ChannelPlay(_stream, false); } else { MessageBox.Show("Can't play file. Probably not a valid music file"); } } else { MessageBox.Show("File specified does not exist"); } }
private void OnPlaybackStateChanged(object sender, BassAudioEngine.PlayState oldState, BassAudioEngine.PlayState newState) { if (Viz == null) { return; } // Start the visualization render thread the first time an audio file starts playing. // Subsequent play state changes will be managed by the VisualizationWindow. if (!Viz.Initialized || newState == BassAudioEngine.PlayState.Playing) { VizRenderWindow.Run = true; } }
private void PlaybackStateChanged(object sender, BassAudioEngine.PlayState oldState, BassAudioEngine.PlayState newState) { if (_visParam.VisHandle != 0) { Log.Debug("SoniqueViz: BassPlayer_PlaybackStateChanged from {0} to {1}", oldState.ToString(), newState.ToString()); if (newState == BassAudioEngine.PlayState.Playing) { RenderStarted = false; trackTag = TagReader.TagReader.ReadTag(Bass.CurrentFile); if (trackTag != null) { _songTitle = String.Format("{0} - {1}", trackTag.Artist, trackTag.Title); } else { _songTitle = " "; } _mediaInfo.SongTitle = _songTitle; _mediaInfo.SongFile = Bass.CurrentFile; _OldCurrentFile = Bass.CurrentFile; BassVis.BASSVIS_SetPlayState(_visParam, BASSVIS_PLAYSTATE.Play); } else if (newState == BassAudioEngine.PlayState.Paused) { BassVis.BASSVIS_SetPlayState(_visParam, BASSVIS_PLAYSTATE.Pause); } else if (newState == BassAudioEngine.PlayState.Ended) { BassVis.BASSVIS_SetPlayState(_visParam, BASSVIS_PLAYSTATE.Stop); RenderStarted = false; } } }
/// <summary> /// Check our EQ settings and MP states to determine if it is appropriate to show our EQ. /// </summary> /// <param name="EQSETTINGS"></param> /// <returns>True if it is appropriate to show our EQ, false otherwise.</returns> public static bool GetEQ(ref EQControl EQSETTINGS) public static bool GetEQ(ref EQControl EQSETTINGS) { SystemStatus MPStatus=new SystemStatus(); GetSystemStatus(ref MPStatus); bool extensiveLogging = Settings.Instance.ExtensiveLogging; bool flag2 = (EQSETTINGS.UseStereoEq | EQSETTINGS.UseVUmeter) | EQSETTINGS.UseVUmeter2; if (!MPStatus.UserIsIdle || g_Player.Player == null || !g_Player.IsMusic || !BassMusicPlayer.IsDefaultMusicPlayer) { return false; } if (!EQSETTINGS.UseEqDisplay) { return false; } if (EQSETTINGS._AudioUseASIO) { return false; } try { if (g_Player.Paused) { return false; } if (Bass == null) { Bass = BassMusicPlayer.Player; } if (EQSETTINGS.DelayEQ & (g_Player.CurrentPosition < EQSETTINGS._DelayEQTime)) { EQSETTINGS._EQDisplayTitle = false; EQSETTINGS._LastEQTitle = (DateTime.Now.Ticks / 1000); return false; } if (EQSETTINGS.EQTitleDisplay) { if (g_Player.CurrentPosition < EQSETTINGS._EQTitleDisplayTime) { EQSETTINGS._EQDisplayTitle = false; } if (((DateTime.Now.Ticks / 1000) - EQSETTINGS._LastEQTitle) > (EQSETTINGS._EQTitleDisplayTime * 10000)) { EQSETTINGS._LastEQTitle = (DateTime.Now.Ticks / 1000); EQSETTINGS._EQDisplayTitle = !EQSETTINGS._EQDisplayTitle; } if (EQSETTINGS._EQDisplayTitle & (((DateTime.Now.Ticks / 1000) - EQSETTINGS._LastEQTitle) < (EQSETTINGS._EQTitleShowTime * 10000))) { return false; } } } catch { EQSETTINGS._EQDisplayTitle = false; EQSETTINGS._LastEQTitle = (DateTime.Now.Ticks / 1000); return false; } int handle = -1; try { handle = g_Player.Player.CurrentAudioStream; } catch (Exception exception) { Log.Debug("MiniDisplay.GetEQ(): Caugth exception obtaining audio stream: {0}", new object[] {exception}); return false; } if ((handle != 0) & (handle != -1)) { int num2; if (extensiveLogging) { Log.Info("MiniDisplay.GetEQ(): attempting to retrieve equalizer data from audio stream {0}", new object[] {handle}); } try { int num3; if (flag2) { num3 = -2147483630; } else { num3 = -2147483646; } if (Bass.BASS_WASAPI_IsStarted()) { num2 = Bass.GetDataFFT(EQSETTINGS.EqFftData, num3); } else { num2 = Bass.GetChannelData(handle, EQSETTINGS.EqFftData, num3); } } catch (Exception exception) { if (extensiveLogging) { Log.Info("MiniDisplay.GetEQ(): CAUGHT Exception - audio stream {0} disappeared - {1}", new object[] {handle}, exception.Message); } return false; } if (num2 > 0) { return true; } if (extensiveLogging) { Log.Info("MiniDisplay.GetEQ(): unable to retreive equalizer data"); } return false; } if (extensiveLogging) { Log.Info("MiniDisplay.GetEQ(): Audio Stream not available"); } return false; }