diff options
author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2012-01-29 15:36:06 +0100 |
---|---|---|
committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2012-01-29 22:55:18 +0100 |
commit | 933a67489111ed8372f29cc213e2399465592c19 (patch) | |
tree | 91e281367688f2bd4be8eba8892f20c55d0d1746 /rbutil | |
parent | a489a6be8a483aa206cfb6b7d6b1edac1be93291 (diff) | |
download | rockbox-933a67489111ed8372f29cc213e2399465592c19.tar.gz rockbox-933a67489111ed8372f29cc213e2399465592c19.zip |
libmp3lame: add quality and volume settings.
Change-Id: I220526f071dadc69791e5bf6d23cfce2bf9ba045
Diffstat (limited to 'rbutil')
-rw-r--r-- | rbutil/rbutilqt/base/encoderlame.cpp | 28 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/encoderlame.h | 7 |
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() | |||
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 | ||
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 |