#include "bcsignals.h"
#include "channeldb.h"
#include "channelpicker.h"
+#include "clip.h"
#include "edl.h"
#include "edlsession.h"
#include "formattools.h"
#include "preferencesthread.h"
#include "recordconfig.h"
#include "recordprefs.h"
+#include "theme.h"
#include <string.h>
{
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;
}
if( config >= 0 )
pwindow->mwindow->session->save_x11_host(config, out_config->x11_host);
- pwindow->mwindow->channeldb_buz->save("channeldb_buz");
}
firewire_path = 0;
fields_title = 0;
device_fields = 0;
+ use_direct_x11 = 0;
- buz_swap_channels = 0;
channel_picker = 0;
}
switch(this->driver)
{
- case VIDEO4LINUX:
- create_v4l_objs();
+ case DEV_UNKNOWN:
break;
case VIDEO4LINUX2:
case CAPTURE_JPEG_WEBCAM:
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:
{
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;
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;
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;
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;
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);
{
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 ) {
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;
}
{
switch(driver)
{
- case VIDEO4LINUX:
- sprintf(string, VIDEO4LINUX_TITLE);
+ case DEV_UNKNOWN:
+ sprintf(string, DEV_UNKNOWN_TITLE);
break;
case VIDEO4LINUX2:
sprintf(string, VIDEO4LINUX2_TITLE);
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);
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);
{
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));
#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
{
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));
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;
}