X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fgui%2Fqt4%2Fcomponents%2Fopen.cpp;h=ca6f089893d86452c2ef399ba76810ecfa1314eb;hb=666c5ea213613b231c1c0d4e24e27b4e2c9f59a5;hp=d75bd4f69363936c47ab81f212c486ef45d66cd9;hpb=889362b53c52e8565b1e76b246f9667139b248ae;p=vlc diff --git a/modules/gui/qt4/components/open.cpp b/modules/gui/qt4/components/open.cpp index d75bd4f693..ca6f089893 100644 --- a/modules/gui/qt4/components/open.cpp +++ b/modules/gui/qt4/components/open.cpp @@ -467,13 +467,13 @@ CaptureOpenPanel::CaptureOpenPanel( QWidget *_parent, intf_thread_t *_p_intf ) : #define addModuleAndLayouts( number, name, label ) \ QWidget * name ## DevPage = new QWidget( this ); \ QWidget * name ## PropPage = new QWidget( this ); \ - stackedDevLayout->insertWidget( number, name ## DevPage ); \ - stackedPropLayout->insertWidget( number, name ## PropPage ); \ + stackedDevLayout->addWidget( name ## DevPage ); \ + stackedPropLayout->addWidget( name ## PropPage ); \ QGridLayout * name ## DevLayout = new QGridLayout; \ QGridLayout * name ## PropLayout = new QGridLayout; \ name ## DevPage->setLayout( name ## DevLayout ); \ name ## PropPage->setLayout( name ## PropLayout ); \ - ui.deviceCombo->insertItem( number, qtr( label ) ); + ui.deviceCombo->addItem( qtr( label ), QVariant( number ) ); #define CuMRL( widget, slot ) CONNECT( widget , slot , this, updateMRL() ); @@ -575,7 +575,54 @@ CaptureOpenPanel::CaptureOpenPanel( QWidget *_parent, intf_thread_t *_p_intf ) : /************** * BDA Stuffs * **************/ - addModuleAndLayouts( BDA_DEVICE, bda, "DVB / BDA" ); + addModuleAndLayouts( BDA_DEVICE, bda, "DVB DirectShow" ); + + /* bda Main */ + QLabel *bdaDeviceLabel = new QLabel( qtr( "Adapter card to tune" ) ); + QLabel *bdaTypeLabel = new QLabel( qtr( "DVB Type:" ) ); + + bdaCard = new QSpinBox; + bdaCard->setAlignment( Qt::AlignRight ); + + bdaDevLayout->addWidget( bdaDeviceLabel, 0, 0 ); + bdaDevLayout->addWidget( bdaCard, 0, 2, 1, 2 ); + + bdas = new QRadioButton( "DVB-S" ); + bdas->setChecked( true ); + bdac = new QRadioButton( "DVB-C" ); + bdat = new QRadioButton( "DVB-T" ); + + bdaDevLayout->addWidget( bdaTypeLabel, 1, 0 ); + bdaDevLayout->addWidget( bdas, 1, 1 ); + bdaDevLayout->addWidget( bdac, 1, 2 ); + bdaDevLayout->addWidget( bdat, 1, 3 ); + + /* bda Props */ + QLabel *bdaFreqLabel = + new QLabel( qtr( "Transponder/multiplex frequency" ) ); + bdaFreq = new QSpinBox; + bdaFreq->setAlignment( Qt::AlignRight ); + bdaFreq->setSuffix(" kHz"); + bdaPropLayout->addWidget( bdaFreqLabel, 0, 0 ); + bdaPropLayout->addWidget( bdaFreq, 0, 1 ); + + bdaSrateLabel = new QLabel( qtr( "Transponder symbol rate" ) ); + bdaSrate = new QSpinBox; + bdaSrate->setAlignment( Qt::AlignRight ); + bdaSrate->setSuffix(" kHz"); + bdaPropLayout->addWidget( bdaSrateLabel, 1, 0 ); + bdaPropLayout->addWidget( bdaSrate, 1, 1 ); + + /* bda CONNECTs */ + CuMRL( bdaCard, valueChanged ( int ) ); + CuMRL( bdaFreq, valueChanged ( int ) ); + CuMRL( bdaSrate, valueChanged ( int ) ); + BUTTONACT( bdas, updateButtons() ); + BUTTONACT( bdat, updateButtons() ); + BUTTONACT( bdac, updateButtons() ); + BUTTONACT( bdas, updateMRL() ); + BUTTONACT( bdat, updateMRL() ); + BUTTONACT( bdac, updateMRL() ); /************** * DVB Stuffs * @@ -584,7 +631,7 @@ CaptureOpenPanel::CaptureOpenPanel( QWidget *_parent, intf_thread_t *_p_intf ) : /* DVB Main */ QLabel *dvbDeviceLabel = new QLabel( qtr( "Adapter card to tune" ) ); - QLabel *dvbTyepLabel = new QLabel( qtr( "DVB Type:" ) ); + QLabel *dvbTypeLabel = new QLabel( qtr( "DVB Type:" ) ); dvbCard = new QSpinBox; dvbCard->setAlignment( Qt::AlignRight ); @@ -598,7 +645,7 @@ CaptureOpenPanel::CaptureOpenPanel( QWidget *_parent, intf_thread_t *_p_intf ) : dvbc = new QRadioButton( "DVB-C" ); dvbt = new QRadioButton( "DVB-T" ); - dvbDevLayout->addWidget( dvbTyepLabel, 1, 0 ); + dvbDevLayout->addWidget( dvbTypeLabel, 1, 0 ); dvbDevLayout->addWidget( dvbs, 1, 1 ); dvbDevLayout->addWidget( dvbc, 1, 2 ); dvbDevLayout->addWidget( dvbt, 1, 3 ); @@ -646,7 +693,9 @@ void CaptureOpenPanel::clear() void CaptureOpenPanel::updateMRL() { QString mrl = ""; - int i_devicetype = ui.deviceCombo->currentIndex(); + int i_devicetype = ui.deviceCombo->itemData( + ui.deviceCombo->currentIndex() ).toInt(); + msg_Dbg( p_intf, "Capture Type: %i", i_devicetype ); switch( i_devicetype ) { case V4L_DEVICE: @@ -673,8 +722,15 @@ void CaptureOpenPanel::updateMRL() mrl += " :dvb-srate=" + QString("%1").arg( dvbSrate->value() ); break; case BDA_DEVICE: + if( bdas->isChecked() ) mrl = "dvb-s://"; + else if( bdat->isChecked() ) mrl = "dvb-t://"; + else if( bdac->isChecked() ) mrl = "dvb-c://"; + else return; + mrl += " :dvb-adapter=" + QString("%1").arg( bdaCard->value() ); + mrl += " :dvb-frequency=" + QString("%1").arg( bdaFreq->value() ); + mrl += " :dvb-srate=" + QString("%1").arg( bdaSrate->value() ); break; - case DSHOW_DEVICE: + case DSHOW_DEVICE: break; } @@ -683,6 +739,28 @@ void CaptureOpenPanel::updateMRL() void CaptureOpenPanel::updateButtons() { - if( dvbs->isChecked() ) dvbFreq->setSuffix(" kHz"); - if( dvbc->isChecked() || dvbt->isChecked() ) dvbFreq->setSuffix(" Hz"); + int i_devicetype = ui.deviceCombo->itemData( + ui.deviceCombo->currentIndex() ).toInt(); + msg_Dbg( p_intf, "Capture Type: %i", i_devicetype ); + switch( i_devicetype ) + { + case DVB_DEVICE: + if( dvbs->isChecked() ) dvbFreq->setSuffix(" kHz"); + if( dvbc->isChecked() || dvbt->isChecked() ) dvbFreq->setSuffix(" Hz"); + break; + case BDA_DEVICE: + if( bdas->isChecked() ) bdaFreq->setSuffix(" kHz"); + if( bdac->isChecked() || bdat->isChecked() ) bdaFreq->setSuffix(" Hz"); + if( bdas->isChecked() || bdac->isChecked() ) + { + bdaSrate->hide(); + bdaSrateLabel->hide(); + } + else + { + bdaSrate->show(); + bdaSrateLabel->show(); + } + break; + } }