diff options
Diffstat (limited to 'libs/audiographer/audiographer/general/chunker.h')
-rw-r--r-- | libs/audiographer/audiographer/general/chunker.h | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/libs/audiographer/audiographer/general/chunker.h b/libs/audiographer/audiographer/general/chunker.h index 466a333655..28ac79b603 100644 --- a/libs/audiographer/audiographer/general/chunker.h +++ b/libs/audiographer/audiographer/general/chunker.h @@ -10,7 +10,7 @@ namespace AudioGrapher { -/// A class that chunks process cycles into equal sized frames +/// A class that chunks process cycles into equal sized samples template<typename T = DefaultSampleType> class /*LIBAUDIOGRAPHER_API*/ Chunker : public ListedSource<T> @@ -21,7 +21,7 @@ class /*LIBAUDIOGRAPHER_API*/ Chunker /** Constructs a new Chunker with a constant chunk size. * \n NOT RT safe */ - Chunker (framecnt_t chunk_size) + Chunker (samplecnt_t chunk_size) : chunk_size (chunk_size) , position (0) { @@ -42,29 +42,29 @@ class /*LIBAUDIOGRAPHER_API*/ Chunker { check_flags (*this, context); - framecnt_t frames_left = context.frames(); - framecnt_t input_position = 0; + samplecnt_t samples_left = context.samples(); + samplecnt_t input_position = 0; - while (position + frames_left >= chunk_size) { + while (position + samples_left >= chunk_size) { // Copy from context to buffer - framecnt_t const frames_to_copy = chunk_size - position; - TypeUtils<T>::copy (&context.data()[input_position], &buffer[position], frames_to_copy); + samplecnt_t const samples_to_copy = chunk_size - position; + TypeUtils<T>::copy (&context.data()[input_position], &buffer[position], samples_to_copy); // Update counters position = 0; - input_position += frames_to_copy; - frames_left -= frames_to_copy; + input_position += samples_to_copy; + samples_left -= samples_to_copy; // Output whole buffer ProcessContext<T> c_out (context, buffer, chunk_size); - if (frames_left) { c_out.remove_flag(ProcessContext<T>::EndOfInput); } + if (samples_left) { c_out.remove_flag(ProcessContext<T>::EndOfInput); } ListedSource<T>::output (c_out); } - if (frames_left) { + if (samples_left) { // Copy the rest of the data - TypeUtils<T>::copy (&context.data()[input_position], &buffer[position], frames_left); - position += frames_left; + TypeUtils<T>::copy (&context.data()[input_position], &buffer[position], samples_left); + position += samples_left; } if (context.has_flag (ProcessContext<T>::EndOfInput) && position > 0) { @@ -75,8 +75,8 @@ class /*LIBAUDIOGRAPHER_API*/ Chunker using Sink<T>::process; private: - framecnt_t chunk_size; - framecnt_t position; + samplecnt_t chunk_size; + samplecnt_t position; T * buffer; }; |