# HG changeset patch # User Yoshiki Yazawa # Date 1191855770 -32400 # Node ID 3afd18361a1058b717bdfcaf41af8939a3321cec # Parent 8f3188746b6490aa6821bce1cba3cdca2e45102b change the way of duplicating original playback. diff -r 8f3188746b64 -r 3afd18361a10 src/cue/cuesheet.c --- a/src/cue/cuesheet.c Mon Oct 08 02:02:02 2007 -0500 +++ b/src/cue/cuesheet.c Tue Oct 09 00:02:50 2007 +0900 @@ -471,29 +471,14 @@ { if (real_ip) g_free(real_ip); - real_ip = g_new0(InputPlayback, 1); + + /* duplicate original playback and modify */ + real_ip = (InputPlayback *)g_memdup(data, sizeof(InputPlayback)); real_ip->plugin = real_ip_plugin; real_ip->plugin->set_info = set_info_override; real_ip->plugin->output = cue_ip.output; real_ip->filename = cue_file; - /* need to pass playback->output to real_ip */ - real_ip->output = data->output; - real_ip->data = data->data; - - /* we have to copy set_pb_ready things too. */ - real_ip->pb_ready_mutex = data->pb_ready_mutex; - real_ip->pb_ready_cond = data->pb_ready_cond; - real_ip->pb_ready_val = data->pb_ready_val; - real_ip->set_pb_ready = data->set_pb_ready; - - real_ip->pb_change_mutex = data->pb_change_mutex; - real_ip->pb_change_cond = data->pb_change_cond; - real_ip->set_pb_change = data->set_pb_change; - - real_ip->set_params = data->set_params; - real_ip->set_title = data->set_title; - real_play_thread = g_thread_create((GThreadFunc)(real_ip->plugin->play_file), (gpointer)real_ip, TRUE, NULL); g_usleep(50000); // wait for 50msec while real input plugin is initializing.