]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/components/open_panels.cpp
Qt, logo filter should have a browse button for file selection.
[vlc] / modules / gui / qt4 / components / open_panels.cpp
index cc9f5294ca67cb7f58e609d2ab7692c66ef246a6..08cfd48aa4e8c1b8165b7c8095aad4a708163101 100644 (file)
@@ -68,7 +68,7 @@
         .replaceInStrings( QRegExp("^"), "/dev/" ) \
     );
 
-static const char *psz_devModule[] = { "v4l2", "pvr", "dvb", "bda",
+static const char psz_devModule[][8] = { "v4l2", "pvr", "dtv",
                                        "dshow", "screen", "jack" };
 
 /**************************************************************************
@@ -764,79 +764,6 @@ void CaptureOpenPanel::initialize()
     CuMRL( adevDshowW->combo, currentIndexChanged ( int ) );
     CuMRL( dshowVSizeLine, textChanged( const QString& ) );
     }
-
-    /**************
-     * BDA Stuffs *
-     **************/
-    if( module_exists( "bda" ) ){
-    addModuleAndLayouts( BDA_DEVICE, bda, "DVB DirectShow", QGridLayout );
-
-    /* bda Main */
-    QLabel *bdaTypeLabel = new QLabel( qtr( "DVB Type:" ) );
-
-    bdas = new QRadioButton( "DVB-S" );
-    bdas->setChecked( true );
-    bdac = new QRadioButton( "DVB-C" );
-    bdat = new QRadioButton( "DVB-T" );
-    bdaa = new QRadioButton( "ATSC" );
-    bdaq = new QRadioButton( "Clear QAM" );
-
-    bdaDevLayout->addWidget( bdaTypeLabel, 0, 0 );
-    bdaDevLayout->addWidget( bdas, 0, 1 );
-    bdaDevLayout->addWidget( bdac, 0, 2 );
-    bdaDevLayout->addWidget( bdat, 0, 3 );
-    bdaDevLayout->addWidget( bdaa, 0, 4 );
-    bdaDevLayout->addWidget( bdaq, 0, 5 );
-
-    /* bda Props */
-    QLabel *bdaFreqLabel =
-                    new QLabel( qtr( "Transponder/multiplex frequency" ) );
-    bdaPropLayout->addWidget( bdaFreqLabel, 0, 0 );
-
-    bdaFreq = new QSpinBox;
-    bdaFreq->setAlignment( Qt::AlignRight );
-    bdaFreq->setSuffix(" kHz");
-    bdaFreq->setSingleStep( 1000 );
-    setSpinBoxFreq( bdaFreq )
-    bdaPropLayout->addWidget( bdaFreq, 0, 1 );
-
-    bdaSrateLabel = new QLabel( qtr( "Transponder symbol rate" ) );
-    bdaPropLayout->addWidget( bdaSrateLabel, 1, 0 );
-
-    bdaSrate = new QSpinBox;
-    bdaSrate->setAlignment( Qt::AlignRight );
-    bdaSrate->setSuffix(" kHz");
-    setSpinBoxFreq( bdaSrate );
-    bdaPropLayout->addWidget( bdaSrate, 1, 1 );
-
-    bdaBandLabel = new QLabel( qtr( "Bandwidth" ) );
-    bdaPropLayout->addWidget( bdaBandLabel, 2, 0 );
-
-    bdaBandBox = new QComboBox;
-    setfillVLCConfigCombo( "dvb-bandwidth", p_intf, bdaBandBox );
-    bdaPropLayout->addWidget( bdaBandBox, 2, 1 );
-
-    bdaBandLabel->hide();
-    bdaBandBox->hide();
-    bdaPropLayout->addItem( new QSpacerItem( 20, 20, QSizePolicy::Expanding ),
-            2, 0, 2, 1 );
-
-    /* bda CONNECTs */
-    CuMRL( bdaFreq, valueChanged ( int ) );
-    CuMRL( bdaSrate, valueChanged ( int ) );
-    CuMRL( bdaBandBox,  currentIndexChanged ( int ) );
-    BUTTONACT( bdas, updateButtons() );
-    BUTTONACT( bdat, updateButtons() );
-    BUTTONACT( bdac, updateButtons() );
-    BUTTONACT( bdaa, updateButtons() );
-    BUTTONACT( bdaq, updateButtons() );
-    BUTTONACT( bdas, updateMRL() );
-    BUTTONACT( bdat, updateMRL() );
-    BUTTONACT( bdac, updateMRL() );
-    BUTTONACT( bdaa, updateMRL() );
-    BUTTONACT( bdaq, updateMRL() );
-    }
-
 #else /* WIN32 */
     /*******
      * V4L2*
@@ -1000,33 +927,45 @@ void CaptureOpenPanel::initialize()
     CuMRL( pvrBitr, valueChanged ( int ) );
     CuMRL( pvrNormBox, currentIndexChanged ( int ) );
     }
-
-    /**************
-     * DVB Stuffs *
-     **************/
-    if( module_exists( "dvb" ) ){
-    addModuleAndLayouts( DVB_DEVICE, dvb, "DVB", QGridLayout );
+#endif
+    /*************
+     * DVB Stuff *
+     *************/
+    if( module_exists( "dtv" ) ){
+    addModuleAndLayouts( DTV_DEVICE, dvb, N_("TV (digital)"), QGridLayout );
 
     /* DVB Main */
-    QLabel *dvbDeviceLabel = new QLabel( qtr( "Adapter card to tune" ) );
-    QLabel *dvbTypeLabel = new QLabel( qtr( "DVB Type:" ) );
+    QLabel *dvbDeviceLabel = new QLabel( qtr( "Tuner card" ) );
+    QLabel *dvbTypeLabel = new QLabel( qtr( "Delivery system" ) );
 
     dvbCard = new QSpinBox;
     dvbCard->setAlignment( Qt::AlignRight );
+#ifdef __linux__
     dvbCard->setPrefix( "/dev/dvb/adapter" );
-
+    dvbFE = new QSpinBox;
+    dvbFE->setPrefix( "/frontend" );
+#endif
     dvbDevLayout->addWidget( dvbDeviceLabel, 0, 0 );
-    dvbDevLayout->addWidget( dvbCard, 0, 2, 1, 2 );
+    dvbDevLayout->addWidget( dvbCard, 0, 1, 1, 2 );
+#ifdef __linux__
+    dvbDevLayout->addWidget( dvbFE, 0, 3 );
+#endif
 
     dvbc = new QRadioButton( "DVB-C" );
     dvbs = new QRadioButton( "DVB-S" );
+    dvbs2 = new QRadioButton( "DVB-S2" );
     dvbt = new QRadioButton( "DVB-T" );
+    atsc = new QRadioButton( "ATSC" );
+    cqam = new QRadioButton( "Clear QAM" );
     dvbt->setChecked( true );
 
-    dvbDevLayout->addWidget( dvbTypeLabel, 1, 0 );
+    dvbDevLayout->addWidget( dvbTypeLabel, 1, 0, 2, 1 );
     dvbDevLayout->addWidget( dvbc, 1, 1 );
     dvbDevLayout->addWidget( dvbs, 1, 2 );
+    dvbDevLayout->addWidget( dvbs2, 2, 2 );
     dvbDevLayout->addWidget( dvbt, 1, 3 );
+    dvbDevLayout->addWidget( atsc, 1, 4 );
+    dvbDevLayout->addWidget( cqam, 2, 4 );
 
     /* DVB Props panel */
     QLabel *dvbFreqLabel =
@@ -1052,30 +991,32 @@ void CaptureOpenPanel::initialize()
     dvbModLabel = new QLabel( qtr( "Modulation / Constellation" ) );
     dvbPropLayout->addWidget( dvbModLabel, 2, 0 );
 
-    dvbModBox = new QComboBox;
-    dvbModBox->addItem( qtr( "Automatic" ), 0 );
-    dvbModBox->addItem( qtr( "256-QAM" ), 256 );
-    dvbModBox->addItem( qtr( "128-QAM" ), 128 );
-    dvbModBox->addItem( qtr( "64-QAM" ), 64 );
-    dvbModBox->addItem( qtr( "32-QAM" ), 32 );
-    dvbModBox->addItem( qtr( "16-QAM" ), 16 );
-    dvbPropLayout->addWidget( dvbModBox, 2, 1 );
+    dvbQamBox = new QComboBox;
+    dvbQamBox->addItem( qtr( "Automatic" ), qfu("QAM") );
+    dvbQamBox->addItem( "256-QAM", qfu("256QAM") );
+    dvbQamBox->addItem( "128-QAM", qfu("128QAM") );
+    dvbQamBox->addItem( "64-QAM", qfu("64QAM") );
+    dvbQamBox->addItem( "32-QAM", qfu("32QAM") );
+    dvbQamBox->addItem( "16-QAM", qfu("16QAM") );
+    dvbPropLayout->addWidget( dvbQamBox, 2, 1 );
+
+    dvbPskBox = new QComboBox;
+    dvbPskBox->addItem( "QPSK", qfu("QPSK") );
+    dvbPskBox->addItem( "DQPSK", qfu("DQPSK") );
+    dvbPskBox->addItem( "8-PSK", qfu("8PSK") );
+    dvbPskBox->addItem( "16-APSK", qfu("16APSK") );
+    dvbPskBox->addItem( "32-APSK", qfu("32APSK") );
+    dvbPropLayout->addWidget( dvbPskBox, 2, 1 );
 
     dvbModLabel->hide();
-    dvbModBox->hide();
+    dvbQamBox->hide();
+    dvbPskBox->hide();
 
     dvbBandLabel = new QLabel( qtr( "Bandwidth" ) );
     dvbPropLayout->addWidget( dvbBandLabel, 2, 0 );
 
     dvbBandBox = new QComboBox;
-    /* This doesn't work since dvb-bandwidth doesn't seem to be a
-       list of Integers
-       setfillVLCConfigCombo( "dvb-bandwidth", p_intf, bdaBandBox );
-     */
-    dvbBandBox->addItem( qtr( "Auto" ), 0 );
-    dvbBandBox->addItem( qtr( "6 MHz" ), 6 );
-    dvbBandBox->addItem( qtr( "7 MHz" ), 7 );
-    dvbBandBox->addItem( qtr( "8 MHz" ), 8 );
+    setfillVLCConfigCombo( "dvb-bandwidth", p_intf, dvbBandBox );
     dvbPropLayout->addWidget( dvbBandBox, 2, 1 );
 
     dvbBandLabel->hide();
@@ -1086,22 +1027,29 @@ void CaptureOpenPanel::initialize()
 
     /* DVB CONNECTs */
     CuMRL( dvbCard, valueChanged ( int ) );
+#ifdef __linux__
+    CuMRL( dvbFE, valueChanged ( int ) );
+#endif
     CuMRL( dvbFreq, valueChanged ( int ) );
     CuMRL( dvbSrate, valueChanged ( int ) );
-    CuMRL( dvbModBox, currentIndexChanged ( int ) );
+    CuMRL( dvbQamBox, currentIndexChanged ( int ) );
+    CuMRL( dvbPskBox, currentIndexChanged ( int ) );
     CuMRL( dvbBandBox, currentIndexChanged ( int ) );
 
+    BUTTONACT( dvbc, updateButtons() );
     BUTTONACT( dvbs, updateButtons() );
+    BUTTONACT( dvbs2, updateButtons() );
     BUTTONACT( dvbt, updateButtons() );
-    BUTTONACT( dvbc, updateButtons() );
-    BUTTONACT( dvbs, updateMRL() );
-    BUTTONACT( dvbt, updateMRL() );
+    BUTTONACT( atsc, updateButtons() );
+    BUTTONACT( cqam, updateButtons() );
     BUTTONACT( dvbc, updateMRL() );
+    BUTTONACT( dvbt, updateMRL() );
+    BUTTONACT( dvbs, updateMRL() );
+    BUTTONACT( dvbs2, updateMRL() );
+    BUTTONACT( atsc, updateMRL() );
+    BUTTONACT( cqam, updateMRL() );
     }
 
-#endif
-
-
     /**********
      * Screen *
      **********/
@@ -1156,26 +1104,6 @@ void CaptureOpenPanel::updateMRL()
     switch( i_devicetype )
     {
 #ifdef WIN32
-    case BDA_DEVICE:
-        if( bdas->isChecked() ) mrl = "dvb-s://";
-        else if(  bdat->isChecked() ) mrl = "dvb-t://";
-        else if(  bdac->isChecked() ) mrl = "dvb-c://";
-        else if(  bdaa->isChecked() ) mrl = "atsc://";
-        else if(  bdaq->isChecked() ) mrl = "cqam://";
-        else return;
-        mrl += "frequency=" + QString::number( bdaFreq->value() );
-        if( bdac->isChecked() || bdat->isChecked() || bdaa->isChecked() )
-            mrl +="000";
-        fileList << mrl; mrl = "";
-
-        if( bdas->isChecked() || bdac->isChecked() )
-            mrl += " :dvb-srate=" + QString::number( bdaSrate->value() );
-        else if( bdat->isChecked() || bdaa->isChecked() )
-            mrl += " :dvb-bandwidth=" +
-                QString::number( bdaBandBox->itemData(
-                    bdaBandBox->currentIndex() ).toInt() );
-        emit methodChanged( "dvb-caching" );
-        break;
     case DSHOW_DEVICE:
         fileList << "dshow://";
         mrl+= " :dshow-vdev=" +
@@ -1218,31 +1146,41 @@ void CaptureOpenPanel::updateMRL()
         if( pvrBitr->value() )
             mrl += " :pvr-bitrate=" + QString::number( pvrBitr->value() );
         break;
-    case DVB_DEVICE:
-        mrl = "dvb://";
+#endif
+    case DTV_DEVICE:
+        if( dvbc->isChecked() ) mrl = "dvb-c://";
+        else
+        if( dvbs->isChecked() ) mrl = "dvb-s://";
+        else
+        if( dvbs2->isChecked() ) mrl = "dvb-s2://";
+        else
+        if( dvbt->isChecked() ) mrl = "dvb-t://";
+        else
+        if( atsc->isChecked() ) mrl = "atsc://";
+        else
+        if( cqam->isChecked() ) mrl = "cqam://";
+
         mrl += "frequency=" + QString::number( dvbFreq->value() );
-        if( dvbc->isChecked() || dvbt->isChecked() )
-            mrl +="000";
-        fileList << mrl; mrl= "";
 
-        mrl += " :dvb-adapter=" + QString::number( dvbCard->value() );
-        if( dvbc->isChecked() )
-        {
-            unsigned qam =
-                dvbModBox->itemData( dvbModBox->currentIndex() ).toInt();
-            if( qam != 0 )
-                mrl += " :dvb-modulation=" + QString::number( qam );
-            mrl += " :dvb-srate=" + QString::number( dvbSrate->value() );
-        }
-        else if( dvbs->isChecked() )
-            mrl += " :dvb-srate=" + QString::number( dvbSrate->value() );
-        else if( dvbt->isChecked() )
-            mrl += " :dvb-bandwidth=" +
+        if( dvbc->isChecked() || cqam->isChecked() )
+            mrl += ":modulation="
+                + dvbQamBox->itemData( dvbQamBox->currentIndex() ).toString();
+        if( dvbs2->isChecked() )
+            mrl += ":modulation="
+                + dvbPskBox->itemData( dvbPskBox->currentIndex() ).toString();
+        if( dvbc->isChecked() || dvbs->isChecked() || dvbs2->isChecked() )
+            mrl += ":srate=" + QString::number( dvbSrate->value() );
+        if( dvbt->isChecked() )
+            mrl += ":bandwidth=" +
                 QString::number( dvbBandBox->itemData(
                     dvbBandBox->currentIndex() ).toInt() );
 
-        break;
+        fileList << mrl; mrl= "";
+        mrl += " :dvb-adapter=" + QString::number( dvbCard->value() );
+#ifdef __linux__
+        mrl += " :dvb-device=" + QString::number( dvbFE->value() );
 #endif
+        break;
     case SCREEN_DEVICE:
         fileList << "screen://";
         mrl = " :screen-fps=" + QString::number( screenFPS->value(), 'f' );
@@ -1271,61 +1209,40 @@ void CaptureOpenPanel::updateButtons()
                                 ui.deviceCombo->currentIndex() ).toInt();
     switch( i_devicetype )
     {
-#ifdef WIN32
-    case BDA_DEVICE:
-        if( bdas->isChecked() || bdac->isChecked() )
-        {
-            bdaSrate->show();
-            bdaSrateLabel->show();
-            bdaBandBox->hide();
-            bdaBandLabel->hide();
-        }
-        else if( bdat->isChecked() || bdaa->isChecked() )
-        {
-            bdaSrate->hide();
-            bdaSrateLabel->hide();
-            bdaBandBox->show();
-            bdaBandLabel->show();
-        }
-        else if( bdaq->isChecked() )
-        {
-            bdaSrate->hide();
-            bdaSrateLabel->hide();
-            bdaBandBox->hide();
-            bdaBandLabel->hide();
-        }
-        break;
-#else
-    case DVB_DEVICE:
+    case DTV_DEVICE:
+        dvbSrate->hide();
+        dvbSrateLabel->hide();
+        dvbQamBox->hide();
+        dvbPskBox->hide();
+        dvbModLabel->hide();
+        dvbBandBox->hide();
+        dvbBandLabel->hide();
+
         if( dvbc->isChecked() )
         {
             dvbSrate->show();
             dvbSrateLabel->show();
-            dvbModBox->show();
+            dvbQamBox->show();
             dvbModLabel->show();
-            dvbBandBox->hide();
-            dvbBandLabel->hide();
         }
         else if( dvbs->isChecked() )
         {
             dvbSrate->show();
             dvbSrateLabel->show();
-            dvbModBox->hide();
-            dvbModLabel->hide();
-            dvbBandBox->hide();
-            dvbBandLabel->hide();
+        }
+        else if( dvbs2->isChecked() )
+        {
+            dvbSrate->show();
+            dvbSrateLabel->show();
+            dvbPskBox->show();
+            dvbModLabel->show();
         }
         else if( dvbt->isChecked() )
         {
-            dvbSrate->hide();
-            dvbSrateLabel->hide();
-            dvbModBox->hide();
-            dvbModLabel->hide();
             dvbBandBox->show();
             dvbBandLabel->show();
         }
         break;
-#endif
     case SCREEN_DEVICE:
         //ui.optionsBox->hide();
         ui.advancedButton->hide();
@@ -1431,11 +1348,7 @@ void CaptureOpenPanel::advancedDialog()
         updateMRL();
         msg_Dbg( p_intf, "%s", qtu( advMRL ) );
     }
-    for( int i = 0; i < controls.size(); i++ )
-    {
-        ConfigControl *control = controls[i];
-        delete control ;
-    }
+    qDeleteAll( controls );
     delete adv;
     module_config_free( p_config );
     module_release (p_module);