Mercurial > audlegacy-plugins
diff src/adplug/adplug-xmms.cc @ 561:914c96de3244 trunk
[svn] Convert plugins to use InputPlayback.output instead of InputPlugin.output
author | iabervon |
---|---|
date | Sun, 28 Jan 2007 21:09:12 -0800 |
parents | d5782f3bd760 |
children | cae46214b8bf |
line wrap: on
line diff
--- a/src/adplug/adplug-xmms.cc Sun Jan 28 17:41:50 2007 -0800 +++ b/src/adplug/adplug-xmms.cc Sun Jan 28 21:09:12 2007 -0800 @@ -588,10 +588,12 @@ // Define sampsize macro (only usable inside play_loop()!) #define sampsize ((bit16 ? 2 : 1) * (stereo ? 2 : 1)) -static void *play_loop(void *filename) +static void *play_loop(void *data) /* Main playback thread. Takes the filename to play as argument. */ { - dbg_printf("play_loop(\"%s\"): ", (char *)filename); + InputPlayback *playback = (InputPlayback *) data; + char *filename = (char *) playback->data; + dbg_printf("play_loop(\"%s\"): ", filename); CEmuopl opl(cfg.freq, cfg.bit16, cfg.stereo); long toadd = 0, i, towrite; char *sndbuf, *sndbufpos; @@ -602,7 +604,7 @@ // Try to load module dbg_printf("factory, "); - if(!(plr.p = factory((char *)filename, &opl))) { + if(!(plr.p = factory(filename, &opl))) { dbg_printf("error!\n"); // MessageBox("AdPlug :: Error", "File could not be opened!", "Ok"); plr.playing = false; @@ -622,8 +624,8 @@ // reset to first subsong on new file dbg_printf("subsong, "); - if(strcmp((char *)filename, plr.filename)) { - strcpy(plr.filename, (char *)filename); + if(strcmp(filename, plr.filename)) { + strcpy(plr.filename, filename); plr.subsong = 0; } @@ -656,7 +658,7 @@ plr.time_ms += 1000 / plr.p->getrefresh(); // Reset output plugin and some values - adplug_ip.output->flush((int)plr.time_ms); + playback->output->flush((int)plr.time_ms); plr.seek = -1; } @@ -675,8 +677,8 @@ } // write sound buffer - while(adplug_ip.output->buffer_free() < SNDBUFSIZE * sampsize) xmms_usleep(10000); - produce_audio(adplug_ip.output->written_time(), + while(playback->output->buffer_free() < SNDBUFSIZE * sampsize) xmms_usleep(10000); + produce_audio(playback->output->written_time(), bit16 ? FORMAT_16 : FORMAT_8, stereo ? 2 : 1, SNDBUFSIZE * sampsize, sndbuf, NULL); @@ -685,13 +687,13 @@ } // playback finished - deinit - dbg_printf("play_loop(\"%s\"): ", (char *)filename); + dbg_printf("play_loop(\"%s\"): ", filename); if(!playing) { // wait for output plugin to finish if song has self-ended dbg_printf("wait, "); - while(adplug_ip.output->buffer_playing()) xmms_usleep(10000); + while(playback->output->buffer_playing()) xmms_usleep(10000); } else { // or else, flush its output buffers dbg_printf("flush, "); - adplug_ip.output->buffer_free(); adplug_ip.output->buffer_free(); + playback->output->buffer_free(); playback->output->buffer_free(); } // free everything and exit @@ -731,7 +733,7 @@ { if(audio_error) { dbg_printf("adplug_get_time(): returned -2\n"); return -2; } if(!plr.playing) { dbg_printf("adplug_get_time(): returned -1\n"); return -1; } - return adplug_ip.output->output_time(); + return playback->output->output_time(); } static void adplug_song_info(char *filename, char **title, int *length) @@ -776,7 +778,7 @@ // open output plugin dbg_printf("open, "); - if (!adplug_ip.output->open_audio(cfg.bit16 ? FORMAT_16 : FORMAT_8, cfg.freq, cfg.stereo ? 2 : 1)) { + if (!playback->output->open_audio(cfg.bit16 ? FORMAT_16 : FORMAT_8, cfg.freq, cfg.stereo ? 2 : 1)) { audio_error = TRUE; return; } @@ -789,22 +791,22 @@ // start player thread dbg_printf("create"); - plr.play_thread = g_thread_create(play_loop, filename, TRUE, NULL); + plr.play_thread = g_thread_create(play_loop, playback, TRUE, NULL); dbg_printf(".\n"); } -static void adplug_stop(InputPlayback * data) +static void adplug_stop(InputPlayback * playback) { dbg_printf("adplug_stop(): join, "); plr.playing = false; g_thread_join(plr.play_thread); // stop player thread - dbg_printf("close"); adplug_ip.output->close_audio(); + dbg_printf("close"); playback->output->close_audio(); dbg_printf(".\n"); } -static void adplug_pause(InputPlayback * data, short paused) +static void adplug_pause(InputPlayback * playback, short paused) { dbg_printf("adplug_pause(%d)\n", paused); - adplug_ip.output->pause(paused); + playback->output->pause(paused); } static void adplug_seek(InputPlayback * data, int time)