kopia lustrzana https://gitlab.com/eliggett/wfview
60 wiersze
1.2 KiB
C++
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());
|
|
}
|