#ifndef MIXER_H
#define MIXER_H
#include <QDialog>
#include <QDial>
#include <QSlider>
#include "audiothread.h"
#include "audiomixer.h"
namespace Ui {
class Mixer;
}
class Mixer : public QDialog
{
Q_OBJECT
public:
explicit Mixer(QWidget *parent, AudioThread *audio);
~Mixer() override;
signals:
void volChanged(uint device, uint inputChannel, uint outputChannel, int vol);
protected:
void closeEvent(QCloseEvent *e) override;
void keyPressEvent(QKeyEvent *e) override;
private:
Ui::Mixer *ui;
void saveSettings();
};
class MixDial : public QDial {
Q_OBJECT
public:
MixDial(QWidget *parent);
void setup(uint device, uint inputChannel, uint outputChannel, int value = -1);
protected:
void sliderChange(QAbstractSlider::SliderChange change);
signals:
void valueChanged(uint device, uint inputChannel, uint outputChannel, int vol);
private:
uint device, inputChannel, outputChannel;
};
class MixSlider : public QSlider {
Q_OBJECT
public:
MixSlider(QWidget *parent);
void setup(uint device, uint inputChannel, int value = -1);
protected:
void sliderChange(QAbstractSlider::SliderChange change);
void mouseMoveEvent(QMouseEvent *e);
signals:
void valueChanged(uint device, uint inputChannel, int value);
private:
uint device, inputChannel, outputChannel;
};
class MixSliderVolume : public MixSlider {
Q_OBJECT
public:
MixSliderVolume(QWidget *parent);
protected:
void sliderChange(QAbstractSlider::SliderChange change);
};
class MixSliderBalance : public MixSlider {
Q_OBJECT
public:
MixSliderBalance(QWidget *parent);
protected:
void sliderChange(QAbstractSlider::SliderChange change);
};
#endif // MIXER_H