* Add centre-focus option (mid/side processing)

* Simplify RingBuffer and add explicit memory locks
* Fix hang with certain unfortunate combinations of parameters
* Bump version to 1.7
This commit is contained in:
Chris Cannam
2011-11-25 11:11:59 +00:00
parent 9c52352c24
commit c26dc1dc88
19 changed files with 588 additions and 373 deletions

View File

@@ -83,6 +83,7 @@ inline void v_copy_channels(T *const R__ *const R__ dst,
}
}
// src and dst alias by definition, so not restricted
template<typename T>
inline void v_move(T *const dst,
const T *const src,
@@ -139,6 +140,16 @@ inline void v_add(T *const R__ dst,
}
}
template<typename T>
inline void v_add(T *const R__ dst,
const T value,
const int count)
{
for (int i = 0; i < count; ++i) {
dst[i] += value;
}
}
template<typename T>
inline void v_add_channels(T *const R__ *const R__ dst,
@@ -241,6 +252,17 @@ inline void v_multiply_and_add(T *const R__ dst,
}
template<typename T>
inline T v_sum(const T *const R__ src,
const int count)
{
T result = T();
for (int i = 0; i < count; ++i) {
result += src[i];
}
return result;
}
template<typename T>
inline void v_log(T *const R__ dst,
const int count)