Beispiel #1
0
 static int UpdaterThread(void* data)
 {
     Playlist* playlist = (Playlist*)data;
     int lWaitTime = 1000 / 30; // 30times /second
     while (playlist->mThreadAlive) {
         if (playlist->mSource) {
             if (!OAL_Source_IsPlaying(playlist->mSource)) {
                 ++playlist->mCurrentSong;
                 if (playlist->mCurrentSong == playlist->mSongs.end()) {
                     playlist->mCurrentSong = playlist->mSongs.begin();
                 }
                 playlist->playSong();
             }
         }
         SDL_Delay(lWaitTime);
     }
     return 0;
 }
Beispiel #2
0
int main (int argc, const char *const argv[])
{
	if ( argc <= 1 )
	{
		printf ("Usage : %s \"sample1.ogg\" [\"sample2.ogg\" \"sample3.ogg\" ...]\n", argv[0]);
        printf ("\tThe application will simply loop through all of the files\n\n");
        return 1;
	}

    Playlist* lPlaylist = new Playlist(argc - 1, &argv[1]);

    printf ("Initializing OpenAL... ");
    fflush(stdout);
    OAL_SetupLogging(true,eOAL_LogOutput_File,eOAL_LogVerbose_High);
    
    cOAL_Init_Params oal_parms;
    oal_parms.mlStreamingBufferSize = 8192;

    if (OAL_Init(oal_parms)==false)
    {
        printf ("Failed - Check your OpenAL installation\n");
        return 1;
    }
    else
        printf ("Success\n");

    lPlaylist->playSong();
    
    signal(SIGINT, sighandler);
    
    while (!done) {
        SDL_Delay(1000);
    }

    printf ("Cleaning up...\n");

    delete lPlaylist;
    lPlaylist = 0;

    OAL_Close();

	return 0;
}