X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmwindowgui.C;h=0fde87abb75419f77ce5abb61908a78b6f3e6b03;hb=9e3d90a964c0fbe97c0b58235336a47111932d5d;hp=69204d9c4e7bae60b00ecf4e44a06f45a19e1643;hpb=4c207ab325a8e8e6b79a9a18d4647273b5f59f93;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/mwindowgui.C b/cinelerra-5.1/cinelerra/mwindowgui.C index 69204d9c..0fde87ab 100644 --- a/cinelerra-5.1/cinelerra/mwindowgui.C +++ b/cinelerra-5.1/cinelerra/mwindowgui.C @@ -74,6 +74,7 @@ #include "vwindowgui.h" #include "vwindow.h" #include "wintv.h" +#include "x10tv.h" #include "zoombar.h" #define PANE_DRAG_MARGIN MAX(mwindow->theme->pane_w, mwindow->theme->pane_h) @@ -165,21 +166,32 @@ void MWindowGUI::create_objects() if(debug) printf("MWindowGUI::create_objects %d\n", __LINE__); set_icon(mwindow->theme->get_image("mwindow_icon")); remote_control = new RemoteControl(this); + cwindow_remote_handler = 0; + record_remote_handler = 0; +#ifdef HAVE_X10TV +// should be first, use if plugged + if( !cwindow_remote_handler && mwindow->x10tv ) { + cwindow_remote_handler = (RemoteHandler*) + new X10TVCWindowHandler(mwindow->x10tv, remote_control); + record_remote_handler = (RemoteHandler*) + new X10TVRecordHandler(mwindow->x10tv, remote_control); + } +#endif #ifdef HAVE_WINTV - WinTV *wintv = mwindow->wintv; - if( wintv ) { + if( !cwindow_remote_handler && mwindow->wintv ) { cwindow_remote_handler = (RemoteHandler*) - new WinTVCWindowHandler(wintv, remote_control); + new WinTVCWindowHandler(mwindow->wintv, remote_control); record_remote_handler = (RemoteHandler*) - new WinTVRecordHandler(wintv, remote_control); + new WinTVRecordHandler(mwindow->wintv, remote_control); } #endif - if( !cwindow_remote_handler ) cwindow_remote_handler = - (RemoteHandler*)new CWindowRemoteHandler(remote_control); - if( !record_remote_handler ) record_remote_handler = - (RemoteHandler*)new RecordRemoteHandler(remote_control); 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); @@ -1313,6 +1325,19 @@ void MWindowGUI::use_android_remote(int on) if( android_control ) return; android_control = new AndroidControl(this); } +int MWindowGUI::keyev_grab_remote() +{ + if( cwindow_remote_handler && cwindow_remote_handler->is_keytv() && + record_remote_handler && record_remote_handler->is_keytv() ) + return 0; + delete cwindow_remote_handler; + delete record_remote_handler; + cwindow_remote_handler = (RemoteHandler*) + new CWindowKeyEvHandler(mwindow->gui->remote_control); + record_remote_handler = (RemoteHandler*) + new RecordKeyEvHandler(mwindow->gui->remote_control); + return 1; +} int MWindowGUI::close_event() {