Mercurial > hg > svcore
comparison base/AudioLevel.cpp @ 1805:3db9a9fc2612
Tidy
author | Chris Cannam |
---|---|
date | Wed, 16 Oct 2019 12:12:49 +0100 |
parents | 71202259002d |
children |
comparison
equal
deleted
inserted
replaced
1804:343ef2a866a4 | 1805:3db9a9fc2612 |
---|---|
43 FaderDescription(-70., +10., 0.80), // long | 43 FaderDescription(-70., +10., 0.80), // long |
44 FaderDescription(-70., 0., 1.00), // IEC268 | 44 FaderDescription(-70., 0., 1.00), // IEC268 |
45 FaderDescription(-70., +10., 0.80), // IEC268 long | 45 FaderDescription(-70., +10., 0.80), // IEC268 long |
46 FaderDescription(-40., 0., 1.00), // preview | 46 FaderDescription(-40., 0., 1.00), // preview |
47 }; | 47 }; |
48 | |
49 //typedef std::vector<double> LevelList; | |
50 //static std::map<int, LevelList> previewLevelCache; | |
51 //static const LevelList &getPreviewLevelCache(int levels); | |
52 | 48 |
53 double | 49 double |
54 AudioLevel::multiplier_to_dB(double multiplier) | 50 AudioLevel::multiplier_to_dB(double multiplier) |
55 { | 51 { |
56 if (multiplier == 0.) return DB_FLOOR; | 52 if (multiplier == 0.) return DB_FLOOR; |
218 double dB = multiplier_to_dB(multiplier); | 214 double dB = multiplier_to_dB(multiplier); |
219 int fader = dB_to_fader(dB, maxLevel, type); | 215 int fader = dB_to_fader(dB, maxLevel, type); |
220 return fader; | 216 return fader; |
221 } | 217 } |
222 | 218 |
223 /* | |
224 const LevelList & | |
225 getPreviewLevelCache(int levels) | |
226 { | |
227 LevelList &ll = previewLevelCache[levels]; | |
228 if (ll.empty()) { | |
229 for (int i = 0; i <= levels; ++i) { | |
230 double m = AudioLevel::fader_to_multiplier | |
231 (i + levels/4, levels + levels/4, AudioLevel::PreviewLevel); | |
232 if (levels == 1) m /= 100; // noise | |
233 ll.push_back(m); | |
234 } | |
235 } | |
236 return ll; | |
237 } | |
238 */ | |
239 | |
240 int | 219 int |
241 AudioLevel::multiplier_to_preview(double m, int levels) | 220 AudioLevel::multiplier_to_preview(double m, int levels) |
242 { | 221 { |
243 assert(levels > 0); | 222 assert(levels > 0); |
244 return multiplier_to_fader(m, levels, PreviewLevel); | 223 return multiplier_to_fader(m, levels, PreviewLevel); |
245 | |
246 /* The original multiplier_to_preview which follows is not thread-safe. | |
247 | |
248 if (m < 0.) return -multiplier_to_preview(-m, levels); | |
249 | |
250 const LevelList &ll = getPreviewLevelCache(levels); | |
251 int result = -1; | |
252 | |
253 int lo = 0, hi = levels; | |
254 | |
255 // binary search | |
256 int level = -1; | |
257 while (result < 0) { | |
258 int newlevel = (lo + hi) / 2; | |
259 if (newlevel == level || | |
260 newlevel == 0 || | |
261 newlevel == levels) { | |
262 result = newlevel; | |
263 break; | |
264 } | |
265 level = newlevel; | |
266 if (ll[level] >= m) { | |
267 hi = level; | |
268 } else if (ll[level+1] >= m) { | |
269 result = level; | |
270 } else { | |
271 lo = level; | |
272 } | |
273 } | |
274 | |
275 return result; | |
276 | |
277 */ | |
278 } | 224 } |
279 | 225 |
280 double | 226 double |
281 AudioLevel::preview_to_multiplier(int level, int levels) | 227 AudioLevel::preview_to_multiplier(int level, int levels) |
282 { | 228 { |
283 assert(levels > 0); | 229 assert(levels > 0); |
284 return fader_to_multiplier(level, levels, PreviewLevel); | 230 return fader_to_multiplier(level, levels, PreviewLevel); |
285 /* | 231 } |
286 if (level < 0) return -preview_to_multiplier(-level, levels); | 232 |
287 const LevelList &ll = getPreviewLevelCache(levels); | 233 |
288 return ll[level]; | |
289 */ | |
290 } | |
291 | |
292 |