X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fvdeviceprefs.C;h=d20c0587b02098513e0cf222fe0b03750dd6e9a7;hb=60f8df69db9ddd8148bfc41a17bb0955b52a45e6;hp=ac396dc04774e35c0d8be9c88366a9781206f484;hpb=30bdb85eb33a8ee7ba675038a86c6be59c43d7bd;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/vdeviceprefs.C b/cinelerra-5.1/cinelerra/vdeviceprefs.C index ac396dc0..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 @@ -50,7 +52,7 @@ VDevicePrefs::VDevicePrefs(int x, { this->pwindow = pwindow; this->dialog = dialog; - this->driver = -1; + this->driver = DEV_UNKNOWN; this->mode = mode; this->out_config = out_config; this->in_config = in_config; @@ -72,7 +74,6 @@ VDevicePrefs::~VDevicePrefs() } if( config >= 0 ) pwindow->mwindow->session->save_x11_host(config, out_config->x11_host); - pwindow->mwindow->channeldb_buz->save("channeldb_buz"); } @@ -95,8 +96,8 @@ void VDevicePrefs::reset_objects() firewire_path = 0; fields_title = 0; device_fields = 0; + use_direct_x11 = 0; - buz_swap_channels = 0; channel_picker = 0; } @@ -129,8 +130,7 @@ int VDevicePrefs::initialize(int creation) switch(this->driver) { - case VIDEO4LINUX: - create_v4l_objs(); + case DEV_UNKNOWN: break; case VIDEO4LINUX2: case CAPTURE_JPEG_WEBCAM: @@ -146,13 +146,6 @@ int VDevicePrefs::initialize(int creation) case SCREENCAPTURE: create_screencap_objs(); break; - case CAPTURE_LML: - create_lml_objs(); - break; - case CAPTURE_BUZ: - case PLAYBACK_BUZ: - create_buz_objs(); - break; case PLAYBACK_X11: case PLAYBACK_X11_XV: case PLAYBACK_X11_GL: @@ -186,12 +179,12 @@ int VDevicePrefs::delete_objects() { delete output_title; delete channel_picker; - delete buz_swap_channels; delete device_title; delete device_text; delete dvb_adapter_device; delete follow_video_config; delete dvb_adapter_title; + delete use_direct_x11; delete port_title; @@ -209,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; @@ -233,74 +233,6 @@ void VDevicePrefs::create_dvb_objs() dialog->add_subwindow(follow_video_config); } -int VDevicePrefs::create_lml_objs() -{ - char *output_char = 0; - int x1 = x + menu->get_w() + 5; - BC_Resources *resources = BC_WindowBase::get_resources(); - - switch(mode) - { - case MODEPLAY: - output_char = out_config->lml_out_device; - break; - case MODERECORD: - output_char = in_config->lml_in_device; - break; - } - dialog->add_subwindow(device_title = new BC_Title(x1, y, _("Device path:"), MEDIUMFONT, resources->text_default)); - x1 += device_title->get_w() + 10; - dialog->add_subwindow(device_text = new VDeviceTextBox(x1, y + 20, output_char)); - return 0; -} - -int VDevicePrefs::create_buz_objs() -{ -#ifdef HAVE_VIDEO4LINUX - - - char *output_char = 0; - int x1 = x + menu->get_w() + 5; - int x2 = x1 + 210; - int y1 = y; - BC_Resources *resources = BC_WindowBase::get_resources(); - - switch(mode) - { - case MODEPLAY: - output_char = out_config->buz_out_device; - break; - case MODERECORD: - output_char = in_config->buz_in_device; - break; - } - dialog->add_subwindow(device_title = new BC_Title(x1, y1, _("Device path:"), MEDIUMFONT, resources->text_default)); - - y1 += 20; - dialog->add_subwindow(device_text = new VDeviceTextBox(x1, y1, output_char)); - - if(driver == PLAYBACK_BUZ) - { - dialog->add_subwindow(buz_swap_channels = - new VDeviceCheckBox(x2, y1, &out_config->buz_swap_fields, _("Swap fields"))); - } - y1 += 30; - if(driver == PLAYBACK_BUZ) - { - dialog->add_subwindow(output_title = new BC_Title(x1, y1, _("Output channel:"))); - y1 += 20; - channel_picker = new PrefsChannelPicker(pwindow->mwindow, - this, - pwindow->mwindow->channeldb_buz, - x1, - y1); - channel_picker->create_objects(); - } -#endif // HAVE_VIDEO4LINUX - - return 0; -} - int VDevicePrefs::create_firewire_objs() { int *output_int = 0; @@ -392,23 +324,6 @@ int VDevicePrefs::create_firewire_objs() return 0; } -int VDevicePrefs::create_v4l_objs() -{ -#ifdef HAVE_VIDEO4LINUX - - - char *output_char; - BC_Resources *resources = BC_WindowBase::get_resources(); - int x1 = x + menu->get_w() + 5; - output_char = pwindow->thread->edl->session->vconfig_in->v4l_in_device; - 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)); - - -#endif // HAVE_VIDEO4LINUX - return 0; -} - int VDevicePrefs::create_v4l2_objs() { char *output_char; @@ -428,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); @@ -469,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 ) { @@ -481,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; } @@ -510,8 +436,8 @@ char* VDriverMenu::driver_to_string(int driver) { switch(driver) { - case VIDEO4LINUX: - sprintf(string, VIDEO4LINUX_TITLE); + case DEV_UNKNOWN: + sprintf(string, DEV_UNKNOWN_TITLE); break; case VIDEO4LINUX2: sprintf(string, VIDEO4LINUX2_TITLE); @@ -531,12 +457,6 @@ char* VDriverMenu::driver_to_string(int driver) case SCREENCAPTURE: sprintf(string, SCREENCAPTURE_TITLE); break; - case CAPTURE_BUZ: - sprintf(string, CAPTURE_BUZ_TITLE); - break; - case CAPTURE_LML: - sprintf(string, CAPTURE_LML_TITLE); - break; #ifdef HAVE_FIREWIRE case CAPTURE_FIREWIRE: sprintf(string, CAPTURE_FIREWIRE_TITLE); @@ -557,12 +477,6 @@ char* VDriverMenu::driver_to_string(int driver) case PLAYBACK_X11_GL: sprintf(string, PLAYBACK_X11_GL_TITLE); break; - case PLAYBACK_LML: - sprintf(string, PLAYBACK_LML_TITLE); - break; - case PLAYBACK_BUZ: - sprintf(string, PLAYBACK_BUZ_TITLE); - break; #ifdef HAVE_FIREWIRE case PLAYBACK_FIREWIRE: sprintf(string, PLAYBACK_FIREWIRE_TITLE); @@ -584,10 +498,6 @@ void VDriverMenu::create_objects() { if(do_input) { -#ifdef HAVE_VIDEO4LINUX - add_item(new VDriverItem(this, VIDEO4LINUX_TITLE, VIDEO4LINUX)); -#endif - #ifdef HAVE_VIDEO4LINUX2 add_item(new VDriverItem(this, VIDEO4LINUX2_TITLE, VIDEO4LINUX2)); add_item(new VDriverItem(this, CAPTURE_JPEG_WEBCAM_TITLE, CAPTURE_JPEG_WEBCAM)); @@ -597,14 +507,13 @@ void VDriverMenu::create_objects() #endif add_item(new VDriverItem(this, SCREENCAPTURE_TITLE, SCREENCAPTURE)); -#ifdef HAVE_VIDEO4LINUX - add_item(new VDriverItem(this, CAPTURE_BUZ_TITLE, CAPTURE_BUZ)); -#endif #ifdef HAVE_FIREWIRE add_item(new VDriverItem(this, CAPTURE_FIREWIRE_TITLE, CAPTURE_FIREWIRE)); add_item(new VDriverItem(this, CAPTURE_IEC61883_TITLE, CAPTURE_IEC61883)); #endif +#ifdef HAVE_DVB add_item(new VDriverItem(this, CAPTURE_DVB_TITLE, CAPTURE_DVB)); +#endif } else { @@ -615,7 +524,6 @@ void VDriverMenu::create_objects() if(get_opengl_server_version() >= 103) add_item(new VDriverItem(this, PLAYBACK_X11_GL_TITLE, PLAYBACK_X11_GL)); #endif - add_item(new VDriverItem(this, PLAYBACK_BUZ_TITLE, PLAYBACK_BUZ)); #ifdef HAVE_FIREWIRE add_item(new VDriverItem(this, PLAYBACK_FIREWIRE_TITLE, PLAYBACK_FIREWIRE)); add_item(new VDriverItem(this, PLAYBACK_DV1394_TITLE, PLAYBACK_DV1394)); @@ -731,7 +639,7 @@ int VScalingItem::handle_event() VScalingEquation::VScalingEquation(int x, int y, int *output) - : BC_PopupMenu(x, y, 175, interpolation_to_string(*output)) + : BC_PopupMenu(x, y, 240, interpolation_to_string(*output)) { this->output = output; }