Main Page | Class Hierarchy | Class List | File List | Class Members | Related Pages

proAudioRt.h

Go to the documentation of this file.
00001 #include "proAudio.h"
00002 #include <RtAudio.h>
00003 #include <map>
00004 
00011 struct _AudioTrack;
00012 
00014 
00016 class DeviceAudioRt : public DeviceAudio {
00017 public:
00019 
00026     static DeviceAudio* create(unsigned int nTracks=8, unsigned int frequency=22050, unsigned int chunkSize=1024);
00027 
00029     virtual unsigned int sampleFromMemory(const AudioSample & sample, float volume=1.0f);
00031     virtual bool sampleDestroy(unsigned int sample);
00033     virtual const AudioSample* sample(unsigned int handle) const;
00034 
00036 
00042     virtual unsigned int soundPlay(unsigned int sample, float volumeL=1.0f, float volumeR=1.0f, float disparity=0.0f, float pitch=1.0f );
00050     virtual unsigned int soundLoop(unsigned int sample, float volumeL=1.0f, float volumeR=1.0f, float disparity=0.0f, float pitch=1.0f );
00052 
00058     virtual bool soundUpdate(unsigned int sound, float volumeL, float volumeR, float disparity=0.0f, float pitch=1.0f );
00060     virtual bool soundStop(unsigned int sound);
00062     virtual void soundStop();
00064     virtual unsigned soundActive() const;
00065 protected:
00067     DeviceAudioRt(unsigned int nTracks, unsigned int frequency, unsigned int chunkSize);
00069     virtual ~DeviceAudioRt();
00071     int mixOutputFloat(signed short *outputBuffer, unsigned int nFrames);
00072 
00074     std::map<unsigned int, AudioSample*> mm_sample;
00076     unsigned int m_sampleCounter;
00077 
00079     _AudioTrack * ma_sound;
00081     unsigned int m_nSound;
00083     RtAudio m_dac;
00084 
00086     static int cbMix(void *outputBuffer, void *inputBuffer, unsigned int nFrames, double streamTime, RtAudioStreamStatus status, void *data) {
00087         return static_cast<DeviceAudioRt*>(data)->mixOutputFloat((signed short*)outputBuffer, nFrames); }
00088 };
© 2009-02-04 by Gerald Franz, www.viremo.de impressum