split resource_thread update into separate audio/video threads, boxblur layout tweaks
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / mwindowgui.C
index 0033b268950d11eec7288d1a679db956bcde672a..7b92aa3258ae2a6635b163b0aaaff3a80329e418 100644 (file)
@@ -159,7 +159,7 @@ void MWindowGUI::create_objects()
        lock_window("MWindowGUI::create_objects");
        const int debug = 0;
 
-       resource_thread = new ResourceThread(mwindow, this);
+       resource_thread = new ResourceThread(mwindow);
        resource_thread->create_objects();
 
 
@@ -186,6 +186,12 @@ void MWindowGUI::create_objects()
        }
 #endif
        mwindow->reset_android_remote();
+       if( !cwindow_remote_handler )
+               cwindow_remote_handler = (RemoteHandler*)
+                       new CWindowKeyEvHandler(mwindow->gui->remote_control);
+       if( !record_remote_handler )
+               record_remote_handler = (RemoteHandler*)
+                       new RecordKeyEvHandler(mwindow->gui->remote_control);
        if(debug) printf("MWindowGUI::create_objects %d\n", __LINE__);
 
        int x1 = get_w() - MainShBtns::calculate_w(-1, 0, -1) - xS(5);
@@ -1078,11 +1084,21 @@ int MWindowGUI::keypress_event()
 
        switch( get_keypress() ) {
        case 'A':
-               if( !ctrl_down() || !shift_down() || alt_down() ) break;
-               mwindow->edl->tracks->clear_selected_edits();
-               draw_overlays(1);
+               if( !alt_down() ) {
+                       if( !ctrl_down() || !shift_down() ) break;
+                       mwindow->edl->tracks->clear_selected_edits();
+                       draw_overlays(1);
+                       result = 1;
+                       break;
+               } // fall thru
+       case 'a':
+               if( !alt_down() ) break;
+               stop_transport("MWindowGUI::keypress_event 1");
+               mwindow->nearest_auto_keyframe(shift_down(),
+                       !ctrl_down() ? PLAY_FORWARD : PLAY_REVERSE);
                result = 1;
                break;
+
        case 'e':
                mwindow->toggle_editing_mode();
                result = 1;
@@ -1090,7 +1106,7 @@ int MWindowGUI::keypress_event()
 
        case 'k': case 'K':
                if( alt_down() ) break;
-               stop_transport("MWindowGUI::keypress_event 1");
+               stop_transport("MWindowGUI::keypress_event 2");
                mwindow->nearest_plugin_keyframe(shift_down(),
                        !ctrl_down() ? PLAY_FORWARD : PLAY_REVERSE);
                result = 1;
@@ -1793,6 +1809,7 @@ void MWindowGUI::delete_y_pane(int cursor_y)
 
 void MWindowGUI::stop_pane_drag()
 {
+       if( !dragging_pane ) return;
        dragging_pane = 0;
        resource_thread->stop_draw(0);