wfview/rxaudiohandler.cpp

60 wiersze
1.2 KiB
C++

#include "rxaudiohandler.h"
rxAudioHandler::rxAudioHandler()
{
}
rxAudioHandler::~rxAudioHandler()
{
audio->stop();
delete audio;
delete buffer;
}
void rxAudioHandler::process()
{
qDebug() << "rxAudio Handler created.";
}
void rxAudioHandler::setup(const QAudioFormat format, const int bufferSize)
{
this->format = format;
this->bufferSize = bufferSize;
buffer = new QBuffer();
buffer->open(QIODevice::ReadWrite);
audio = new QAudioOutput(format);
audio->setBufferSize(bufferSize);
buffer->seek(0);
audio->start(buffer);
}
void rxAudioHandler::incomingAudio(const QByteArray data, const int size)
{
buffer->buffer().remove(0,buffer->pos());
buffer->seek(buffer->size());
buffer->write(data.constData(), size);
buffer->seek(0);
}
void rxAudioHandler::changeBufferSize(const int newSize)
{
// TODO: make a way to change the buffer size.
// possibly deleting the buffer and re-creating
audio->setBufferSize(newSize);
}
void rxAudioHandler::getBufferSize()
{
emit sendBufferSize(buffer->size());
}
void rxAudioHandler::getAudioBufferSize()
{
emit sendAudioBufferSize(audio->bufferSize());
}