From: RĂ©mi Duraffort Date: Tue, 27 Jul 2010 19:29:07 +0000 (+0200) Subject: QT4_vlm: really fix #3938. X-Git-Tag: 1.2.0-pre1~5643 X-Git-Url: https://git.sesse.net/?p=vlc;a=commitdiff_plain;h=c8ab1739f952be53c7dfe9e96eaf309f69cafecf QT4_vlm: really fix #3938. --- diff --git a/modules/gui/qt4/dialogs/open.cpp b/modules/gui/qt4/dialogs/open.cpp index d755fddc12..29aa55d12a 100644 --- a/modules/gui/qt4/dialogs/open.cpp +++ b/modules/gui/qt4/dialogs/open.cpp @@ -199,6 +199,11 @@ QString OpenDialog::getMRL( bool b_all ) : itemsMRL[0]; } +QString OpenDialog::getOptions() +{ + return ui.advancedLineInput->text(); +} + /* Finish the dialog and decide if you open another one after */ void OpenDialog::setMenuAction() { diff --git a/modules/gui/qt4/dialogs/open.hpp b/modules/gui/qt4/dialogs/open.hpp index db2efbb67f..47deea615c 100644 --- a/modules/gui/qt4/dialogs/open.hpp +++ b/modules/gui/qt4/dialogs/open.hpp @@ -71,6 +71,7 @@ public: void showTab( int = OPEN_FILE_TAB ); QString getMRL( bool b = true ); + QString getOptions(); public slots: void selectSlots(); diff --git a/modules/gui/qt4/dialogs/vlm.cpp b/modules/gui/qt4/dialogs/vlm.cpp index af8adea71e..9ee9467511 100644 --- a/modules/gui/qt4/dialogs/vlm.cpp +++ b/modules/gui/qt4/dialogs/vlm.cpp @@ -225,23 +225,23 @@ void VLMDialog::addVLMItem() { case QVLM_Broadcast: typeShortName = "Bcast"; - vlmAwidget = new VLMBroadcast( name, inputText, outputText, + vlmAwidget = new VLMBroadcast( name, inputText, inputOptions, outputText, b_checked, b_looped, this ); - VLMWrapper::AddBroadcast( name, inputText, outputText, b_checked, + VLMWrapper::AddBroadcast( name, inputText, inputOptions, outputText, b_checked, b_looped ); break; case QVLM_VOD: typeShortName = "VOD"; - vlmAwidget = new VLMVod( name, inputText, outputText, + vlmAwidget = new VLMVod( name, inputText, inputOptions, outputText, b_checked, ui.muxLedit->text(), this ); - VLMWrapper::AddVod( name, inputText, outputText, b_checked ); + VLMWrapper::AddVod( name, inputText, inputOptions, outputText, b_checked ); break; case QVLM_Schedule: typeShortName = "Sched"; - vlmAwidget = new VLMSchedule( name, inputText, outputText, + vlmAwidget = new VLMSchedule( name, inputText, inputOptions, outputText, schetime, schedate, repeatnum, repeatdays, b_checked, this ); - VLMWrapper::AddSchedule( name, inputText, outputText, schetime, + VLMWrapper::AddSchedule( name, inputText, inputOptions, outputText, schetime, schedate, repeatnum, repeatdays, b_checked); break; default: @@ -310,14 +310,16 @@ void VLMDialog::mediasPopulator() { typeShortName = "VOD"; QString mux = qfu( (*ppp_dsc)[i]->vod.psz_mux ); - vlmAwidget = new VLMVod( mediaName, inputText, outputText, - (*ppp_dsc)[i]->b_enabled, mux, this ); + vlmAwidget = new VLMVod( mediaName, inputText, inputOptions, + outputText, (*ppp_dsc)[i]->b_enabled, + mux, this ); } else { typeShortName = "Bcast"; - vlmAwidget = new VLMBroadcast( mediaName, inputText, outputText, - (*ppp_dsc)[i]->b_enabled, (*ppp_dsc)[i]->broadcast.b_loop, this ); + vlmAwidget = new VLMBroadcast( mediaName, inputText, inputOptions, + outputText, (*ppp_dsc)[i]->b_enabled, + (*ppp_dsc)[i]->broadcast.b_loop, this ); } /* Add an Item of the Side List */ ui.vlmListItem->addItem( typeShortName + " : " + mediaName ); @@ -365,6 +367,7 @@ void VLMDialog::clearWidgets() { ui.nameLedit->clear(); ui.inputLedit->clear(); + inputOptions.clear(); ui.outputLedit->clear(); time->setTime( QTime::currentTime() ); date->setDate( QDate::currentDate() ); @@ -380,7 +383,8 @@ void VLMDialog::selectInput() { OpenDialog *o = OpenDialog::getInstance( this, p_intf, false, SELECT, true ); o->exec(); - ui.inputLedit->setText( o->getMRL() ); + ui.inputLedit->setText( o->getMRL( false ) ); + inputOptions = o->getOptions(); } void VLMDialog::selectOutput() @@ -466,17 +470,15 @@ void VLMDialog::saveModifications() * VLMAWidget - Abstract class ********************************/ -VLMAWidget::VLMAWidget( const QString& _name, - const QString& _input, - const QString& _output, - bool _enabled, - VLMDialog *_parent, - int _type ) +VLMAWidget::VLMAWidget( const QString& _name, const QString& _input, + const QString& _inputOptions, const QString& _output, + bool _enabled, VLMDialog *_parent, int _type ) : QGroupBox( _name, _parent ) { parent = _parent; name = _name; input = _input; + inputOptions = _inputOptions; output = _output; b_enabled = _enabled; type = _type; @@ -525,9 +527,10 @@ void VLMAWidget::toggleEnabled( bool b_enable ) * VLMBroadcast ****************/ VLMBroadcast::VLMBroadcast( const QString& _name, const QString& _input, + const QString& _inputOptions, const QString& _output, bool _enabled, bool _looped, VLMDialog *_parent ) - : VLMAWidget( _name, _input, _output, + : VLMAWidget( _name, _input, _inputOptions, _output, _enabled, _parent, QVLM_Broadcast ) { nameLabel->setText( qtr("Broadcast: ") + name ); @@ -555,7 +558,7 @@ VLMBroadcast::VLMBroadcast( const QString& _name, const QString& _input, void VLMBroadcast::update() { - VLMWrapper::EditBroadcast( name, input, output, b_enabled, b_looped ); + VLMWrapper::EditBroadcast( name, input, inputOptions, output, b_enabled, b_looped ); if( b_looped ) loopButton->setIcon( QIcon( ":/buttons/playlist/repeat_all" ) ); else @@ -593,10 +596,12 @@ void VLMBroadcast::stop() * VLMSchedule ****************/ VLMSchedule::VLMSchedule( const QString& name, const QString& input, + const QString& inputOptions, const QString& output, QDateTime _schetime, QDateTime _schedate, int _scherepeatnumber, int _repeatDays, bool enabled, VLMDialog *parent ) - : VLMAWidget( name, input, output, enabled, parent, QVLM_Schedule ) + : VLMAWidget( name, input, inputOptions, output, enabled, parent, + QVLM_Schedule ) { nameLabel->setText( qtr("Schedule: ") + name ); schetime = _schetime; @@ -609,16 +614,18 @@ VLMSchedule::VLMSchedule( const QString& name, const QString& input, void VLMSchedule::update() { - VLMWrapper::EditSchedule( name, input, output, schetime, schedate, + VLMWrapper::EditSchedule( name, input, inputOptions, output, schetime, schedate, rNumber, rDays, b_enabled); } /**************** * VLMVOD ****************/ -VLMVod::VLMVod( const QString& name, const QString& input, const QString& output, +VLMVod::VLMVod( const QString& name, const QString& input, + const QString& inputOptions, const QString& output, bool enabled, const QString& _mux, VLMDialog *parent) - : VLMAWidget( name, input, output, enabled, parent, QVLM_VOD ) + : VLMAWidget( name, input, inputOptions, output, enabled, parent, + QVLM_VOD ) { nameLabel->setText( qtr("VOD: ") + name ); @@ -632,7 +639,7 @@ VLMVod::VLMVod( const QString& name, const QString& input, const QString& output void VLMVod::update() { muxLabel->setText( mux ); - VLMWrapper::EditVod( name, input, output, b_enabled, mux ); + VLMWrapper::EditVod( name, input, inputOptions, output, b_enabled, mux ); } @@ -652,18 +659,18 @@ VLMWrapper::~VLMWrapper() } void VLMWrapper::AddBroadcast( const QString& name, const QString& input, - const QString& output, + const QString& inputOptions, const QString& output, bool b_enabled, bool b_loop ) { vlm_message_t *message; QString command = "new \"" + name + "\" broadcast"; vlm_ExecuteCommand( p_vlm, qtu( command ), &message ); vlm_MessageDelete( message ); - EditBroadcast( name, input, output, b_enabled, b_loop ); + EditBroadcast( name, input, inputOptions, output, b_enabled, b_loop ); } void VLMWrapper::EditBroadcast( const QString& name, const QString& input, - const QString& output, + const QString& inputOptions, const QString& output, bool b_enabled, bool b_loop ) { vlm_message_t *message; @@ -673,17 +680,16 @@ void VLMWrapper::EditBroadcast( const QString& name, const QString& input, vlm_ExecuteCommand( p_vlm, qtu( command ), &message ); vlm_MessageDelete( message ); - if(!input.isEmpty()) + if( !input.isEmpty() ) { - QStringList inputs = input.split(":", QString::SkipEmptyParts); - - command = "setup \"" + name + "\" input \"" + inputs[0].trimmed() + "\""; + command = "setup \"" + name + "\" input \"" + input + "\""; vlm_ExecuteCommand( p_vlm, qtu( command ), &message ); vlm_MessageDelete( message ); - for( int i = 1; i < inputs.size(); i++ ) + QStringList options = inputOptions.split( " :", QString::SkipEmptyParts ); + for( int i = 0; i < options.size(); i++ ) { - command = "setup \"" + name + "\" option \"" + inputs[i].trimmed() + "\""; + command = "setup \"" + name + "\" option \"" + options[i].trimmed() + "\""; vlm_ExecuteCommand( p_vlm, qtu( command ), &message ); vlm_MessageDelete( message ); } @@ -743,35 +749,34 @@ void VLMWrapper::ControlBroadcast( const QString& name, int BroadcastStatus, } void VLMWrapper::AddVod( const QString& name, const QString& input, - const QString& output, + const QString& inputOptions, const QString& output, bool b_enabled, const QString& mux ) { vlm_message_t *message; QString command = "new \"" + name + "\" vod"; vlm_ExecuteCommand( p_vlm, qtu( command ), &message ); vlm_MessageDelete( message ); - EditVod( name, input, output, b_enabled, mux ); + EditVod( name, input, inputOptions, output, b_enabled, mux ); } void VLMWrapper::EditVod( const QString& name, const QString& input, - const QString& output, + const QString& inputOptions, const QString& output, bool b_enabled, const QString& mux ) { vlm_message_t *message; QString command; - if(!input.isEmpty()) + if( !input.isEmpty() ) { - QStringList inputs = input.split(":", QString::SkipEmptyParts); - - command = "setup \"" + name + "\" input \"" + inputs[0].trimmed() + "\""; + command = "setup \"" + name + "\" input \"" + input + "\""; vlm_ExecuteCommand( p_vlm, qtu( command ), &message ); vlm_MessageDelete( message ); - for( int i = 1; i < inputs.size(); i++ ) + QStringList options = inputOptions.split( " :", QString::SkipEmptyParts ); + for( int i = 0; i < options.size(); i++ ) { - command = "setup \"" + name + "\" option \"" + inputs[i].trimmed() + "\""; + command = "setup \"" + name + "\" option \"" + options[i].trimmed() + "\""; vlm_ExecuteCommand( p_vlm, qtu( command ), &message ); vlm_MessageDelete( message ); } @@ -799,8 +804,8 @@ void VLMWrapper::EditVod( const QString& name, const QString& input, } void VLMWrapper::AddSchedule( const QString& name, const QString& input, - const QString& output, QDateTime _schetime, - QDateTime _schedate, + const QString& inputOptions, const QString& output, + QDateTime _schetime, QDateTime _schedate, int _scherepeatnumber, int _repeatDays, bool b_enabled, const QString& mux ) { @@ -808,30 +813,29 @@ void VLMWrapper::AddSchedule( const QString& name, const QString& input, QString command = "new \"" + name + "\" schedule"; vlm_ExecuteCommand( p_vlm, qtu( command ), &message ); vlm_MessageDelete( message ); - EditSchedule( name, input, output, _schetime, _schedate, + EditSchedule( name, input, inputOptions, output, _schetime, _schedate, _scherepeatnumber, _repeatDays, b_enabled, mux ); } void VLMWrapper::EditSchedule( const QString& name, const QString& input, - const QString& output, QDateTime _schetime, - QDateTime _schedate, int _scherepeatnumber, - int _repeatDays, bool b_enabled, - const QString& mux ) + const QString& inputOptions, const QString& output, + QDateTime _schetime, QDateTime _schedate, + int _scherepeatnumber, int _repeatDays, + bool b_enabled, const QString& mux ) { vlm_message_t *message; QString command; - if(!input.isEmpty()) + if( !input.isEmpty() ) { - QStringList inputs = input.split(":", QString::SkipEmptyParts); - - command = "setup \"" + name + "\" input \"" + inputs[0].trimmed() + "\""; + command = "setup \"" + name + "\" input \"" + input + "\""; vlm_ExecuteCommand( p_vlm, qtu( command ), &message ); vlm_MessageDelete( message ); - for( int i = 1; i < inputs.size(); i++ ) + QStringList options = inputOptions.split( " :", QString::SkipEmptyParts ); + for( int i = 0; i < options.size(); i++ ) { - command = "setup \"" + name + "\" option \"" + inputs[i].trimmed() + "\""; + command = "setup \"" + name + "\" option \"" + options[i].trimmed() + "\""; vlm_ExecuteCommand( p_vlm, qtu( command ), &message ); vlm_MessageDelete( message ); } diff --git a/modules/gui/qt4/dialogs/vlm.hpp b/modules/gui/qt4/dialogs/vlm.hpp index bcb89dc53e..6feee5893d 100644 --- a/modules/gui/qt4/dialogs/vlm.hpp +++ b/modules/gui/qt4/dialogs/vlm.hpp @@ -83,6 +83,8 @@ private: Ui::Vlm ui; + QString inputOptions; + QList vlmItems; int currentIndex; @@ -117,24 +119,28 @@ public: VLMWrapper( vlm_t * ); virtual ~VLMWrapper(); - static void AddBroadcast( const QString&, const QString&, const QString&, - bool b_enabled = true, - bool b_loop = false ); - static void EditBroadcast( const QString&, const QString&, const QString&, - bool b_enabled = true, - bool b_loop = false ); - static void EditSchedule( const QString&, const QString&, const QString&, - QDateTime _schetime, QDateTime _schedate, - int _scherepeatnumber, int _repeatDays, - bool b_enabled = true, const QString& mux = "" ); - static void AddVod( const QString&, const QString&, const QString&, - bool b_enabled = true, const QString& mux = "" ); - static void EditVod( const QString&, const QString&, const QString&, - bool b_enabled = true, const QString& mux = "" ); - static void AddSchedule( const QString&, const QString&, const QString&, - QDateTime _schetime, QDateTime _schedate, - int _scherepeatnumber, int _repeatDays, - bool b_enabled = true, const QString& mux = "" ); + static void AddBroadcast( const QString&, const QString&, + const QString&, const QString&, + bool b_enabled = true, bool b_loop = false ); + static void EditBroadcast( const QString&, const QString&, + const QString&, const QString&, + bool b_enabled = true, bool b_loop = false ); + static void EditSchedule( const QString&, const QString&, + const QString&, const QString&, + QDateTime _schetime, QDateTime _schedate, + int _scherepeatnumber, int _repeatDays, + bool b_enabled = true, const QString& mux = "" ); + static void AddVod( const QString&, const QString&, + const QString&, const QString&, + bool b_enabled = true, const QString& mux = "" ); + static void EditVod( const QString&, const QString&, + const QString&, const QString&, + bool b_enabled = true, const QString& mux = "" ); + static void AddSchedule( const QString&, const QString&, + const QString&, const QString&, + QDateTime _schetime, QDateTime _schedate, + int _scherepeatnumber, int _repeatDays, + bool b_enabled = true, const QString& mux = "" ); static void ControlBroadcast( const QString&, int, unsigned int seek = 0 ); static void EnableItem( const QString&, bool ); @@ -153,13 +159,15 @@ class VLMAWidget : public QGroupBox Q_OBJECT friend class VLMDialog; public: - VLMAWidget( const QString& name, const QString& input, const QString& output, - bool _enable, VLMDialog *parent, int _type = QVLM_Broadcast ); + VLMAWidget( const QString& name, const QString& input, + const QString& inputOptions, const QString& output, + bool _enable, VLMDialog *parent, int _type = QVLM_Broadcast ); virtual void update() = 0; protected: QLabel *nameLabel; QString name; QString input; + QString inputOptions; QString output; bool b_enabled; int type; @@ -176,8 +184,9 @@ class VLMBroadcast : public VLMAWidget Q_OBJECT friend class VLMDialog; public: - VLMBroadcast( const QString& name, const QString& input, const QString& output, - bool _enable, bool _loop, VLMDialog *parent ); + VLMBroadcast( const QString& name, const QString& input, + const QString& inputOptions, const QString& output, + bool _enable, bool _loop, VLMDialog *parent ); void update(); private: bool b_looped; @@ -194,7 +203,8 @@ class VLMVod : public VLMAWidget Q_OBJECT friend class VLMDialog; public: - VLMVod( const QString& name, const QString& input, const QString& output, + VLMVod( const QString& name, const QString& input, + const QString& inputOptions, const QString& output, bool _enable, const QString& _mux, VLMDialog *parent ); void update(); private: @@ -207,9 +217,10 @@ class VLMSchedule : public VLMAWidget Q_OBJECT friend class VLMDialog; public: - VLMSchedule( const QString& name, const QString& input, const QString& output, - QDateTime schetime, QDateTime schedate, int repeatnumber, - int repeatdays, bool enabled, VLMDialog *parent ); + VLMSchedule( const QString& name, const QString& input, + const QString& inputOptions, const QString& output, + QDateTime schetime, QDateTime schedate, int repeatnumber, + int repeatdays, bool enabled, VLMDialog *parent ); void update(); private: QDateTime schetime;