diff options
Diffstat (limited to 'rbutil/rbutilqt/base/encoderlame.cpp')
-rw-r--r-- | rbutil/rbutilqt/base/encoderlame.cpp | 28 |
1 files changed, 24 insertions, 4 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() | |||
71 | void EncoderLame::saveSettings() | 83 | void 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 | ||
76 | bool EncoderLame::start() | 92 | bool 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 | ||