Home   Information   Classes   Download   Usage   Mail List   Requirements   Links   FAQ   Tutorial


RtWvIn.h
1#ifndef STK_RTWVIN_H
2#define STK_RTWVIN_H
3
4#include "WvIn.h"
5#include "RtAudio.h"
6#include "Mutex.h"
7
8namespace stk {
9
10/***************************************************/
29/***************************************************/
30
31class RtWvIn : public WvIn
32{
33public:
35
42 RtWvIn( unsigned int nChannels = 1, StkFloat sampleRate = Stk::sampleRate(),
43 int deviceIndex = 0, int bufferFrames = RT_BUFFER_SIZE, int nBuffers = 20 );
44
47
49
53 void start( void );
54
56
60 void stop( void );
61
63
72 StkFloat lastOut( unsigned int channel = 0 );
73
75
84 StkFloat tick( unsigned int channel = 0 );
85
87
95 StkFrames& tick( StkFrames& frames, unsigned int channel = 0 );
96
97 // This function is not intended for general use but must be
98 // public for access from the audio callback function.
99 void fillBuffer( void *buffer, unsigned int nFrames );
100
101protected:
102
103 RtAudio adc_;
104 Mutex mutex_;
105 bool stopped_;
106 unsigned int readIndex_;
107 unsigned int writeIndex_;
108 unsigned int framesFilled_;
109
110};
111
112inline StkFloat RtWvIn :: lastOut( unsigned int channel )
113{
114#if defined(_STK_DEBUG_)
115 if ( channel >= data_.channels() ) {
116 oStream_ << "RtWvIn::lastOut(): channel argument and audio stream are incompatible!";
117 handleError( StkError::FUNCTION_ARGUMENT );
118 }
119#endif
120
121 return lastFrame_[channel];
122}
123
124} // stk namespace
125
126#endif
Realtime audio i/o C++ classes.
Definition RtAudio.h:268
STK mutex class.
Definition Mutex.h:37
STK realtime audio (blocking) input class.
Definition RtWvIn.h:32
void start(void)
Start the audio input stream.
StkFrames & tick(StkFrames &frames, unsigned int channel=0)
Fill the StkFrames object with computed sample frames, starting at the specified channel and return t...
void stop(void)
Stop the audio input stream.
StkFloat lastOut(unsigned int channel=0)
Return the specified channel value of the last computed frame.
Definition RtWvIn.h:112
RtWvIn(unsigned int nChannels=1, StkFloat sampleRate=Stk::sampleRate(), int deviceIndex=0, int bufferFrames=RT_BUFFER_SIZE, int nBuffers=20)
Default constructor.
StkFloat tick(unsigned int channel=0)
Compute a sample frame and return the specified channel value.
~RtWvIn()
Class destructor.
An STK class to handle vectorized audio data.
Definition Stk.h:279
static StkFloat sampleRate(void)
Static method that returns the current STK sample rate.
Definition Stk.h:148
STK audio input abstract base class.
Definition WvIn.h:20
The STK namespace.
Definition ADSR.h:6

The Synthesis ToolKit in C++ (STK)
©1995--2023 Perry R. Cook and Gary P. Scavone. All Rights Reserved.