⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 open_panels.cpp

📁 VLC Player Source Code
💻 CPP
📖 第 1 页 / 共 3 页
字号:
    jackPropLayout->addWidget( jackPace, 2, 1 );    /* Auto Connect */    jackConnect = new QCheckBox( qtr( "Auto connnection" ));    jackPropLayout->addWidget( jackConnect, 3, 1 );    /* Jack CONNECTs */    CuMRL( jackChannels, valueChanged( int ) );    CuMRL( jackCaching, valueChanged( int ) );    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 */    QLabel *pvrDeviceLabel = new QLabel( qtr( "Device name" ) );    pvrDevLayout->addWidget( pvrDeviceLabel, 0, 0 );    pvrDevice = new QLineEdit;    pvrDevLayout->addWidget( pvrDevice, 0, 1 );    QLabel *pvrRadioDeviceLabel = new QLabel( qtr( "Radio device name" ) );    pvrDevLayout->addWidget( pvrRadioDeviceLabel, 1, 0 );    pvrRadioDevice = new QLineEdit;    pvrDevLayout->addWidget( pvrRadioDevice, 1, 1 );    /* PVR props panel */    QLabel *pvrNormLabel = new QLabel( qtr( "Norm" ) );    pvrPropLayout->addWidget( pvrNormLabel, 0, 0 );    pvrNormBox = new QComboBox;    setfillVLCConfigCombo( "pvr-norm", p_intf, pvrNormBox );    pvrPropLayout->addWidget( pvrNormBox, 0, 1 );    QLabel *pvrFreqLabel = new QLabel( qtr( "Frequency" ) );    pvrPropLayout->addWidget( pvrFreqLabel, 1, 0 );    pvrFreq = new QSpinBox;    pvrFreq->setAlignment( Qt::AlignRight );    pvrFreq->setSuffix(" kHz");    setSpinBoxFreq( pvrFreq );    pvrPropLayout->addWidget( pvrFreq, 1, 1 );    QLabel *pvrBitrLabel = new QLabel( qtr( "Bitrate" ) );    pvrPropLayout->addWidget( pvrBitrLabel, 2, 0 );    pvrBitr = new QSpinBox;    pvrBitr->setAlignment( Qt::AlignRight );    pvrBitr->setSuffix(" kHz");    setSpinBoxFreq( pvrBitr );    pvrPropLayout->addWidget( pvrBitr, 2, 1 );    pvrPropLayout->addItem( new QSpacerItem( 20, 20, QSizePolicy::Expanding ),            3, 0, 1, 1 );    /* PVR CONNECTs */    CuMRL( pvrDevice, textChanged( QString ) );    CuMRL( pvrRadioDevice, textChanged( QString ) );    CuMRL( pvrFreq, valueChanged ( int ) );    CuMRL( pvrBitr, valueChanged ( int ) );    CuMRL( pvrNormBox, currentIndexChanged ( int ) );    }    /**************     * DVB Stuffs *     **************/    if( module_Exists( p_intf, "dvb" ) ){    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() );    }#endif    /**********     * Screen *     **********/    addModuleAndLayouts( SCREEN_DEVICE, screen, "Desktop" );    QLabel *screenLabel = new QLabel( "This option will open your own "            "desktop in order to save or stream it.");    screenLabel->setWordWrap( true );    screenDevLayout->addWidget( screenLabel, 0, 0 );    QLabel *screenFPSLabel = new QLabel(            qtr( "Desired frame rate for the capture." ) );    screenPropLayout->addWidget( screenFPSLabel, 0, 0 );    screenFPS = new QSpinBox;    screenFPS->setValue( 1 );    screenFPS->setAlignment( Qt::AlignRight );    screenPropLayout->addWidget( screenFPS, 0, 1 );    /* General connects */    CONNECT( ui.deviceCombo, activated( int ) ,             stackedDevLayout, setCurrentIndex( int ) );    CONNECT( ui.deviceCombo, activated( int ),             stackedPropLayout, setCurrentIndex( int ) );    CONNECT( ui.deviceCombo, activated( int ), this, updateMRL() );    CONNECT( ui.deviceCombo, activated( int ), this, updateButtons() );#undef addModule}CaptureOpenPanel::~CaptureOpenPanel(){}void CaptureOpenPanel::clear(){    advMRL.clear();}void CaptureOpenPanel::updateMRL(){    QString mrl = "";    int i_devicetype = ui.deviceCombo->itemData(            ui.deviceCombo->currentIndex() ).toInt();    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 return;        mrl += " :dvb-frequency=" + QString("%1").arg( bdaFreq->value() );        if( bdas->isChecked() || bdac->isChecked() )            mrl += " :dvb-srate=" + QString("%1").arg( bdaSrate->value() );        else            mrl += " :dvb-bandwidth=" +                QString("%1").arg( bdaBandBox->itemData(                    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;#else    case V4L_DEVICE:        mrl = "v4l://";        mrl += " :v4l-vdev=" + v4lVideoDevice->text();        mrl += " :v4l-adev=" + v4lAudioDevice->text();        mrl += " :v4l-norm=" + QString("%1").arg( v4lNormBox->currentIndex() );        mrl += " :v4l-frequency=" + QString("%1").arg( v4lFreq->value() );        break;    case V4L2_DEVICE:        mrl = "v4l2://";        mrl += " :v4l2-dev=" + v4l2VideoDevice->text();        mrl += " :v4l2-adev=" + v4l2AudioDevice->text();        mrl += " :v4l2-standard=" + QString("%1").arg( v4l2StdBox->currentIndex() );        break;    case JACK_DEVICE:        mrl = "jack://";        mrl += "channels=" + QString("%1").arg( jackChannels->value() );        mrl += " :ports=" + jackPortsSelected->text();        mrl += " :jack-input-caching=" + QString("%1").arg( jackCaching->value() );        if ( jackPace->isChecked() )        {                mrl += " :jack-input-use-vlc-pace";        }        if ( jackConnect->isChecked() )        {                mrl += " :jack-input-auto-connect";        }        break;    case PVR_DEVICE:        mrl = "pvr://";        mrl += " :pvr-device=" + pvrDevice->text();        mrl += " :pvr-radio-device=" + pvrRadioDevice->text();        mrl += " :pvr-norm=" + QString("%1").arg( pvrNormBox->currentIndex() );        if( pvrFreq->value() )            mrl += " :pvr-frequency=" + QString("%1").arg( pvrFreq->value() );        if( pvrBitr->value() )            mrl += " :pvr-bitrate=" + QString("%1").arg( pvrBitr->value() );        break;    case DVB_DEVICE:        mrl = "dvb://";        mrl += " :dvb-adapter=" + QString("%1").arg( dvbCard->value() );        mrl += " :dvb-frequency=" + QString("%1").arg( dvbFreq->value() );        mrl += " :dvb-srate=" + QString("%1").arg( dvbSrate->value() );        break;#endif    case SCREEN_DEVICE:        mrl = "screen://";        mrl += " :screen-fps=" + QString("%1").arg( screenFPS->value() );        updateButtons();        break;    }    if( !advMRL.isEmpty() ) mrl += advMRL;    emit mrlUpdated( mrl );}/** * Update the Buttons (show/hide) for the GUI as all device type don't * use the same ui. elements. **/void CaptureOpenPanel::updateButtons(){    /*  Be sure to display the ui Elements in case they were hidden by     *  some Device Type (like Screen://) */    ui.optionsBox->show();    ui.advancedButton->show();    /* Get the current Device Number */    int i_devicetype = ui.deviceCombo->itemData(                                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        {            bdaSrate->hide();            bdaSrateLabel->hide();            bdaBandBox->show();            bdaBandLabel->show();        }        break;#else    case DVB_DEVICE:        if( dvbs->isChecked() ) dvbFreq->setSuffix(" kHz");        if( dvbc->isChecked() || dvbt->isChecked() ) dvbFreq->setSuffix(" Hz");        break;#endif    case SCREEN_DEVICE:        //ui.optionsBox->hide();        ui.advancedButton->hide();        break;    }    advMRL.clear();}void CaptureOpenPanel::advancedDialog(){    /* Get selected device type */    int i_devicetype = ui.deviceCombo->itemData(                                ui.deviceCombo->currentIndex() ).toInt();    /* Get the corresponding module */    module_t *p_module =        module_Find( VLC_OBJECT(p_intf), psz_devModule[i_devicetype] );    if( NULL == p_module ) return;    /* Init */    QList<ConfigControl *> controls;    /* Get the confsize  */    unsigned int i_confsize;    module_config_t *p_config;    p_config = module_GetConfig( p_module, &i_confsize );    /* New Adv Prop dialog */    adv = new QDialog( this );    adv->setWindowTitle( qtr( "Advanced Options" ) );    /* A main Layout with a Frame */    QVBoxLayout *mainLayout = new QVBoxLayout( adv );    QScrollArea *scroll = new QScrollArea;    mainLayout->addWidget( scroll );    QFrame *advFrame = new QFrame;    /* GridLayout inside the Frame */    QGridLayout *gLayout = new QGridLayout( advFrame );    scroll->setWidgetResizable( true );    scroll->setWidget( advFrame );    /* Create the options inside the FrameLayout */    for( int n = 0; n < i_confsize; n++ )    {        module_config_t *p_item = p_config + n;        ConfigControl *config = ConfigControl::createControl(                        VLC_OBJECT( p_intf ), p_item, advFrame, gLayout, n );        controls.append( config );    }    /* Button stuffs */    QDialogButtonBox *advButtonBox = new QDialogButtonBox( adv );    QPushButton *closeButton = new QPushButton( qtr( "OK" ) );    QPushButton *cancelButton = new QPushButton( qtr( "Cancel" ) );    CONNECT( closeButton, clicked(), adv, accept() );    CONNECT( cancelButton, clicked(), adv, reject() );    advButtonBox->addButton( closeButton, QDialogButtonBox::AcceptRole );    advButtonBox->addButton( cancelButton, QDialogButtonBox::RejectRole );    mainLayout->addWidget( advButtonBox );    /* Creation of the MRL */    if( adv->exec() )    {        QString tempMRL = "";        for( int i = 0; i < controls.size(); i++ )        {            ConfigControl *control = controls[i];            if( !control )            {                msg_Dbg( p_intf, "This shouldn't happen, please report" );                continue;            }            tempMRL += (i ? " :" : ":");            if( control->getType() == CONFIG_ITEM_BOOL )                if( !(qobject_cast<VIntConfigControl *>(control)->getValue() ) )                    tempMRL += "no-";            tempMRL += control->getName();            switch( control->getType() )            {                case CONFIG_ITEM_STRING:                case CONFIG_ITEM_FILE:                case CONFIG_ITEM_DIRECTORY:                case CONFIG_ITEM_MODULE:                    tempMRL += QString("=\"%1\"").arg( qobject_cast<VStringConfigControl *>(control)->getValue() );                    break;                case CONFIG_ITEM_INTEGER:                    tempMRL += QString("=%1").arg( qobject_cast<VIntConfigControl *>(control)->getValue() );                    break;                case CONFIG_ITEM_FLOAT:                    tempMRL += QString("=%1").arg( qobject_cast<VFloatConfigControl *>(control)->getValue() );                    break;            }        }        advMRL = tempMRL;        updateMRL();        msg_Dbg( p_intf, "%s", qtu( advMRL ) );    }    delete adv;    module_PutConfig( p_config );    module_Put( p_module );}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -