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