#include "components/open_panels.hpp"
#include "dialogs/open.hpp"
#include "dialogs_provider.hpp"
-#include "components/preferences_widgets.hpp"
#include <QFileDialog>
#include <QDialogButtonBox>
/* Show a fileBrowser to select a subtitle */
void FileOpenPanel::browseFileSub()
{
- // FIXME Handle selection of more than one subtitles file
+ // TODO Handle selection of more than one subtitles file
QStringList files = THEDP->showSimpleOpen( qtr("Open subtitles file"),
EXT_FILTER_SUBTITLE,
dialogBox->directory().absolutePath() );
{
QString mrl = "";
- /* CDDAX and VCDX not implemented. FIXME ? */
+ /* CDDAX and VCDX not implemented. TODO ? */
/* DVD */
if( ui.dvdRadioButton->isChecked() ) {
if( !ui.dvdsimple->isChecked() )
#define CuMRL( widget, slot ) CONNECT( widget , slot , this, updateMRL() );
+#ifndef WIN32
/*******
* V4L *
*******/
+ if( module_Exists( p_intf, "v4l" ) ){
addModuleAndLayouts( V4L_DEVICE, v4l, "Video for Linux" );
/* V4l Main panel */
CuMRL( v4lAudioDevice, textChanged( QString ) );
CuMRL( v4lFreq, valueChanged ( int ) );
CuMRL( v4lNormBox, currentIndexChanged ( int ) );
+ }
/*******
* V4L2*
*******/
+ if( module_Exists( p_intf, "v4l2" ) ){
addModuleAndLayouts( V4L2_DEVICE, v4l2, "Video for Linux 2" );
/* V4l Main panel */
CuMRL( v4l2VideoDevice, textChanged( QString ) );
CuMRL( v4l2AudioDevice, textChanged( QString ) );
CuMRL( v4l2StdBox, currentIndexChanged ( int ) );
+ }
/*******
* JACK *
*******/
+ if( module_Exists( p_intf, "access_jack" ) ){
addModuleAndLayouts( JACK_DEVICE, jack, "JACK Audio Connection Kit" );
/* Jack Main panel */
CuMRL( jackPace, stateChanged( int ) );
CuMRL( jackConnect, stateChanged( int ) );
CuMRL( jackPortsSelected, textChanged( QString ) );
+ }
/************
* PVR *
************/
+ if( module_Exists( p_intf, "pvr" ) ){
addModuleAndLayouts( PVR_DEVICE, pvr, "PVR" );
/* PVR Main panel */
CuMRL( pvrFreq, valueChanged ( int ) );
CuMRL( pvrBitr, valueChanged ( int ) );
- CuMRL( pvrNormBox, currentIndexChanged ( int ) );
+ CuMRL( pvrNormBox, currentIndexChanged ( int ) );
+ }
- /*********************
- * DirectShow Stuffs *
- *********************/
- addModuleAndLayouts( DSHOW_DEVICE, dshow, "DirectShow" );
+ /**************
+ * DVB Stuffs *
+ **************/
+ if( module_Exists( p_intf, "dvb" ) ){
+ addModuleAndLayouts( DVB_DEVICE, dvb, "DVB" );
- /* dshow Main */
+ /* DVB Main */
+ QLabel *dvbDeviceLabel = new QLabel( qtr( "Adapter card to tune" ) );
+ QLabel *dvbTypeLabel = new QLabel( qtr( "DVB Type:" ) );
- QLabel *dshowVDeviceLabel = new QLabel( qtr( "Video Device Name " ) );
- dshowDevLayout->addWidget( dshowVDeviceLabel, 0, 0 );
+ dvbCard = new QSpinBox;
+ dvbCard->setAlignment( Qt::AlignRight );
+ dvbCard->setPrefix( "/dev/dvb/adapter" );
- QLabel *dshowADeviceLabel = new QLabel( qtr( "Audio Device Name " ) );
- dshowDevLayout->addWidget( dshowADeviceLabel, 1, 0 );
+ dvbDevLayout->addWidget( dvbDeviceLabel, 0, 0 );
+ dvbDevLayout->addWidget( dvbCard, 0, 2, 1, 2 );
- QComboBox *dshowVDevice = new QComboBox;
- dshowDevLayout->addWidget( dshowVDevice, 0, 1 );
+ dvbs = new QRadioButton( "DVB-S" );
+ dvbs->setChecked( true );
+ dvbc = new QRadioButton( "DVB-C" );
+ dvbt = new QRadioButton( "DVB-T" );
- QComboBox *dshowADevice = new QComboBox;
- dshowDevLayout->addWidget( dshowADevice, 1, 1 );
+ dvbDevLayout->addWidget( dvbTypeLabel, 1, 0 );
+ dvbDevLayout->addWidget( dvbs, 1, 1 );
+ dvbDevLayout->addWidget( dvbc, 1, 2 );
+ dvbDevLayout->addWidget( dvbt, 1, 3 );
- QPushButton *dshowVRefresh = new QPushButton( qtr( "Update List" ) );
- dshowDevLayout->addWidget( dshowVRefresh, 0, 2 );
+ /* DVB Props panel */
+ QLabel *dvbFreqLabel =
+ new QLabel( qtr( "Transponder/multiplex frequency" ) );
+ dvbPropLayout->addWidget( dvbFreqLabel, 0, 0 );
- QPushButton *dshowARefresh = new QPushButton( qtr( "Update List" ) );
- dshowDevLayout->addWidget( dshowARefresh, 1, 2 );
+ dvbFreq = new QSpinBox;
+ dvbFreq->setAlignment( Qt::AlignRight );
+ dvbFreq->setSuffix(" kHz");
+ setSpinBoxFreq( dvbFreq );
+ dvbPropLayout->addWidget( dvbFreq, 0, 1 );
- QPushButton *dshowVConfig = new QPushButton( qtr( "Configure" ) );
- dshowDevLayout->addWidget( dshowVConfig, 0, 3 );
+ QLabel *dvbSrateLabel = new QLabel( qtr( "Transponder symbol rate" ) );
+ dvbPropLayout->addWidget( dvbSrateLabel, 1, 0 );
- QPushButton *dshowAConfig = new QPushButton( qtr( "Configure" ) );
- dshowDevLayout->addWidget( dshowAConfig, 1, 3 );
+ dvbSrate = new QSpinBox;
+ dvbSrate->setAlignment( Qt::AlignRight );
+ dvbSrate->setSuffix(" kHz");
+ setSpinBoxFreq( dvbSrate );
+ dvbPropLayout->addWidget( dvbSrate, 1, 1 );
+ dvbPropLayout->addItem( new QSpacerItem( 20, 20, QSizePolicy::Expanding ),
+ 2, 0, 2, 1 );
- /* dshow Properties */
+ /* DVB CONNECTs */
+ CuMRL( dvbCard, valueChanged ( int ) );
+ CuMRL( dvbFreq, valueChanged ( int ) );
+ CuMRL( dvbSrate, valueChanged ( int ) );
+
+ BUTTONACT( dvbs, updateButtons() );
+ BUTTONACT( dvbt, updateButtons() );
+ BUTTONACT( dvbc, updateButtons() );
+ }
+
+#else /*!WIN32 */
+
+ /*********************
+ * DirectShow Stuffs *
+ *********************/
+ if( module_Exists( p_intf, "dshow" ) ){
+ addModuleAndLayouts( DSHOW_DEVICE, dshow, "DirectShow" );
+
+ /* dshow Main */
+ int line = 0;
+ module_config_t *p_config =
+ config_FindConfig( VLC_OBJECT(p_intf), "dshow-vdev" );
+ vdevDshowW = new StringListConfigControl(
+ VLC_OBJECT(p_intf), p_config, this, false, dshowDevLayout, line );
+ line++;
+
+ p_config = config_FindConfig( VLC_OBJECT(p_intf), "dshow-adev" );
+ adevDshowW = new StringListConfigControl(
+ VLC_OBJECT(p_intf), p_config, this, false, dshowDevLayout, line );
+ line++;
+ /* dshow Properties */
QLabel *dshowVSizeLabel = new QLabel( qtr( "Video size" ) );
dshowPropLayout->addWidget( dshowVSizeLabel, 0, 0 );
- QLineEdit *dshowVSizeLine = new QLineEdit;
+ dshowVSizeLine = new QLineEdit;
dshowPropLayout->addWidget( dshowVSizeLine, 0, 1);
dshowPropLayout->addItem( new QSpacerItem( 20, 20, QSizePolicy::Expanding ),
1, 0, 3, 1 );
/* dshow CONNECTs */
- CuMRL( dshowVDevice, currentIndexChanged ( int ) );
- CuMRL( dshowADevice, currentIndexChanged ( int ) );
+ CuMRL( vdevDshowW->combo, currentIndexChanged ( int ) );
+ CuMRL( adevDshowW->combo, currentIndexChanged ( int ) );
CuMRL( dshowVSizeLine, textChanged( QString ) );
+ }
/**************
* BDA Stuffs *
**************/
+ if( module_Exists( p_intf, "bda" ) ){
addModuleAndLayouts( BDA_DEVICE, bda, "DVB DirectShow" );
/* bda Main */
BUTTONACT( bdas, updateMRL() );
BUTTONACT( bdat, updateMRL() );
BUTTONACT( bdac, updateMRL() );
+ }
+#endif
- /**************
- * DVB Stuffs *
- **************/
- addModuleAndLayouts( DVB_DEVICE, dvb, "DVB" );
-
- /* DVB Main */
- QLabel *dvbDeviceLabel = new QLabel( qtr( "Adapter card to tune" ) );
- QLabel *dvbTypeLabel = new QLabel( qtr( "DVB Type:" ) );
-
- dvbCard = new QSpinBox;
- dvbCard->setAlignment( Qt::AlignRight );
- dvbCard->setPrefix( "/dev/dvb/adapter" );
-
- dvbDevLayout->addWidget( dvbDeviceLabel, 0, 0 );
- dvbDevLayout->addWidget( dvbCard, 0, 2, 1, 2 );
-
- dvbs = new QRadioButton( "DVB-S" );
- dvbs->setChecked( true );
- dvbc = new QRadioButton( "DVB-C" );
- dvbt = new QRadioButton( "DVB-T" );
-
- dvbDevLayout->addWidget( dvbTypeLabel, 1, 0 );
- dvbDevLayout->addWidget( dvbs, 1, 1 );
- dvbDevLayout->addWidget( dvbc, 1, 2 );
- dvbDevLayout->addWidget( dvbt, 1, 3 );
-
- /* DVB Props panel */
- QLabel *dvbFreqLabel =
- new QLabel( qtr( "Transponder/multiplex frequency" ) );
- dvbPropLayout->addWidget( dvbFreqLabel, 0, 0 );
-
- dvbFreq = new QSpinBox;
- dvbFreq->setAlignment( Qt::AlignRight );
- dvbFreq->setSuffix(" kHz");
- setSpinBoxFreq( dvbFreq );
- dvbPropLayout->addWidget( dvbFreq, 0, 1 );
-
- QLabel *dvbSrateLabel = new QLabel( qtr( "Transponder symbol rate" ) );
- dvbPropLayout->addWidget( dvbSrateLabel, 1, 0 );
-
- dvbSrate = new QSpinBox;
- dvbSrate->setAlignment( Qt::AlignRight );
- dvbSrate->setSuffix(" kHz");
- setSpinBoxFreq( dvbSrate );
- dvbPropLayout->addWidget( dvbSrate, 1, 1 );
- dvbPropLayout->addItem( new QSpacerItem( 20, 20, QSizePolicy::Expanding ),
- 2, 0, 2, 1 );
-
- /* DVB CONNECTs */
- CuMRL( dvbCard, valueChanged ( int ) );
- CuMRL( dvbFreq, valueChanged ( int ) );
- CuMRL( dvbSrate, valueChanged ( int ) );
-
- BUTTONACT( dvbs, updateButtons() );
- BUTTONACT( dvbt, updateButtons() );
- BUTTONACT( dvbc, updateButtons() );
/**********
* Screen *
ui.deviceCombo->currentIndex() ).toInt();
switch( i_devicetype )
{
+#ifndef WIN32
case V4L_DEVICE:
mrl = "v4l://";
mrl += " :v4l-vdev=" + v4lVideoDevice->text();
mrl += " :dvb-frequency=" + QString("%1").arg( dvbFreq->value() );
mrl += " :dvb-srate=" + QString("%1").arg( dvbSrate->value() );
break;
+#else
case BDA_DEVICE:
if( bdas->isChecked() ) mrl = "dvb-s://";
else if( bdat->isChecked() ) mrl = "dvb-t://";
bdaBandBox->currentIndex() ).toInt() );
break;
case DSHOW_DEVICE:
+ mrl = "dshow://";
+ mrl += " :dshow-vdev=" + QString("%1").arg( vdevDshowW->getValue() );
+ mrl += " :dshow-adev=" + QString("%1").arg( adevDshowW->getValue() );
+ if( dshowVSizeLine->isModified() )
+ mrl += " :dshow-size=" + dshowVSizeLine->text();
break;
+#endif
case SCREEN_DEVICE:
mrl = "screen://";
updateButtons();
msg_Dbg( p_intf, "Capture Type: %i", i_devicetype );
switch( i_devicetype )
{
+#ifndef WIN32
case DVB_DEVICE:
if( dvbs->isChecked() ) dvbFreq->setSuffix(" kHz");
if( dvbc->isChecked() || dvbt->isChecked() ) dvbFreq->setSuffix(" Hz");
break;
+#else
case BDA_DEVICE:
if( bdas->isChecked() || bdac->isChecked() )
{
bdaBandLabel->show();
}
break;
+#endif
case SCREEN_DEVICE:
ui.optionsBox->hide();
ui.advancedButton->hide();