summaryrefslogtreecommitdiff
path: root/utils/rbutilqt/base/encoderexe.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'utils/rbutilqt/base/encoderexe.cpp')
-rw-r--r--utils/rbutilqt/base/encoderexe.cpp78
1 files changed, 78 insertions, 0 deletions
diff --git a/utils/rbutilqt/base/encoderexe.cpp b/utils/rbutilqt/base/encoderexe.cpp
new file mode 100644
index 0000000000..331b5fb2a4
--- /dev/null
+++ b/utils/rbutilqt/base/encoderexe.cpp
@@ -0,0 +1,78 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 *
9 * Copyright (C) 2007 by Dominik Wenger
10 *
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.
13 *
14 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
15 * KIND, either express or implied.
16 *
17 ****************************************************************************/
18
19#include <QtCore>
20#include "encoderexe.h"
21#include "rbsettings.h"
22#include "utils.h"
23#include "Logger.h"
24
25EncoderExe::EncoderExe(QString name, QObject *parent) : EncoderBase(parent),
26 m_name(name)
27{
28}
29
30
31void EncoderExe::generateSettings()
32{
33 QString exepath = RbSettings::subValue(m_name,RbSettings::EncoderPath).toString();
34 if(exepath.isEmpty()) exepath = Utils::findExecutable(m_name);
35
36 insertSetting(eEXEPATH, new EncTtsSetting(this, EncTtsSetting::eSTRING,
37 tr("Path to Encoder:"), exepath, EncTtsSetting::eBROWSEBTN));
38 insertSetting(eEXEOPTIONS, new EncTtsSetting(this, EncTtsSetting::eSTRING,
39 tr("Encoder options:"), RbSettings::subValue(m_name, RbSettings::EncoderOptions)));
40}
41
42void EncoderExe::saveSettings()
43{
44 RbSettings::setSubValue(m_name, RbSettings::EncoderPath, getSetting(eEXEPATH)->current().toString());
45 RbSettings::setSubValue(m_name, RbSettings::EncoderOptions, getSetting(eEXEOPTIONS)->current().toString());
46 RbSettings::sync();
47}
48
49bool EncoderExe::start()
50{
51 m_EncExec = RbSettings::subValue(m_name, RbSettings::EncoderPath).toString();
52 m_EncOpts = RbSettings::subValue(m_name, RbSettings::EncoderOptions).toString();
53
54 QFileInfo enc(m_EncExec);
55 return enc.exists();
56}
57
58bool EncoderExe::encode(QString input,QString output)
59{
60 if (!configOk())
61 return false;
62
63 QStringList args;
64 args << m_EncOpts;
65 args << input;
66 args << output;
67 int result = QProcess::execute(m_EncExec, args);
68 return result == 0;
69}
70
71
72bool EncoderExe::configOk()
73{
74 QString path = RbSettings::subValue(m_name, RbSettings::EncoderPath).toString();
75
76 return QFileInfo::exists(path);
77}
78