diff options
author | Dominik Wenger <domonoky@googlemail.com> | 2009-04-29 21:27:01 +0000 |
---|---|---|
committer | Dominik Wenger <domonoky@googlemail.com> | 2009-04-29 21:27:01 +0000 |
commit | 5b85ef6006ae8e88694c62806f7f178eab4d3ba9 (patch) | |
tree | 19555e6dd782823b5329e871d6d8bea5bca7980d /rbutil/rbutilqt/encoders.cpp | |
parent | 3d2e42ab4cc6306db4036983badea0c92750210b (diff) | |
download | rockbox-5b85ef6006ae8e88694c62806f7f178eab4d3ba9.tar.gz rockbox-5b85ef6006ae8e88694c62806f7f178eab4d3ba9.zip |
rbutil: completely rework how tts and encoders are configured. (FS#10070)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20824 a1c6a512-1295-4272-9138-f99709370657
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 @@ ****************************************************************************/ #include "encoders.h" +#include "utils.h" -#ifndef CONSOLE -#include "encodersgui.h" -#include "browsedirtree.h" -#else -#include "encodersguicli.h" -#endif - - +/********************************************************************* +* Encoder Base +**********************************************************************/ QMap<QString,QString> EncBase::encoderList; -QMap<QString,EncBase*> EncBase::encoderCache; +EncBase::EncBase(QObject *parent): EncTtsSettingInterface(parent) +{ + +} // initialize list of encoders void EncBase::initEncodernamesList() @@ -49,23 +48,17 @@ QString EncBase::getEncoderName(QString encoder) // get a specific encoder object -EncBase* EncBase::getEncoder(QString encoder) +EncBase* EncBase::getEncoder(QObject* parent,QString encoder) { - // check cache - if(encoderCache.contains(encoder)) - return encoderCache.value(encoder); - EncBase* enc; if(encoder == "lame") { - enc = new EncExes(encoder); - encoderCache[encoder] = enc; + enc = new EncExes(encoder,parent); return enc; } else // rbspeex is default { - enc = new EncRbSpeex(); - encoderCache[encoder] = enc; + enc = new EncRbSpeex(parent); return enc; } } @@ -80,14 +73,6 @@ QStringList EncBase::getEncoderList() /********************************************************************* -* Encoder Base -**********************************************************************/ -EncBase::EncBase(QObject *parent): QObject(parent) -{ - -} - -/********************************************************************* * GEneral Exe Encoder **********************************************************************/ EncExes::EncExes(QString name,QObject *parent) : EncBase(parent) @@ -95,6 +80,25 @@ EncExes::EncExes(QString name,QObject *parent) : EncBase(parent) m_name = name; m_TemplateMap["lame"] = "\"%exe\" %options \"%input\" \"%output\""; + +} + + + +void EncExes::generateSettings() +{ + QString exepath =settings->subValue(m_name,RbSettings::EncoderPath).toString(); + if(exepath == "") exepath = findExecutable(m_name); + + insertSetting(eEXEPATH,new EncTtsSetting(this,EncTtsSetting::eSTRING,"Path to Encoder:",exepath,EncTtsSetting::eBROWSEBTN)); + insertSetting(eEXEOPTIONS,new EncTtsSetting(this,EncTtsSetting::eSTRING,"Encoder options:",settings->subValue(m_name,RbSettings::EncoderOptions))); +} + +void EncExes::saveSettings() +{ + settings->setSubValue(m_name,RbSettings::EncoderPath,getSetting(eEXEPATH)->current().toString()); + settings->setSubValue(m_name,RbSettings::EncoderOptions,getSetting(eEXEOPTIONS)->current().toString()); + settings->sync(); } bool EncExes::start() @@ -130,18 +134,6 @@ bool EncExes::encode(QString input,QString output) } - -void EncExes::showCfg() -{ -#ifndef CONSOLE - EncExesGui gui; -#else - EncExesGuiCli gui; -#endif - gui.setCfg(settings); - gui.showCfg(m_name); -} - bool EncExes::configOk() { QString path = settings->subValue(m_name, RbSettings::EncoderPath).toString(); @@ -152,20 +144,32 @@ bool EncExes::configOk() return false; } - - /********************************************************************* * RB SPEEX ENCODER **********************************************************************/ EncRbSpeex::EncRbSpeex(QObject *parent) : EncBase(parent) { - defaultQuality = 8.f; - defaultVolume = 1.f; - defaultComplexity = 10; - defaultBand = false; } +void EncRbSpeex::generateSettings() +{ + insertSetting(eVOLUME,new EncTtsSetting(this,EncTtsSetting::eDOUBLE,"Volume:",settings->subValue("rbspeex",RbSettings::EncoderVolume),1.0,10.0)); + insertSetting(eQUALITY,new EncTtsSetting(this,EncTtsSetting::eDOUBLE,"Quality:",settings->subValue("rbspeex",RbSettings::EncoderQuality),0,10.0)); + insertSetting(eCOMPLEXITY,new EncTtsSetting(this,EncTtsSetting::eINT,"Complexity:",settings->subValue("rbspeex",RbSettings::EncoderComplexity),0,10)); + insertSetting(eNARROWBAND,new EncTtsSetting(this,EncTtsSetting::eBOOL,"Use Narrowband:",settings->subValue("rbspeex",RbSettings::EncoderNarrowBand))); +} + +void EncRbSpeex::saveSettings() +{ + //save settings in user config + settings->setSubValue("rbspeex",RbSettings::EncoderVolume,getSetting(eVOLUME)->current().toDouble()); + settings->setSubValue("rbspeex",RbSettings::EncoderQuality,getSetting(eQUALITY)->current().toDouble()); + settings->setSubValue("rbspeex",RbSettings::EncoderComplexity,getSetting(eCOMPLEXITY)->current().toInt()); + settings->setSubValue("rbspeex",RbSettings::EncoderNarrowBand,getSetting(eNARROWBAND)->current().toBool()); + + settings->sync(); +} bool EncRbSpeex::start() { @@ -210,18 +214,6 @@ bool EncRbSpeex::encode(QString input,QString output) return true; } - -void EncRbSpeex::showCfg() -{ -#ifndef CONSOLE - EncRbSpeexGui gui; -#else - EncRbSpeexGuiCli gui; -#endif - gui.setCfg(settings); - gui.showCfg(defaultQuality,defaultVolume,defaultComplexity,defaultBand); -} - bool EncRbSpeex::configOk() { bool result=true; |