add haupauge-1657 dual usb capture support, add deinterlace to recordmonitor, asset...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / zwindow.C
index 3c340844cb70734a2ccf039a2783f9606db3629a..f40e804b19d3f73e412366e4ad1883d24e04ea80 100644 (file)
@@ -185,7 +185,6 @@ ZWindow::ZWindow(MWindow *mwindow)
        idx = -1;
        edl = 0;
        highlighted = 0;
-       destroy = 1;
        title[0] = 0;
        zgui = 0;
 }
@@ -207,7 +206,8 @@ BC_Window* ZWindow::new_gui()
 
 void ZWindow::handle_done_event(int result)
 {
-       if( destroy )
+       stop_playback(1);
+       if( result )
                mwindow->del_mixer(this);
        idx = -1;
 }
@@ -218,12 +218,11 @@ void ZWindow::handle_close_event(int result)
 
 void ZWindow::change_source(EDL *edl)
 {
-       if( this->edl && edl != this->edl )
+       if( this->edl == edl ) return;
+       zgui->playback_engine->refresh_frame(CHANGE_ALL, edl);
+       if( this->edl )
                this->edl->remove_user();
        this->edl = edl;
-       if( edl != 0 ) {
-               zgui->playback_engine->refresh_frame(CHANGE_ALL, edl);
-       }
 }
 
 void ZWindow::stop_playback(int wait)
@@ -231,11 +230,14 @@ void ZWindow::stop_playback(int wait)
        zgui->playback_engine->stop_playback(wait);
 }
 
-void ZWindow::issue_command(int command, int wait_tracking,
-               int use_inout, int update_refresh, int toggle_audio, int loop_play)
+void ZWindow::handle_mixer(int command, int wait_tracking,
+               int use_inout, int toggle_audio, int loop_play, float speed)
 {
-       zgui->playback_engine->issue_command(edl, command,
-                       wait_tracking, use_inout, update_refresh, toggle_audio, loop_play);
+       PlaybackEngine *engine = zgui->playback_engine;
+       engine->next_command->toggle_audio = toggle_audio;
+       engine->next_command->loop_play = loop_play;
+       engine->next_command->speed = speed;
+       engine->send_command(command, edl, wait_tracking, use_inout);
 }
 
 void ZWindow::update_mixer_ids()