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);
00032 
00034 
00040     virtual unsigned int soundPlay(unsigned int sample, float volumeL=1.0f, float volumeR=1.0f, float disparity=0.0f, float pitch=1.0f );
00048     virtual unsigned int soundLoop(unsigned int sample, float volumeL=1.0f, float volumeR=1.0f, float disparity=0.0f, float pitch=1.0f );
00050 
00056     virtual bool soundUpdate(unsigned int sound, float volumeL, float volumeR, float disparity=0.0f, float pitch=1.0f );
00058     virtual bool soundStop(unsigned int sound);
00060     virtual void soundStop();
00062     virtual unsigned soundActive() const;
00063 protected:
00065     DeviceAudioRt(unsigned int nTracks, unsigned int frequency, unsigned int chunkSize);
00067     virtual ~DeviceAudioRt();
00069     int mixOutputFloat(signed short *outputBuffer, unsigned int nFrames);
00070 
00072     std::map<unsigned int, AudioSample*> mm_sample;
00074     unsigned int m_sampleCounter;
00075 
00077     _AudioTrack * ma_sound;
00079     unsigned int m_nSound;
00081     RtAudio m_dac;
00082 
00084     static int cbMix(void *outputBuffer, void *inputBuffer, unsigned int nFrames, double streamTime, RtAudioStreamStatus status, void *data) {
00085         return static_cast<DeviceAudioRt*>(data)->mixOutputFloat((signed short*)outputBuffer, nFrames); }
00086 };
© 2009-01-08 by Gerald Franz, www.viremo.de impressum