diff options
Diffstat (limited to 'rbutil/rbutilqt/encoders.cpp')
-rw-r--r-- | rbutil/rbutilqt/encoders.cpp | 104 |
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 | |||
30 | QMap<QString,QString> EncBase::encoderList; | 26 | QMap<QString,QString> EncBase::encoderList; |
31 | QMap<QString,EncBase*> EncBase::encoderCache; | ||
32 | 27 | ||
28 | EncBase::EncBase(QObject *parent): EncTtsSettingInterface(parent) | ||
29 | { | ||
30 | |||
31 | } | ||
33 | 32 | ||
34 | // initialize list of encoders | 33 | // initialize list of encoders |
35 | void EncBase::initEncodernamesList() | 34 | void 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 |
52 | EncBase* EncBase::getEncoder(QString encoder) | 51 | EncBase* 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 | **********************************************************************/ | ||
85 | EncBase::EncBase(QObject *parent): QObject(parent) | ||
86 | { | ||
87 | |||
88 | } | ||
89 | |||
90 | /********************************************************************* | ||
91 | * GEneral Exe Encoder | 76 | * GEneral Exe Encoder |
92 | **********************************************************************/ | 77 | **********************************************************************/ |
93 | EncExes::EncExes(QString name,QObject *parent) : EncBase(parent) | 78 | EncExes::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 | |||
88 | void 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 | |||
97 | void 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 | ||
100 | bool EncExes::start() | 104 | bool EncExes::start() |
@@ -130,18 +134,6 @@ bool EncExes::encode(QString input,QString output) | |||
130 | } | 134 | } |
131 | 135 | ||
132 | 136 | ||
133 | |||
134 | void 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 | |||
145 | bool EncExes::configOk() | 137 | bool 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 | **********************************************************************/ |
160 | EncRbSpeex::EncRbSpeex(QObject *parent) : EncBase(parent) | 150 | EncRbSpeex::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 | ||
155 | void 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 | |||
163 | void 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 | ||
170 | bool EncRbSpeex::start() | 174 | bool 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 | |||
214 | void 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 | |||
225 | bool EncRbSpeex::configOk() | 217 | bool EncRbSpeex::configOk() |
226 | { | 218 | { |
227 | bool result=true; | 219 | bool result=true; |