void CMusikPlayer::Init(bool bSuppressAutoPlay) { int nPlayStartPos = 0; // load old playlist if(wxFileExists(MUSIK_PLAYERLIST_FILENAME)) { wxTextFile In; In.Open(MUSIK_PLAYERLIST_FILENAME); if (In.IsOpened() ) { if(In.GetLineCount() > 1) { wxArrayString arr; DelimitStr(In.GetLine( 0 ),wxT(":"),arr); if(arr.GetCount()==2) { arr[0].ToULong((unsigned long *)&m_SongIndex); arr[1].ToLong((long*)&nPlayStartPos); nPlayStartPos = wxMax(0,(nPlayStartPos - 10 * 1000)/1000); } } wxArrayString aFilelist; for ( size_t i = 1; i < In.GetLineCount(); i++ ) { aFilelist.Add( In.GetLine( i ) ); } In.Close(); wxGetApp().Library.GetFilelistSongs( aFilelist, m_Playlist ); if(m_SongIndex > m_Playlist.GetCount() - 1) { m_SongIndex = 0; m_nLastSongTime = 0; } } } //--- initialize fmod ---// if ( InitializeFMOD( FMOD_INIT_START ) != FMOD_INIT_SUCCESS ) wxMessageBox( _("Initialization of FMOD sound system failed."), MUSIKAPPNAME_VERSION, wxOK | wxICON_ERROR ); //--- startup the crossfader ---// g_FaderThread = new MusikFaderThread(); g_FaderThread->Create(); g_FaderThread->Run(); if(!bSuppressAutoPlay && wxGetApp().Prefs.bAutoPlayOnAppStart && (m_Playlist.GetCount() || (wxGetApp().Prefs.ePlaymode == MUSIK_PLAYMODE_AUTO_DJ) ||(wxGetApp().Prefs.ePlaymode == MUSIK_PLAYMODE_AUTO_DJ_ALBUM) )) { _PostPlayRestart( nPlayStartPos ); if(m_Playlist.GetCount())// if we have songs in our playlist ( just loaded) m_bSuppressAutomaticSongPicking = true; // set this flag , so that auto djing does not interfere with starting of last played song. } }
AudioSystem::AudioSystem() : m_fmodSystem(nullptr) { InitializeFMOD(); }