zynaddsubfx

ZynAddSubFX open source synthesizer
Log | Files | Refs | Submodules | LICENSE

commit c24e6c76d4f74afda17513146066fd3727f2fc7a
parent f35d1451ac8cfe06110d1da84718ba50f3ddde5e
Author: fundamental <mark.d.mccurry@gmail.com>
Date:   Mon,  3 May 2010 13:01:03 -0400

WIP: Getting Wave Working in nio

Restricting API, to allow for the WaveEngine to be a special case

Diffstat:
Msrc/Misc/Recorder.cpp | 12++++++------
Msrc/Nio/AudioOut.h | 3---
Msrc/Nio/InMgr.h | 2--
Msrc/Nio/OutMgr.h | 32++++++++++----------------------
4 files changed, 16 insertions(+), 33 deletions(-)

diff --git a/src/Misc/Recorder.cpp b/src/Misc/Recorder.cpp @@ -63,8 +63,8 @@ void Recorder::stop() { if(wave) { - sysOut->remove(wave); - wave->Stop(); + //sysOut->remove(wave); + //wave->Stop(); delete wave; wave = NULL; //is this even needed? } @@ -74,8 +74,8 @@ void Recorder::stop() void Recorder::pause() { status = 0; - wave->Stop(); - sysOut->remove(wave); + //wave->Stop(); + //sysOut->remove(wave); } int Recorder::recording() @@ -90,8 +90,8 @@ void Recorder::triggernow() { if(status == 2) { if(notetrigger!=1) { - wave->openAudio(); - sysOut->add(wave); + //wave->openAudio(); + //sysOut->add(wave); } notetrigger = 1; } diff --git a/src/Nio/AudioOut.h b/src/Nio/AudioOut.h @@ -33,9 +33,6 @@ class AudioOut : public virtual Engine AudioOut(class OutMgr *out); virtual ~AudioOut(); - /**Give the Driver Samples to process*/ - //virtual void out(Stereo<Sample> smps); - /**Sets the Sample Rate of this Output * (used for getNext()).*/ void setSamplerate(int _samplerate); diff --git a/src/Nio/InMgr.h b/src/Nio/InMgr.h @@ -2,9 +2,7 @@ #define INMGR_H #include <string> -#include <pthread.h> #include <semaphore.h> -#include "../Misc/Atomic.h" #include "SafeQueue.h" enum midi_type{ diff --git a/src/Nio/OutMgr.h b/src/Nio/OutMgr.h @@ -3,16 +3,14 @@ #include "../globals.h" #include "../Misc/Stereo.h" -#include "../Misc/Atomic.h" -#include "../Samples/Sample.h" +#include "../Samples/Sample.h" //deprecated #include <list> -#include <map> #include <string> -#include <pthread.h> #include <semaphore.h> class AudioOut; +class WavEngine; class Master; class OutMgr { @@ -20,11 +18,6 @@ class OutMgr OutMgr(Master *nmaster); ~OutMgr(); - /**Adds audio output out.*/ - void add(AudioOut *out){}; - /**Removes given audio output engine*/ - void remove(AudioOut *out){}; - /**Execute a tick*/ const Stereo<REALTYPE *> tick(unsigned int frameSize); @@ -40,6 +33,7 @@ class OutMgr AudioOut *getOut(std::string name); /**Gets the name of the first running driver + * Deprecated * @return if no running output, "" is returned */ std::string getDriver() const; @@ -51,28 +45,22 @@ class OutMgr std::string getSink() const; private: void addSmps(REALTYPE *l, REALTYPE *r); - int storedSmps() const {return priBuffCurrent.l() - priBuf.l();}; + int storedSmps() const {return priBuffCurrent.l() - priBuf.l();}; void makeStale(unsigned int size); void removeStaleSmps(); - //should hold outputs here that exist for the life of the OutMgr + AudioOut *defaultOut;/**<The default output*/ - AudioOut *currentOut; + AudioOut *currentOut;/**<The current output driver*/ - //should hold short lived, externally controlled Outputs (eg WavEngine) - //[needs mutex] - //std::list<AudioOut *> unmanagedOuts; - //mutable pthread_mutex_t mutex; + WavEngine *wave; /**<The Wave Recorder*/ sem_t requested; - //information on current active primary driver - //sample rate - //frame size - /**Buffer*/ - Stereo<REALTYPE *> priBuf; //buffer for primary drivers + Stereo<REALTYPE *> priBuf; //buffer for primary drivers Stereo<REALTYPE *> priBuffCurrent; //current array accessor - Stereo<Sample> smps; + Stereo<Sample> smps; /**Deprecated TODO Remove*/ + REALTYPE *outl; REALTYPE *outr; Master *master;