summaryrefslogtreecommitdiff
path: root/rbutil/rbutilqt/base/encoderrbspeex.cpp
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2012-01-29 15:36:30 +0100
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2012-01-29 22:55:18 +0100
commit0ae49c2719b9b2cceab33ad1c6b44873b38e71b1 (patch)
tree4d59e9752258981fd6d3c5d98a2b9ddfdc52a12a /rbutil/rbutilqt/base/encoderrbspeex.cpp
parent933a67489111ed8372f29cc213e2399465592c19 (diff)
downloadrockbox-0ae49c2719b9b2cceab33ad1c6b44873b38e71b1.tar.gz
rockbox-0ae49c2719b9b2cceab33ad1c6b44873b38e71b1.zip
Separate default quality setting for encoders.
Instead of having a global quality setting for the encoder make the encoder provide its default value by itself. Fixes the libmp3lame encoder using an unsuitable value since the range differs greatly between the encoders. Centralize reading the configuration values for rbspeex. The values are stored in member variables, so it's not necessary to read them multiple times. Change-Id: Ia26cb1fc3bb4f927d13212fe7883bdfe2571a711
Diffstat (limited to 'rbutil/rbutilqt/base/encoderrbspeex.cpp')
-rw-r--r--rbutil/rbutilqt/base/encoderrbspeex.cpp49
1 files changed, 26 insertions, 23 deletions
diff --git a/rbutil/rbutilqt/base/encoderrbspeex.cpp b/rbutil/rbutilqt/base/encoderrbspeex.cpp
index 2d57082aa6..b5b516ec87 100644
--- a/rbutil/rbutilqt/base/encoderrbspeex.cpp
+++ b/rbutil/rbutilqt/base/encoderrbspeex.cpp
@@ -28,14 +28,15 @@ EncoderRbSpeex::EncoderRbSpeex(QObject *parent) : EncoderBase(parent)
28 28
29void EncoderRbSpeex::generateSettings() 29void EncoderRbSpeex::generateSettings()
30{ 30{
31 insertSetting(eVOLUME,new EncTtsSetting(this,EncTtsSetting::eDOUBLE, 31 loadSettings();
32 tr("Volume:"),RbSettings::subValue("rbspeex",RbSettings::EncoderVolume),1.0,10.0)); 32 insertSetting(eVOLUME, new EncTtsSetting(this, EncTtsSetting::eDOUBLE,
33 insertSetting(eQUALITY,new EncTtsSetting(this,EncTtsSetting::eDOUBLE, 33 tr("Volume:"), volume, 1.0, 10.0));
34 tr("Quality:"),RbSettings::subValue("rbspeex",RbSettings::EncoderQuality),0,10.0)); 34 insertSetting(eQUALITY, new EncTtsSetting(this, EncTtsSetting::eDOUBLE,
35 insertSetting(eCOMPLEXITY,new EncTtsSetting(this,EncTtsSetting::eINT, 35 tr("Quality:"), quality, 0, 10.0));
36 tr("Complexity:"),RbSettings::subValue("rbspeex",RbSettings::EncoderComplexity),0,10)); 36 insertSetting(eCOMPLEXITY, new EncTtsSetting(this, EncTtsSetting::eINT,
37 insertSetting(eNARROWBAND,new EncTtsSetting(this,EncTtsSetting::eBOOL, 37 tr("Complexity:"), complexity, 0, 10));
38 tr("Use Narrowband:"),RbSettings::subValue("rbspeex",RbSettings::EncoderNarrowBand))); 38 insertSetting(eNARROWBAND,new EncTtsSetting(this, EncTtsSetting::eBOOL,
39 tr("Use Narrowband:"), narrowband));
39} 40}
40 41
41void EncoderRbSpeex::saveSettings() 42void EncoderRbSpeex::saveSettings()
@@ -53,16 +54,25 @@ void EncoderRbSpeex::saveSettings()
53 RbSettings::sync(); 54 RbSettings::sync();
54} 55}
55 56
56bool EncoderRbSpeex::start()
57{
58 57
58void EncoderRbSpeex::loadSettings(void)
59{
59 // try to get config from settings 60 // try to get config from settings
60 quality = RbSettings::subValue("rbspeex", RbSettings::EncoderQuality).toDouble(); 61 quality = RbSettings::subValue("rbspeex", RbSettings::EncoderQuality).toDouble();
62 if(quality < 0) {
63 quality = 8.0;
64 }
61 complexity = RbSettings::subValue("rbspeex", RbSettings::EncoderComplexity).toInt(); 65 complexity = RbSettings::subValue("rbspeex", RbSettings::EncoderComplexity).toInt();
62 volume = RbSettings::subValue("rbspeex", RbSettings::EncoderVolume).toDouble(); 66 volume = RbSettings::subValue("rbspeex", RbSettings::EncoderVolume).toDouble();
63 narrowband = RbSettings::subValue("rbspeex", RbSettings::EncoderNarrowBand).toBool(); 67 narrowband = RbSettings::subValue("rbspeex", RbSettings::EncoderNarrowBand).toBool();
68}
64 69
65 70
71bool EncoderRbSpeex::start()
72{
73
74 // make sure configuration parameters are set.
75 loadSettings();
66 return true; 76 return true;
67} 77}
68 78
@@ -98,18 +108,11 @@ bool EncoderRbSpeex::encode(QString input,QString output)
98 108
99bool EncoderRbSpeex::configOk() 109bool EncoderRbSpeex::configOk()
100{ 110{
101 bool result=true; 111 // check config. Make sure current settings are loaded.
102 // check config 112 loadSettings();
103 113 if(volume <= 0 || quality <= 0 || complexity <= 0)
104 if(RbSettings::subValue("rbspeex", RbSettings::EncoderVolume).toDouble() <= 0) 114 return false;
105 result =false; 115 else
106 116 return true;
107 if(RbSettings::subValue("rbspeex", RbSettings::EncoderQuality).toDouble() <= 0)
108 result =false;
109
110 if(RbSettings::subValue("rbspeex", RbSettings::EncoderComplexity).toInt() <= 0)
111 result =false;
112
113 return result;
114} 117}
115 118