#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include "math.h"
#include <iostream>
using namespace std ;
#include "MonitorAudio.h"
#include "MonitorLogging.h"
CAudioBuffer::CAudioBuffer() {
CAudioBuffer(16384) ;
}
CAudioBuffer::CAudioBuffer(tFramecount len) {
SampleLen = len;
Samples = 0;
/* Laenge pro Kanal */
ByteLen = SampleLen * sizeof(float);
Left = (float*) malloc(ByteLen);
Right = (float*) malloc(ByteLen);
Ptrs = (float**) malloc(sizeof(float*) * 2);
Ptrs[0] = Left;
Ptrs[1] = Right;
for (unsigned int i=0; i< len; i++) {
Left[i] = sin(((float) i)*3.14159265/180.0 ) ;
Right[i] = sin(((float) i)*3.14159265/180.0 ) ;
}
}
CAudioBuffer::~CAudioBuffer() {
free(Ptrs);
free(Left);
free(Right);
Samples = 0;
ByteLen = 0;
}
/*****************************************************************************/
MonitorAudio::MonitorAudio(const std::string *name, tSamplerate rate) {
if (name != NULL) {
pcm_name = *name;
}
pcm_rate = rate;
/* Audiopuffer ca. 1/3 Sekunden Laenge */
audio_buffer = new CAudioBuffer(16384);
}
MonitorAudio::~MonitorAudio() {
delete audio_buffer;
}
void MonitorAudio::Stop(){}
bool MonitorAudio::Start(void* format){return true;}
void MonitorAudio::setDevice (const std::string name, tSamplerate rate) {
pcm_name = name;
if (rate != 0) {
pcm_rate = rate;
}
}
void MonitorAudio::setCallback (void (* callback)(CAudioBuffer* buffer, void* Owner)) {
this->DataFromSoundIn = callback;
}
void MonitorAudio::setOwner (void *owner) {
this->m_pOwner = owner;
}
// vim: sw=4 ts=4 cindent