00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef DISK_WRITER_DRIVER_H
00026 #define DISK_WRITER_DRIVER_H
00027
00028
00029 #include "GenericDriver.h"
00030 #include <audiofile.h>
00031 #include "Hydrogen.h"
00032
00033 typedef int (*audioProcessCallback)(unsigned long, void *);
00034
00035
00039 class DiskWriterDriver : public GenericDriver {
00040 private:
00041 audioProcessCallback processCallback;
00042 AFfilehandle outputFile;
00043 uint bufferSize;
00044 short *saveBuffer;
00045 string filename;
00046
00047 public:
00048 virtual string getClassName() { return "DiskWriterDriver"; }
00049
00051 DiskWriterDriver(audioProcessCallback processCallback);
00052
00054 ~DiskWriterDriver();
00055
00056 int connect();
00057
00058 void disconnect();
00059
00060 void write(float* buffer_L, float* buffer_R, unsigned int bufferSize);
00061
00063 void setBufferSize(uint bufferSize);
00064
00066 uint getBufferSize();
00067
00068 void setFilename(string filename) { this->filename = filename; }
00069 uint getSampleRate();
00070 };
00071
00072
00073
00074 #endif