Commit c8ab1739 authored by Rémi Duraffort's avatar Rémi Duraffort

QT4_vlm: really fix #3938.

parent f6f5286a
...@@ -199,6 +199,11 @@ QString OpenDialog::getMRL( bool b_all ) ...@@ -199,6 +199,11 @@ QString OpenDialog::getMRL( bool b_all )
: itemsMRL[0]; : itemsMRL[0];
} }
QString OpenDialog::getOptions()
{
return ui.advancedLineInput->text();
}
/* Finish the dialog and decide if you open another one after */ /* Finish the dialog and decide if you open another one after */
void OpenDialog::setMenuAction() void OpenDialog::setMenuAction()
{ {
......
...@@ -71,6 +71,7 @@ public: ...@@ -71,6 +71,7 @@ public:
void showTab( int = OPEN_FILE_TAB ); void showTab( int = OPEN_FILE_TAB );
QString getMRL( bool b = true ); QString getMRL( bool b = true );
QString getOptions();
public slots: public slots:
void selectSlots(); void selectSlots();
......
...@@ -225,23 +225,23 @@ void VLMDialog::addVLMItem() ...@@ -225,23 +225,23 @@ void VLMDialog::addVLMItem()
{ {
case QVLM_Broadcast: case QVLM_Broadcast:
typeShortName = "Bcast"; typeShortName = "Bcast";
vlmAwidget = new VLMBroadcast( name, inputText, outputText, vlmAwidget = new VLMBroadcast( name, inputText, inputOptions, outputText,
b_checked, b_looped, this ); b_checked, b_looped, this );
VLMWrapper::AddBroadcast( name, inputText, outputText, b_checked, VLMWrapper::AddBroadcast( name, inputText, inputOptions, outputText, b_checked,
b_looped ); b_looped );
break; break;
case QVLM_VOD: case QVLM_VOD:
typeShortName = "VOD"; typeShortName = "VOD";
vlmAwidget = new VLMVod( name, inputText, outputText, vlmAwidget = new VLMVod( name, inputText, inputOptions, outputText,
b_checked, ui.muxLedit->text(), this ); b_checked, ui.muxLedit->text(), this );
VLMWrapper::AddVod( name, inputText, outputText, b_checked ); VLMWrapper::AddVod( name, inputText, inputOptions, outputText, b_checked );
break; break;
case QVLM_Schedule: case QVLM_Schedule:
typeShortName = "Sched"; typeShortName = "Sched";
vlmAwidget = new VLMSchedule( name, inputText, outputText, vlmAwidget = new VLMSchedule( name, inputText, inputOptions, outputText,
schetime, schedate, repeatnum, schetime, schedate, repeatnum,
repeatdays, b_checked, this ); repeatdays, b_checked, this );
VLMWrapper::AddSchedule( name, inputText, outputText, schetime, VLMWrapper::AddSchedule( name, inputText, inputOptions, outputText, schetime,
schedate, repeatnum, repeatdays, b_checked); schedate, repeatnum, repeatdays, b_checked);
break; break;
default: default:
...@@ -310,14 +310,16 @@ void VLMDialog::mediasPopulator() ...@@ -310,14 +310,16 @@ void VLMDialog::mediasPopulator()
{ {
typeShortName = "VOD"; typeShortName = "VOD";
QString mux = qfu( (*ppp_dsc)[i]->vod.psz_mux ); QString mux = qfu( (*ppp_dsc)[i]->vod.psz_mux );
vlmAwidget = new VLMVod( mediaName, inputText, outputText, vlmAwidget = new VLMVod( mediaName, inputText, inputOptions,
(*ppp_dsc)[i]->b_enabled, mux, this ); outputText, (*ppp_dsc)[i]->b_enabled,
mux, this );
} }
else else
{ {
typeShortName = "Bcast"; typeShortName = "Bcast";
vlmAwidget = new VLMBroadcast( mediaName, inputText, outputText, vlmAwidget = new VLMBroadcast( mediaName, inputText, inputOptions,
(*ppp_dsc)[i]->b_enabled, (*ppp_dsc)[i]->broadcast.b_loop, this ); outputText, (*ppp_dsc)[i]->b_enabled,
(*ppp_dsc)[i]->broadcast.b_loop, this );
} }
/* Add an Item of the Side List */ /* Add an Item of the Side List */
ui.vlmListItem->addItem( typeShortName + " : " + mediaName ); ui.vlmListItem->addItem( typeShortName + " : " + mediaName );
...@@ -365,6 +367,7 @@ void VLMDialog::clearWidgets() ...@@ -365,6 +367,7 @@ void VLMDialog::clearWidgets()
{ {
ui.nameLedit->clear(); ui.nameLedit->clear();
ui.inputLedit->clear(); ui.inputLedit->clear();
inputOptions.clear();
ui.outputLedit->clear(); ui.outputLedit->clear();
time->setTime( QTime::currentTime() ); time->setTime( QTime::currentTime() );
date->setDate( QDate::currentDate() ); date->setDate( QDate::currentDate() );
...@@ -380,7 +383,8 @@ void VLMDialog::selectInput() ...@@ -380,7 +383,8 @@ void VLMDialog::selectInput()
{ {
OpenDialog *o = OpenDialog::getInstance( this, p_intf, false, SELECT, true ); OpenDialog *o = OpenDialog::getInstance( this, p_intf, false, SELECT, true );
o->exec(); o->exec();
ui.inputLedit->setText( o->getMRL() ); ui.inputLedit->setText( o->getMRL( false ) );
inputOptions = o->getOptions();
} }
void VLMDialog::selectOutput() void VLMDialog::selectOutput()
...@@ -466,17 +470,15 @@ void VLMDialog::saveModifications() ...@@ -466,17 +470,15 @@ void VLMDialog::saveModifications()
* VLMAWidget - Abstract class * VLMAWidget - Abstract class
********************************/ ********************************/
VLMAWidget::VLMAWidget( const QString& _name, VLMAWidget::VLMAWidget( const QString& _name, const QString& _input,
const QString& _input, const QString& _inputOptions, const QString& _output,
const QString& _output, bool _enabled, VLMDialog *_parent, int _type )
bool _enabled,
VLMDialog *_parent,
int _type )
: QGroupBox( _name, _parent ) : QGroupBox( _name, _parent )
{ {
parent = _parent; parent = _parent;
name = _name; name = _name;
input = _input; input = _input;
inputOptions = _inputOptions;
output = _output; output = _output;
b_enabled = _enabled; b_enabled = _enabled;
type = _type; type = _type;
...@@ -525,9 +527,10 @@ void VLMAWidget::toggleEnabled( bool b_enable ) ...@@ -525,9 +527,10 @@ void VLMAWidget::toggleEnabled( bool b_enable )
* VLMBroadcast * VLMBroadcast
****************/ ****************/
VLMBroadcast::VLMBroadcast( const QString& _name, const QString& _input, VLMBroadcast::VLMBroadcast( const QString& _name, const QString& _input,
const QString& _inputOptions,
const QString& _output, bool _enabled, const QString& _output, bool _enabled,
bool _looped, VLMDialog *_parent ) bool _looped, VLMDialog *_parent )
: VLMAWidget( _name, _input, _output, : VLMAWidget( _name, _input, _inputOptions, _output,
_enabled, _parent, QVLM_Broadcast ) _enabled, _parent, QVLM_Broadcast )
{ {
nameLabel->setText( qtr("Broadcast: ") + name ); nameLabel->setText( qtr("Broadcast: ") + name );
...@@ -555,7 +558,7 @@ VLMBroadcast::VLMBroadcast( const QString& _name, const QString& _input, ...@@ -555,7 +558,7 @@ VLMBroadcast::VLMBroadcast( const QString& _name, const QString& _input,
void VLMBroadcast::update() 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 ) if( b_looped )
loopButton->setIcon( QIcon( ":/buttons/playlist/repeat_all" ) ); loopButton->setIcon( QIcon( ":/buttons/playlist/repeat_all" ) );
else else
...@@ -593,10 +596,12 @@ void VLMBroadcast::stop() ...@@ -593,10 +596,12 @@ void VLMBroadcast::stop()
* VLMSchedule * VLMSchedule
****************/ ****************/
VLMSchedule::VLMSchedule( const QString& name, const QString& input, VLMSchedule::VLMSchedule( const QString& name, const QString& input,
const QString& inputOptions,
const QString& output, QDateTime _schetime, const QString& output, QDateTime _schetime,
QDateTime _schedate, int _scherepeatnumber, QDateTime _schedate, int _scherepeatnumber,
int _repeatDays, bool enabled, VLMDialog *parent ) 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 ); nameLabel->setText( qtr("Schedule: ") + name );
schetime = _schetime; schetime = _schetime;
...@@ -609,16 +614,18 @@ VLMSchedule::VLMSchedule( const QString& name, const QString& input, ...@@ -609,16 +614,18 @@ VLMSchedule::VLMSchedule( const QString& name, const QString& input,
void VLMSchedule::update() void VLMSchedule::update()
{ {
VLMWrapper::EditSchedule( name, input, output, schetime, schedate, VLMWrapper::EditSchedule( name, input, inputOptions, output, schetime, schedate,
rNumber, rDays, b_enabled); rNumber, rDays, b_enabled);
} }
/**************** /****************
* VLMVOD * 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) 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 ); nameLabel->setText( qtr("VOD: ") + name );
...@@ -632,7 +639,7 @@ VLMVod::VLMVod( const QString& name, const QString& input, const QString& output ...@@ -632,7 +639,7 @@ VLMVod::VLMVod( const QString& name, const QString& input, const QString& output
void VLMVod::update() void VLMVod::update()
{ {
muxLabel->setText( mux ); 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() ...@@ -652,18 +659,18 @@ VLMWrapper::~VLMWrapper()
} }
void VLMWrapper::AddBroadcast( const QString& name, const QString& input, void VLMWrapper::AddBroadcast( const QString& name, const QString& input,
const QString& output, const QString& inputOptions, const QString& output,
bool b_enabled, bool b_loop ) bool b_enabled, bool b_loop )
{ {
vlm_message_t *message; vlm_message_t *message;
QString command = "new \"" + name + "\" broadcast"; QString command = "new \"" + name + "\" broadcast";
vlm_ExecuteCommand( p_vlm, qtu( command ), &message ); vlm_ExecuteCommand( p_vlm, qtu( command ), &message );
vlm_MessageDelete( 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, void VLMWrapper::EditBroadcast( const QString& name, const QString& input,
const QString& output, const QString& inputOptions, const QString& output,
bool b_enabled, bool b_loop ) bool b_enabled, bool b_loop )
{ {
vlm_message_t *message; vlm_message_t *message;
...@@ -673,17 +680,16 @@ void VLMWrapper::EditBroadcast( const QString& name, const QString& input, ...@@ -673,17 +680,16 @@ void VLMWrapper::EditBroadcast( const QString& name, const QString& input,
vlm_ExecuteCommand( p_vlm, qtu( command ), &message ); vlm_ExecuteCommand( p_vlm, qtu( command ), &message );
vlm_MessageDelete( message ); vlm_MessageDelete( message );
if(!input.isEmpty()) if( !input.isEmpty() )
{ {
QStringList inputs = input.split(":", QString::SkipEmptyParts); command = "setup \"" + name + "\" input \"" + input + "\"";
command = "setup \"" + name + "\" input \"" + inputs[0].trimmed() + "\"";
vlm_ExecuteCommand( p_vlm, qtu( command ), &message ); vlm_ExecuteCommand( p_vlm, qtu( command ), &message );
vlm_MessageDelete( 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_ExecuteCommand( p_vlm, qtu( command ), &message );
vlm_MessageDelete( message ); vlm_MessageDelete( message );
} }
...@@ -743,35 +749,34 @@ void VLMWrapper::ControlBroadcast( const QString& name, int BroadcastStatus, ...@@ -743,35 +749,34 @@ void VLMWrapper::ControlBroadcast( const QString& name, int BroadcastStatus,
} }
void VLMWrapper::AddVod( const QString& name, const QString& input, void VLMWrapper::AddVod( const QString& name, const QString& input,
const QString& output, const QString& inputOptions, const QString& output,
bool b_enabled, const QString& mux ) bool b_enabled, const QString& mux )
{ {
vlm_message_t *message; vlm_message_t *message;
QString command = "new \"" + name + "\" vod"; QString command = "new \"" + name + "\" vod";
vlm_ExecuteCommand( p_vlm, qtu( command ), &message ); vlm_ExecuteCommand( p_vlm, qtu( command ), &message );
vlm_MessageDelete( 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, void VLMWrapper::EditVod( const QString& name, const QString& input,
const QString& output, const QString& inputOptions, const QString& output,
bool b_enabled, bool b_enabled,
const QString& mux ) const QString& mux )
{ {
vlm_message_t *message; vlm_message_t *message;
QString command; QString command;
if(!input.isEmpty()) if( !input.isEmpty() )
{ {
QStringList inputs = input.split(":", QString::SkipEmptyParts); command = "setup \"" + name + "\" input \"" + input + "\"";
command = "setup \"" + name + "\" input \"" + inputs[0].trimmed() + "\"";
vlm_ExecuteCommand( p_vlm, qtu( command ), &message ); vlm_ExecuteCommand( p_vlm, qtu( command ), &message );
vlm_MessageDelete( 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_ExecuteCommand( p_vlm, qtu( command ), &message );
vlm_MessageDelete( message ); vlm_MessageDelete( message );
} }
...@@ -799,8 +804,8 @@ void VLMWrapper::EditVod( const QString& name, const QString& input, ...@@ -799,8 +804,8 @@ void VLMWrapper::EditVod( const QString& name, const QString& input,
} }
void VLMWrapper::AddSchedule( const QString& name, const QString& input, void VLMWrapper::AddSchedule( const QString& name, const QString& input,
const QString& output, QDateTime _schetime, const QString& inputOptions, const QString& output,
QDateTime _schedate, QDateTime _schetime, QDateTime _schedate,
int _scherepeatnumber, int _repeatDays, int _scherepeatnumber, int _repeatDays,
bool b_enabled, const QString& mux ) bool b_enabled, const QString& mux )
{ {
...@@ -808,30 +813,29 @@ void VLMWrapper::AddSchedule( const QString& name, const QString& input, ...@@ -808,30 +813,29 @@ void VLMWrapper::AddSchedule( const QString& name, const QString& input,
QString command = "new \"" + name + "\" schedule"; QString command = "new \"" + name + "\" schedule";
vlm_ExecuteCommand( p_vlm, qtu( command ), &message ); vlm_ExecuteCommand( p_vlm, qtu( command ), &message );
vlm_MessageDelete( message ); vlm_MessageDelete( message );
EditSchedule( name, input, output, _schetime, _schedate, EditSchedule( name, input, inputOptions, output, _schetime, _schedate,
_scherepeatnumber, _repeatDays, b_enabled, mux ); _scherepeatnumber, _repeatDays, b_enabled, mux );
} }
void VLMWrapper::EditSchedule( const QString& name, const QString& input, void VLMWrapper::EditSchedule( const QString& name, const QString& input,
const QString& output, QDateTime _schetime, const QString& inputOptions, const QString& output,
QDateTime _schedate, int _scherepeatnumber, QDateTime _schetime, QDateTime _schedate,
int _repeatDays, bool b_enabled, int _scherepeatnumber, int _repeatDays,
const QString& mux ) bool b_enabled, const QString& mux )
{ {
vlm_message_t *message; vlm_message_t *message;
QString command; QString command;
if(!input.isEmpty()) if( !input.isEmpty() )
{ {
QStringList inputs = input.split(":", QString::SkipEmptyParts); command = "setup \"" + name + "\" input \"" + input + "\"";
command = "setup \"" + name + "\" input \"" + inputs[0].trimmed() + "\"";
vlm_ExecuteCommand( p_vlm, qtu( command ), &message ); vlm_ExecuteCommand( p_vlm, qtu( command ), &message );
vlm_MessageDelete( 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_ExecuteCommand( p_vlm, qtu( command ), &message );
vlm_MessageDelete( message ); vlm_MessageDelete( message );
} }
......
...@@ -83,6 +83,8 @@ private: ...@@ -83,6 +83,8 @@ private:
Ui::Vlm ui; Ui::Vlm ui;
QString inputOptions;
QList<VLMAWidget *> vlmItems; QList<VLMAWidget *> vlmItems;
int currentIndex; int currentIndex;
...@@ -117,24 +119,28 @@ public: ...@@ -117,24 +119,28 @@ public:
VLMWrapper( vlm_t * ); VLMWrapper( vlm_t * );
virtual ~VLMWrapper(); virtual ~VLMWrapper();
static void AddBroadcast( const QString&, const QString&, const QString&, static void AddBroadcast( const QString&, const QString&,
bool b_enabled = true, const QString&, const QString&,
bool b_loop = false ); bool b_enabled = true, bool b_loop = false );
static void EditBroadcast( const QString&, const QString&, const QString&, static void EditBroadcast( const QString&, const QString&,
bool b_enabled = true, const QString&, const QString&,
bool b_loop = false ); bool b_enabled = true, bool b_loop = false );
static void EditSchedule( const QString&, const QString&, const QString&, static void EditSchedule( const QString&, const QString&,
QDateTime _schetime, QDateTime _schedate, const QString&, const QString&,
int _scherepeatnumber, int _repeatDays, QDateTime _schetime, QDateTime _schedate,
bool b_enabled = true, const QString& mux = "" ); int _scherepeatnumber, int _repeatDays,
static void AddVod( const QString&, const QString&, const QString&, bool b_enabled = true, const QString& mux = "" );
bool b_enabled = true, const QString& mux = "" ); static void AddVod( const QString&, const QString&,
static void EditVod( const QString&, const QString&, const QString&, const QString&, const QString&,
bool b_enabled = true, const QString& mux = "" ); bool b_enabled = true, const QString& mux = "" );
static void AddSchedule( const QString&, const QString&, const QString&, static void EditVod( const QString&, const QString&,
QDateTime _schetime, QDateTime _schedate, const QString&, const QString&,
int _scherepeatnumber, int _repeatDays, bool b_enabled = true, const QString& mux = "" );
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 ControlBroadcast( const QString&, int, unsigned int seek = 0 );
static void EnableItem( const QString&, bool ); static void EnableItem( const QString&, bool );
...@@ -153,13 +159,15 @@ class VLMAWidget : public QGroupBox ...@@ -153,13 +159,15 @@ class VLMAWidget : public QGroupBox
Q_OBJECT Q_OBJECT
friend class VLMDialog; friend class VLMDialog;
public: public:
VLMAWidget( const QString& name, const QString& input, const QString& output, VLMAWidget( const QString& name, const QString& input,
bool _enable, VLMDialog *parent, int _type = QVLM_Broadcast ); const QString& inputOptions, const QString& output,
bool _enable, VLMDialog *parent, int _type = QVLM_Broadcast );
virtual void update() = 0; virtual void update() = 0;
protected: protected:
QLabel *nameLabel; QLabel *nameLabel;
QString name; QString name;
QString input; QString input;
QString inputOptions;
QString output; QString output;
bool b_enabled; bool b_enabled;
int type; int type;
...@@ -176,8 +184,9 @@ class VLMBroadcast : public VLMAWidget ...@@ -176,8 +184,9 @@ class VLMBroadcast : public VLMAWidget
Q_OBJECT Q_OBJECT
friend class VLMDialog; friend class VLMDialog;
public: public:
VLMBroadcast( const QString& name, const QString& input, const QString& output, VLMBroadcast( const QString& name, const QString& input,
bool _enable, bool _loop, VLMDialog *parent ); const QString& inputOptions, const QString& output,
bool _enable, bool _loop, VLMDialog *parent );
void update(); void update();
private: private:
bool b_looped; bool b_looped;
...@@ -194,7 +203,8 @@ class VLMVod : public VLMAWidget ...@@ -194,7 +203,8 @@ class VLMVod : public VLMAWidget
Q_OBJECT Q_OBJECT
friend class VLMDialog; friend class VLMDialog;
public: 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 ); bool _enable, const QString& _mux, VLMDialog *parent );
void update(); void update();
private: private:
...@@ -207,9 +217,10 @@ class VLMSchedule : public VLMAWidget ...@@ -207,9 +217,10 @@ class VLMSchedule : public VLMAWidget
Q_OBJECT Q_OBJECT
friend class VLMDialog; friend class VLMDialog;
public: public:
VLMSchedule( const QString& name, const QString& input, const QString& output, VLMSchedule( const QString& name, const QString& input,
QDateTime schetime, QDateTime schedate, int repeatnumber, const QString& inputOptions, const QString& output,
int repeatdays, bool enabled, VLMDialog *parent ); QDateTime schetime, QDateTime schedate, int repeatnumber,
int repeatdays, bool enabled, VLMDialog *parent );
void update(); void update();
private: private:
QDateTime schetime; QDateTime schetime;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment