コード例 #1
0
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.
	}
}
コード例 #2
0
ファイル: Audio.cpp プロジェクト: ntaylorbishop/Paradise
AudioSystem::AudioSystem() : m_fmodSystem(nullptr) {
	InitializeFMOD();
}