CSL
5.2
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
BlockResizer.h
Go to the documentation of this file.
1
///
2
/// BlockResizer.h -- Regularizes the amount of data called for,
3
/// meaning that different parts of a graph can run at different callback block sizes.
4
/// This is useful for time-frequency transformations that only work with fixed buffer sizes.
5
/// A BlockResizer either caches large blocks between multiple smaller callbacks, or it calls a
6
/// smaller-block-size graph several times per larger-sized downstream callbacks.
7
/// BlockResizer works for up-block and down-block situations.
8
/// This version also handles multi-channel mapping, so you can use a mono input and ask it for
9
/// multi-channel output; it will copy.
10
///
11
/// See the copyright notice and acknowledgment of authors in the file COPYRIGHT
12
///
13
14
#ifndef CSL_BlockResizer_H
15
#define CSL_BlockResizer_H
16
17
#include "
CSL_Core.h
"
18
19
namespace
csl {
20
21
/// Regularizes the amount of data called for.
22
/// This is useful for time-frequency transformations that only work with certain buffer sizes.
23
24
class
BlockResizer
:
public
UnitGenerator
{
// it could be an Effect
25
26
public
:
/// ctor / dtor
27
BlockResizer
(
UnitGenerator
& input,
unsigned
blockSize);
28
~BlockResizer
();
29
/// the work-horse method calls the up-hill graph as needed
30
void
nextBuffer
(
Buffer
& outputBuffer)
throw
(
CException
);
31
32
protected
:
33
UnitGenerator
*
mInput
;
///< my input unit generator (pointer)
34
Buffer
mInputBuffer
;
///< buffer used to pull input
35
unsigned
mBufferSize
;
///< fixed buffer size of the up-hill graph
36
int
mFramePointer
;
///< where am I in reading the input?
37
};
38
39
}
40
41
#endif
CSL
Utilities
BlockResizer.h
Generated on Thu Nov 15 2012 22:01:10 for CSL by
1.8.1.1