Mercurial > audlegacy-plugins
diff src/mpg123/mpg123.c @ 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 | 997496d252d4 |
line wrap: on
line diff
--- a/src/mpg123/mpg123.c Sun Jan 28 17:41:50 2007 -0800 +++ b/src/mpg123/mpg123.c Sun Jan 28 21:09:12 2007 -0800 @@ -354,13 +354,13 @@ } static void -play_frame(struct frame *fr) +play_frame(InputPlayback *playback, struct frame *fr) { if (fr->error_protection) { bsi.wordpointer += 2; /* mpgdec_getbits(16); *//* skip crc */ } - if (!fr->do_layer(fr)) { + if (!fr->do_layer(playback, fr)) { skip_frames = 2; mpgdec_info->output_audio = FALSE; } @@ -626,17 +626,17 @@ } static int -open_output(void) +open_output(InputPlayback *playback) { int r; AFormat fmt = mpgdec_cfg.resolution == 16 ? FMT_S16_NE : FMT_U8; /* int freq = mpgdec_freqs[fr.sampling_frequency] >> mpgdec_cfg.downsample; */ int freq = mpgdec_frequency; int channels = mpgdec_cfg.channels == 2 ? fr.stereo : 1; - r = mpgdec_ip.output->open_audio(fmt, freq, channels); + r = playback->output->open_audio(fmt, freq, channels); if (r && dopause) { - mpgdec_ip.output->pause(TRUE); + playback->output->pause(TRUE); dopause = FALSE; } @@ -675,7 +675,8 @@ static gchar *old_title = NULL; gboolean have_xing_header = FALSE, vbr = FALSE; int disp_count = 0; - char *filename = arg; + InputPlayback *playback = arg; + char *filename = playback->filename; xing_header_t xing_header; /* This is used by fileinfo on http streams */ @@ -786,12 +787,12 @@ output_opened = TRUE; - if (!open_output()) { + if (!open_output(playback)) { audio_error = TRUE; mpgdec_info->eof = TRUE; } else - play_frame(&fr); + play_frame(playback, &fr); } mpgdec_info->first_frame = FALSE; @@ -801,7 +802,7 @@ if (have_xing_header) xp = &xing_header; if (mpgdec_seek(&fr, xp, vbr, mpgdec_info->jump_to_time) > -1) { - mpgdec_ip.output->flush(mpgdec_info->jump_to_time * 1000); + playback->output->flush(mpgdec_info->jump_to_time * 1000); mpgdec_info->eof = FALSE; } mpgdec_info->jump_to_time = -1; @@ -841,7 +842,7 @@ double rel = mpgdec_relative_pos(); if (rel) { mpgdec_length = - mpgdec_ip.output->written_time() / rel; + playback->output->written_time() / rel; vbr = TRUE; } @@ -864,7 +865,7 @@ } else disp_count--; - play_frame(&fr); + play_frame(playback, &fr); if (mpgdec_info->filesize == 0) { @@ -896,8 +897,8 @@ } } else { - mpgdec_ip.output->buffer_free(); - mpgdec_ip.output->buffer_free(); + playback->output->buffer_free(); + playback->output->buffer_free(); mpgdec_info->eof = TRUE; g_usleep(10000); } @@ -915,7 +916,7 @@ mpgdec_title = NULL; mpgdec_stream_close(); if (output_opened && !audio_error) - mpgdec_ip.output->close_audio(); + playback->output->close_audio(); g_free(mpgdec_pcm_sample); mpgdec_filename = NULL; g_free(filename); @@ -924,9 +925,8 @@ } static void -play_file(InputPlayback *data) +play_file(InputPlayback *playback) { - char *filename = data->filename; memset(&fr, 0, sizeof(struct frame)); memset(&temp_fr, 0, sizeof(struct frame)); @@ -940,7 +940,7 @@ output_opened = FALSE; dopause = FALSE; - decode_thread = g_thread_create(decode_loop, g_strdup(filename), TRUE, + decode_thread = g_thread_create(decode_loop, playback, TRUE, NULL); } @@ -965,25 +965,25 @@ } static void -do_pause(InputPlayback * data, short p) +do_pause(InputPlayback * playback, short p) { if (output_opened) - mpgdec_ip.output->pause(p); + playback->output->pause(p); else dopause = p; } static int -get_time(InputPlayback * data) +get_time(InputPlayback * playback) { if (audio_error) return -2; if (!mpgdec_info) return -1; if (!mpgdec_info->going - || (mpgdec_info->eof && !mpgdec_ip.output->buffer_playing())) + || (mpgdec_info->eof && !playback->output->buffer_playing())) return -1; - return mpgdec_ip.output->output_time(); + return playback->output->output_time(); } static void