X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fvdeviceprefs.C;h=d20c0587b02098513e0cf222fe0b03750dd6e9a7;hb=c279e21fc2394a7908bbd1ba8c79b116fe9fb14a;hp=beada6050ff70d34815a5576f7475d96860097a0;hpb=d66e2dde00fcfbe27c461a9956e66753faa62c95;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/vdeviceprefs.C b/cinelerra-5.1/cinelerra/vdeviceprefs.C index beada605..d20c0587 100644 --- a/cinelerra-5.1/cinelerra/vdeviceprefs.C +++ b/cinelerra-5.1/cinelerra/vdeviceprefs.C @@ -22,6 +22,7 @@ #include "bcsignals.h" #include "channeldb.h" #include "channelpicker.h" +#include "clip.h" #include "edl.h" #include "edlsession.h" #include "formattools.h" @@ -37,6 +38,7 @@ #include "preferencesthread.h" #include "recordconfig.h" #include "recordprefs.h" +#include "theme.h" #include @@ -94,6 +96,7 @@ void VDevicePrefs::reset_objects() firewire_path = 0; fields_title = 0; device_fields = 0; + use_direct_x11 = 0; channel_picker = 0; } @@ -181,6 +184,7 @@ int VDevicePrefs::delete_objects() delete dvb_adapter_device; delete follow_video_config; delete dvb_adapter_title; + delete use_direct_x11; delete port_title; @@ -198,6 +202,13 @@ int VDevicePrefs::delete_objects() return 0; } +int VDevicePrefs::get_h() +{ + int margin = pwindow->mwindow->theme->widget_border; + return BC_Title::calculate_h(dialog, "X", MEDIUMFONT) + margin + + BC_TextBox::calculate_h(dialog, MEDIUMFONT, 1, 1); +} + void VDevicePrefs::create_dvb_objs() { int x1 = x + menu->get_w() + 30; @@ -332,7 +343,7 @@ int VDevicePrefs::create_v4l2jpeg_objs() char *output_char = &pwindow->thread->edl->session->vconfig_in->v4l2jpeg_in_device[0]; dialog->add_subwindow(device_title = new BC_Title(x1, y, _("Device path:"), MEDIUMFONT, resources->text_default)); dialog->add_subwindow(device_text = new VDeviceTextBox(x1, y + 20, output_char)); - x1 += max(device_title->get_w(),device_text->get_w()) + 5; + x1 += bmax(device_title->get_w(),device_text->get_w()) + 5; int *output_int = &pwindow->thread->edl->session->vconfig_in->v4l2jpeg_in_fields; fields_title = new BC_Title(x1, y, _("Fields:"), MEDIUMFONT, resources->text_default); dialog->add_subwindow(fields_title); @@ -373,7 +384,6 @@ int VDevicePrefs::create_x11_objs() { char *output_char; BC_Resources *resources = BC_WindowBase::get_resources(); - int x1 = x + menu->get_w() + 5; output_char = out_config->x11_host; const char *x11_display; switch( pwindow->thread->current_dialog ) { @@ -385,9 +395,21 @@ int VDevicePrefs::create_x11_objs() x11_display = _("Default B Display:"); break; break; } - dialog->add_subwindow(device_title = new BC_Title(x1, y, x11_display, + int x1 = menu->get_x() + menu->get_w() + 10; + int y1 = menu->get_y(); + if( driver == PLAYBACK_X11 ) y1 -= 10; + dialog->add_subwindow(device_title = new BC_Title(x1, y1+4, x11_display, MEDIUMFONT, resources->text_default)); - dialog->add_subwindow(device_text = new VDeviceTextBox(x1, y + 20, output_char)); + int x2 = x1 + device_title->get_w() + 10, dy = device_title->get_h(); + dialog->add_subwindow(device_text = new VDeviceTextBox(x2, y1, output_char)); + if( driver == PLAYBACK_X11 ) { + int y2 = device_text->get_h(); + if( dy < y2 ) dy = y2; + y1 += dy + 5; + use_direct_x11 = new BC_CheckBox(x1, y1, + &out_config->use_direct_x11, _("use direct x11 render if possible")); + dialog->add_subwindow(use_direct_x11); + } return 0; }