improve resize flash operation, fixup xv grab/ungrab, fixup label updates
[goodguy/history.git] / cinelerra-5.1 / cinelerra / recordmonitor.C
index aec770a733a14817019e0a7679fd642d325d4120..7ea18e1dfb1066acf5e0289b9c30449ef31b1fb9 100644 (file)
@@ -41,6 +41,7 @@
 #include "recordscopes.h"
 #include "recordtransport.h"
 #include "recordmonitor.h"
+#include "signalstatus.h"
 #include "theme.h"
 #include "videodevice.inc"
 #include "vframe.h"
@@ -279,12 +280,14 @@ RecordMonitorGUI::RecordMonitorGUI(MWindow *mwindow,
 RecordMonitorGUI::~RecordMonitorGUI()
 {
        lock_window("RecordMonitorGUI::~RecordMonitorGUI");
+#ifdef HAVE_DVB
        delete signal_status;
+#endif
        delete canvas;
        if( bitmap ) delete bitmap;
        if( channel_picker ) delete channel_picker;
-       if( avc1394transport_thread )
 #ifdef HAVE_FIREWIRE
+       if( avc1394transport_thread )
                delete avc1394transport_thread;
        if( avc ) {
                delete avc;
@@ -344,7 +347,7 @@ void RecordMonitorGUI::create_objects()
                                add_subwindow(avc1394transport_timecode =
                                        new BC_Title(avc1394_transport->x_end,
                                                mwindow->theme->rmonitor_tx_y + 10,
-                                               _("00:00:00:00"),
+                                               "00:00:00:00",
                                                MEDIUM_7SEGMENT,
                                                BLACK));
 
@@ -373,12 +376,14 @@ void RecordMonitorGUI::create_objects()
                canvas->create_objects(0);
                canvas->use_rwindow();
 
+#ifdef HAVE_DVB
                if( driver == CAPTURE_DVB ) {
                        int ssw = SignalStatus::calculate_w(this);
                        signal_status = new SignalStatus(this, get_w()-ssw-3, 0);
                        add_subwindow(signal_status);
                        signal_status->create_objects();
                }
+#endif
 
                int x = mwindow->theme->widget_border;
                int y = mwindow->theme->widget_border;
@@ -432,16 +437,6 @@ int RecordMonitorGUI::button_press_event()
 {
        if(mwindow->session->rwindow_fullscreen && canvas && canvas->get_canvas())
                return canvas->button_press_event_base(canvas->get_canvas());
-
-       if( get_buttonpress() == 2 ) {
-               return 0;
-       }
-       else
-// Right button
-       if( get_buttonpress() == 3 ) {
-               monitor_menu->activate_menu();
-               return 1;
-       }
        return 0;
 }
 
@@ -461,6 +456,10 @@ int RecordMonitorGUI::cursor_enter_event()
 
 int RecordMonitorGUI::button_release_event()
 {
+       if( get_buttonpress() == 3 && cursor_inside() ) {
+               monitor_menu->activate_menu();
+               return 1;
+       }
        if( canvas && canvas->get_canvas() )
                return canvas->button_release_event();
        return 0;
@@ -528,8 +527,10 @@ int RecordMonitorGUI::keypress_event()
 
        default:
                if(canvas) result = canvas->keypress_event(this);
+#ifdef HAVE_FIREWIRE
                if(!result && avc1394_transport)
                        result = avc1394_transport->keypress_event(get_keypress());
+#endif
                break;
        }
 
@@ -667,6 +668,7 @@ int RecordMonitorGUI::create_bitmap()
 
 void RecordMonitorGUI::enable_signal_status(int enable)
 {
+#ifdef HAVE_DVB
        if( !signal_status ) return;
        signal_status->lock_window("RecordMonitorGUI::enable_signal_status");
        if( !enable )
@@ -677,6 +679,7 @@ void RecordMonitorGUI::enable_signal_status(int enable)
        DeviceDVBInput *dvb_input = record->dvb_device();
        if( dvb_input )
                dvb_input->set_signal_status(!enable ? 0 : signal_status);
+#endif
 }
 
 void RecordMonitorGUI::
@@ -853,6 +856,9 @@ RecordMonitorFullsize::RecordMonitorFullsize(MWindow *mwindow,
 }
 int RecordMonitorFullsize::handle_event()
 {
+       Record *record = window->record;
+       record->video_zoom = 1.0;
+       record->record_gui->set_translation(record->video_x, record->video_y, record->video_zoom);
        return 1;
 }
 
@@ -1231,18 +1237,23 @@ RecVideoDVThread::~RecVideoDVThread()
 
 int RecVideoDVThread::start_rendering()
 {
+#ifdef HAVE_DV
        dv = dv_new();
+#endif
        return 0;
 }
 
 int RecVideoDVThread::stop_rendering()
 {
+#ifdef HAVE_DV
        if( dv ) { dv_delete(((dv_t*)dv));  dv = 0; }
+#endif
        return 0;
 }
 
 int RecVideoDVThread::render_frame(VFrame *frame, long size)
 {
+#ifdef HAVE_DV
        unsigned char *yuv_planes[3];
        yuv_planes[0] = thread->output_frame->get_y();
        yuv_planes[1] = thread->output_frame->get_u();
@@ -1252,7 +1263,7 @@ int RecVideoDVThread::render_frame(VFrame *frame, long size)
                frame->get_data(),
                frame->get_compressed_size(),
                thread->output_frame->get_color_model());
-
+#endif
        return 0;
 }