summaryrefslogtreecommitdiff
path: root/rbutil/rbutilqt/encoders.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'rbutil/rbutilqt/encoders.cpp')
-rw-r--r--rbutil/rbutilqt/encoders.cpp104
1 files changed, 48 insertions, 56 deletions
diff --git a/rbutil/rbutilqt/encoders.cpp b/rbutil/rbutilqt/encoders.cpp
index a822b932f7..6ff1185c82 100644
--- a/rbutil/rbutilqt/encoders.cpp
+++ b/rbutil/rbutilqt/encoders.cpp
@@ -18,18 +18,17 @@
18 ****************************************************************************/ 18 ****************************************************************************/
19 19
20#include "encoders.h" 20#include "encoders.h"
21#include "utils.h"
21 22
22#ifndef CONSOLE 23/*********************************************************************
23#include "encodersgui.h" 24* Encoder Base
24#include "browsedirtree.h" 25**********************************************************************/
25#else
26#include "encodersguicli.h"
27#endif
28
29
30QMap<QString,QString> EncBase::encoderList; 26QMap<QString,QString> EncBase::encoderList;
31QMap<QString,EncBase*> EncBase::encoderCache;
32 27
28EncBase::EncBase(QObject *parent): EncTtsSettingInterface(parent)
29{
30
31}
33 32
34// initialize list of encoders 33// initialize list of encoders
35void EncBase::initEncodernamesList() 34void EncBase::initEncodernamesList()
@@ -49,23 +48,17 @@ QString EncBase::getEncoderName(QString encoder)
49 48
50 49
51// get a specific encoder object 50// get a specific encoder object
52EncBase* EncBase::getEncoder(QString encoder) 51EncBase* EncBase::getEncoder(QObject* parent,QString encoder)
53{ 52{
54 // check cache
55 if(encoderCache.contains(encoder))
56 return encoderCache.value(encoder);
57
58 EncBase* enc; 53 EncBase* enc;
59 if(encoder == "lame") 54 if(encoder == "lame")
60 { 55 {
61 enc = new EncExes(encoder); 56 enc = new EncExes(encoder,parent);
62 encoderCache[encoder] = enc;
63 return enc; 57 return enc;
64 } 58 }
65 else // rbspeex is default 59 else // rbspeex is default
66 { 60 {
67 enc = new EncRbSpeex(); 61 enc = new EncRbSpeex(parent);
68 encoderCache[encoder] = enc;
69 return enc; 62 return enc;
70 } 63 }
71} 64}
@@ -80,14 +73,6 @@ QStringList EncBase::getEncoderList()
80 73
81 74
82/********************************************************************* 75/*********************************************************************
83* Encoder Base
84**********************************************************************/
85EncBase::EncBase(QObject *parent): QObject(parent)
86{
87
88}
89
90/*********************************************************************
91* GEneral Exe Encoder 76* GEneral Exe Encoder
92**********************************************************************/ 77**********************************************************************/
93EncExes::EncExes(QString name,QObject *parent) : EncBase(parent) 78EncExes::EncExes(QString name,QObject *parent) : EncBase(parent)
@@ -95,6 +80,25 @@ EncExes::EncExes(QString name,QObject *parent) : EncBase(parent)
95 m_name = name; 80 m_name = name;
96 81
97 m_TemplateMap["lame"] = "\"%exe\" %options \"%input\" \"%output\""; 82 m_TemplateMap["lame"] = "\"%exe\" %options \"%input\" \"%output\"";
83
84}
85
86
87
88void EncExes::generateSettings()
89{
90 QString exepath =settings->subValue(m_name,RbSettings::EncoderPath).toString();
91 if(exepath == "") exepath = findExecutable(m_name);
92
93 insertSetting(eEXEPATH,new EncTtsSetting(this,EncTtsSetting::eSTRING,"Path to Encoder:",exepath,EncTtsSetting::eBROWSEBTN));
94 insertSetting(eEXEOPTIONS,new EncTtsSetting(this,EncTtsSetting::eSTRING,"Encoder options:",settings->subValue(m_name,RbSettings::EncoderOptions)));
95}
96
97void EncExes::saveSettings()
98{
99 settings->setSubValue(m_name,RbSettings::EncoderPath,getSetting(eEXEPATH)->current().toString());
100 settings->setSubValue(m_name,RbSettings::EncoderOptions,getSetting(eEXEOPTIONS)->current().toString());
101 settings->sync();
98} 102}
99 103
100bool EncExes::start() 104bool EncExes::start()
@@ -130,18 +134,6 @@ bool EncExes::encode(QString input,QString output)
130} 134}
131 135
132 136
133
134void EncExes::showCfg()
135{
136#ifndef CONSOLE
137 EncExesGui gui;
138#else
139 EncExesGuiCli gui;
140#endif
141 gui.setCfg(settings);
142 gui.showCfg(m_name);
143}
144
145bool EncExes::configOk() 137bool EncExes::configOk()
146{ 138{
147 QString path = settings->subValue(m_name, RbSettings::EncoderPath).toString(); 139 QString path = settings->subValue(m_name, RbSettings::EncoderPath).toString();
@@ -152,20 +144,32 @@ bool EncExes::configOk()
152 return false; 144 return false;
153} 145}
154 146
155
156
157/********************************************************************* 147/*********************************************************************
158* RB SPEEX ENCODER 148* RB SPEEX ENCODER
159**********************************************************************/ 149**********************************************************************/
160EncRbSpeex::EncRbSpeex(QObject *parent) : EncBase(parent) 150EncRbSpeex::EncRbSpeex(QObject *parent) : EncBase(parent)
161{ 151{
162 152
163 defaultQuality = 8.f;
164 defaultVolume = 1.f;
165 defaultComplexity = 10;
166 defaultBand = false;
167} 153}
168 154
155void EncRbSpeex::generateSettings()
156{
157 insertSetting(eVOLUME,new EncTtsSetting(this,EncTtsSetting::eDOUBLE,"Volume:",settings->subValue("rbspeex",RbSettings::EncoderVolume),1.0,10.0));
158 insertSetting(eQUALITY,new EncTtsSetting(this,EncTtsSetting::eDOUBLE,"Quality:",settings->subValue("rbspeex",RbSettings::EncoderQuality),0,10.0));
159 insertSetting(eCOMPLEXITY,new EncTtsSetting(this,EncTtsSetting::eINT,"Complexity:",settings->subValue("rbspeex",RbSettings::EncoderComplexity),0,10));
160 insertSetting(eNARROWBAND,new EncTtsSetting(this,EncTtsSetting::eBOOL,"Use Narrowband:",settings->subValue("rbspeex",RbSettings::EncoderNarrowBand)));
161}
162
163void EncRbSpeex::saveSettings()
164{
165 //save settings in user config
166 settings->setSubValue("rbspeex",RbSettings::EncoderVolume,getSetting(eVOLUME)->current().toDouble());
167 settings->setSubValue("rbspeex",RbSettings::EncoderQuality,getSetting(eQUALITY)->current().toDouble());
168 settings->setSubValue("rbspeex",RbSettings::EncoderComplexity,getSetting(eCOMPLEXITY)->current().toInt());
169 settings->setSubValue("rbspeex",RbSettings::EncoderNarrowBand,getSetting(eNARROWBAND)->current().toBool());
170
171 settings->sync();
172}
169 173
170bool EncRbSpeex::start() 174bool EncRbSpeex::start()
171{ 175{
@@ -210,18 +214,6 @@ bool EncRbSpeex::encode(QString input,QString output)
210 return true; 214 return true;
211} 215}
212 216
213
214void EncRbSpeex::showCfg()
215{
216#ifndef CONSOLE
217 EncRbSpeexGui gui;
218#else
219 EncRbSpeexGuiCli gui;
220#endif
221 gui.setCfg(settings);
222 gui.showCfg(defaultQuality,defaultVolume,defaultComplexity,defaultBand);
223}
224
225bool EncRbSpeex::configOk() 217bool EncRbSpeex::configOk()
226{ 218{
227 bool result=true; 219 bool result=true;