summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rbutil/rbutilqt/base/encoderlame.cpp28
-rw-r--r--rbutil/rbutilqt/base/encoderlame.h7
2 files changed, 27 insertions, 8 deletions
diff --git a/rbutil/rbutilqt/base/encoderlame.cpp b/rbutil/rbutilqt/base/encoderlame.cpp
index 52937e9109..75289481fb 100644
--- a/rbutil/rbutilqt/base/encoderlame.cpp
+++ b/rbutil/rbutilqt/base/encoderlame.cpp
@@ -59,11 +59,23 @@ void EncoderLame::generateSettings()
59 // no settings for now. 59 // no settings for now.
60 // show lame version. 60 // show lame version.
61 if(m_symbolsResolved) { 61 if(m_symbolsResolved) {
62 insertSetting(eVOLUME, new EncTtsSetting(this, EncTtsSetting::eREADONLYSTRING, 62 double quality = RbSettings::subValue("lame",
63 RbSettings::EncoderQuality).toDouble();
64 // default quality is 0.999.
65 if(quality < 0) {
66 quality = 0.99;
67 }
68 insertSetting(LAMEVERSION, new EncTtsSetting(this, EncTtsSetting::eREADONLYSTRING,
63 tr("LAME"), QString(m_get_lame_short_version()))); 69 tr("LAME"), QString(m_get_lame_short_version())));
70 insertSetting(VOLUME, new EncTtsSetting(this, EncTtsSetting::eDOUBLE,
71 tr("Volume"),
72 RbSettings::subValue("lame", RbSettings::EncoderVolume).toDouble(),
73 0.0, 1.0));
74 insertSetting(QUALITY, new EncTtsSetting(this, EncTtsSetting::eDOUBLE,
75 tr("Quality"), quality, 0.0, 1.0));
64 } 76 }
65 else { 77 else {
66 insertSetting(eVOLUME, new EncTtsSetting(this, EncTtsSetting::eREADONLYSTRING, 78 insertSetting(LAMEVERSION, new EncTtsSetting(this, EncTtsSetting::eREADONLYSTRING,
67 tr("LAME"), tr("Could not find libmp3lame!"))); 79 tr("LAME"), tr("Could not find libmp3lame!")));
68 } 80 }
69} 81}
@@ -71,6 +83,10 @@ void EncoderLame::generateSettings()
71void EncoderLame::saveSettings() 83void EncoderLame::saveSettings()
72{ 84{
73 // no user settings right now. 85 // no user settings right now.
86 RbSettings::setSubValue("lame", RbSettings::EncoderVolume,
87 getSetting(VOLUME)->current().toDouble());
88 RbSettings::setSubValue("lame", RbSettings::EncoderQuality,
89 getSetting(QUALITY)->current().toDouble());
74} 90}
75 91
76bool EncoderLame::start() 92bool EncoderLame::start()
@@ -110,10 +126,14 @@ bool EncoderLame::encode(QString input,QString output)
110 126
111 gfp = m_lame_init(); 127 gfp = m_lame_init();
112 m_lame_set_out_samplerate(gfp, 12000); // resample to 12kHz 128 m_lame_set_out_samplerate(gfp, 12000); // resample to 12kHz
113 m_lame_set_scale(gfp, 1.0); // scale input volume 129 // scale input volume
130 m_lame_set_scale(gfp,
131 RbSettings::subValue("lame", RbSettings::EncoderVolume).toDouble());
114 m_lame_set_mode(gfp, MONO); // mono output mode 132 m_lame_set_mode(gfp, MONO); // mono output mode
115 m_lame_set_VBR(gfp, vbr_default); // enable default VBR mode 133 m_lame_set_VBR(gfp, vbr_default); // enable default VBR mode
116 m_lame_set_VBR_quality(gfp, 9.999f); // VBR quality 134 // VBR quality
135 m_lame_set_VBR_quality(gfp,
136 RbSettings::subValue("lame", RbSettings::EncoderQuality).toDouble());
117 m_lame_set_VBR_max_bitrate_kbps(gfp, 64); // maximum bitrate 64kbps 137 m_lame_set_VBR_max_bitrate_kbps(gfp, 64); // maximum bitrate 64kbps
118 m_lame_set_bWriteVbrTag(gfp, 0); // disable LAME tag. 138 m_lame_set_bWriteVbrTag(gfp, 0); // disable LAME tag.
119 139
diff --git a/rbutil/rbutilqt/base/encoderlame.h b/rbutil/rbutilqt/base/encoderlame.h
index 9f87188d9b..8b9444589a 100644
--- a/rbutil/rbutilqt/base/encoderlame.h
+++ b/rbutil/rbutilqt/base/encoderlame.h
@@ -27,10 +27,9 @@ class EncoderLame : public EncoderBase
27{ 27{
28 enum ESettings 28 enum ESettings
29 { 29 {
30 eVOLUME, 30 LAMEVERSION,
31 eQUALITY, 31 VOLUME,
32 eCOMPLEXITY, 32 QUALITY,
33 eNARROWBAND
34 }; 33 };
35 34
36 Q_OBJECT 35 Q_OBJECT