-
Notifications
You must be signed in to change notification settings - Fork 0
/
qaudioswitcher.h
52 lines (45 loc) · 1.23 KB
/
qaudioswitcher.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#ifndef QAUDIOSWITCHER_H
#define QAUDIOSWITCHER_H
#include <QMainWindow>
#include <QSystemTrayIcon>
#include <QMenu>
#include <QListWidgetItem>
#include "audiodevice.h"
namespace Ui {
class QAudioSwitcher;
}
#ifdef PULSEAUDIO
//#define AudioManager PulseAudioSinksManager
#else
#error "AudioManager implementation not defined"
#endif
class AudioManager;
class QAudioSwitcher : public QMainWindow
{
Q_OBJECT
public:
explicit QAudioSwitcher(QWidget *parent = 0);
~QAudioSwitcher();
public slots:
void quit();
void showError(QString message);
void addDevice(AudioDevice sink);
void sinkListComplete();
void sinkSelectionChanged(QListWidgetItem* item);
Q_SCRIPTABLE void switchSink();
void trayIconActivated(QSystemTrayIcon::ActivationReason reason);
private:
void saveSinksList();
void loadSinksList();
void loadDefaultSink();
void saveDefaultSink();
void setupTrayIcon();
private:
Ui::QAudioSwitcher *ui;
AudioManager *audioManager;
bool sinkListLoadingComplete;
QString currentDefaultSink;
QSystemTrayIcon* trayIcon;
QMenu *trayIconMenu;
};
#endif // QAUDIOSWITCHER_H