53 lines
885 B
C++
53 lines
885 B
C++
#ifndef AMPMANAGER_H
|
|
#define AMPMANAGER_H
|
|
|
|
#include <iostream>
|
|
|
|
#include <QObject>
|
|
#include <QRunnable>
|
|
#include <QScopedPointer>
|
|
#include <QEventLoop>
|
|
#include <QTimer>
|
|
#include <QByteArray>
|
|
#include <QtDebug>
|
|
#include <QAudioDeviceInfo>
|
|
#include <alsa/asoundlib.h>
|
|
|
|
|
|
#include "microcontroller.h"
|
|
|
|
|
|
class AmpManager : public QObject, public QRunnable
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
explicit AmpManager(Microcontroller *micro, int relayNumber, QAudioDeviceInfo device, QObject *parent = 0);
|
|
~AmpManager();
|
|
|
|
|
|
|
|
public slots:
|
|
void run();
|
|
void abort();
|
|
void doTick();
|
|
|
|
private:
|
|
QScopedPointer<QEventLoop> loop;
|
|
|
|
long silenceCount = 0;
|
|
Microcontroller *_micro;
|
|
int _relayNumber;
|
|
|
|
char* _buffer;
|
|
|
|
snd_pcm_t *handle;
|
|
snd_pcm_hw_params_t *params;
|
|
snd_pcm_uframes_t frames;
|
|
char *buffer;
|
|
|
|
bool relayState = false;
|
|
|
|
};
|
|
|
|
#endif // AMPMANAGER_H
|