comparison src/audacious/playback.c @ 3181:1596dcb77acd trunk

Track playback monitor thread in InputPlayback.thread.
author William Pitcock <nenolod@atheme-project.org>
date Fri, 27 Jul 2007 15:28:26 -0500
parents 603577228518
children 06d89ea93859
comparison
equal deleted inserted replaced
3172:959fba26290d 3181:1596dcb77acd
190 ip_data.playing = FALSE; 190 ip_data.playing = FALSE;
191 191
192 if (playback->plugin->stop) 192 if (playback->plugin->stop)
193 playback->plugin->stop(playback); 193 playback->plugin->stop(playback);
194 194
195 if (playback->thread != NULL)
196 g_thread_join(playback->thread);
197
195 free_vis_data(); 198 free_vis_data();
196 ip_data.paused = FALSE; 199 ip_data.paused = FALSE;
197 200
198 g_free(playback->filename); 201 g_free(playback->filename);
199 g_free(playback); 202 g_free(playback);
240 entry->decoder->output = &psuedo_output_plugin; 243 entry->decoder->output = &psuedo_output_plugin;
241 244
242 playback->plugin = entry->decoder; 245 playback->plugin = entry->decoder;
243 playback->output = &psuedo_output_plugin; 246 playback->output = &psuedo_output_plugin;
244 playback->filename = g_strdup(entry->filename); 247 playback->filename = g_strdup(entry->filename);
248 playback->thread = g_thread_self();
245 249
246 set_current_input_playback(playback); 250 set_current_input_playback(playback);
247 251
248 entry->decoder->play_file(playback); 252 entry->decoder->play_file(playback);
249 253
250 if (!playback->error && ip_data.playing) 254 if (!playback->error && ip_data.playing)
251 playback_eof(); 255 playback_eof();
252 else if (playback->error) 256 else if (playback->error)
253 playback_error(); 257 playback_error();
254 258
259 playback->thread = NULL;
260 g_thread_exit(NULL);
255 return NULL; 261 return NULL;
256 } 262 }
257 263
258 gboolean 264 gboolean
259 playback_play_file(PlaylistEntry *entry) 265 playback_play_file(PlaylistEntry *entry)