1 /***************************************************************************
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
9 * Copyright (C) 2007 by Dominik Wenger
11 * All files in this archive are subject to the GNU General Public License.
12 * See the file COPYING in the source tree root for full license agreement.
14 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
15 * KIND, either express or implied.
17 ****************************************************************************/
20 #include "encoderexe.h"
21 #include "rbsettings.h"
24 EncoderExe::EncoderExe(QString name
,QObject
*parent
) : EncoderBase(parent
)
28 m_TemplateMap
["lame"] = "\"%exe\" %options \"%input\" \"%output\"";
34 void EncoderExe::generateSettings()
36 QString exepath
=RbSettings::subValue(m_name
,RbSettings::EncoderPath
).toString();
37 if(exepath
== "") exepath
= Utils::findExecutable(m_name
);
39 insertSetting(eEXEPATH
,new EncTtsSetting(this,EncTtsSetting::eSTRING
,
40 tr("Path to Encoder:"),exepath
,EncTtsSetting::eBROWSEBTN
));
41 insertSetting(eEXEOPTIONS
,new EncTtsSetting(this,EncTtsSetting::eSTRING
,
42 tr("Encoder options:"),RbSettings::subValue(m_name
,RbSettings::EncoderOptions
)));
45 void EncoderExe::saveSettings()
47 RbSettings::setSubValue(m_name
,RbSettings::EncoderPath
,getSetting(eEXEPATH
)->current().toString());
48 RbSettings::setSubValue(m_name
,RbSettings::EncoderOptions
,getSetting(eEXEOPTIONS
)->current().toString());
52 bool EncoderExe::start()
54 m_EncExec
= RbSettings::subValue(m_name
, RbSettings::EncoderPath
).toString();
55 m_EncOpts
= RbSettings::subValue(m_name
, RbSettings::EncoderOptions
).toString();
57 m_EncTemplate
= m_TemplateMap
.value(m_name
);
59 QFileInfo
enc(m_EncExec
);
70 bool EncoderExe::encode(QString input
,QString output
)
72 //qDebug() << "encoding..";
73 QString execstring
= m_EncTemplate
;
75 execstring
.replace("%exe",m_EncExec
);
76 execstring
.replace("%options",m_EncOpts
);
77 execstring
.replace("%input",input
);
78 execstring
.replace("%output",output
);
79 qDebug() << "[EncoderExe] cmd: " << execstring
;
80 int result
= QProcess::execute(execstring
);
81 return (result
== 0) ? true : false;
85 bool EncoderExe::configOk()
87 QString path
= RbSettings::subValue(m_name
, RbSettings::EncoderPath
).toString();
89 if (QFileInfo(path
).exists())