-
Notifications
You must be signed in to change notification settings - Fork 0
/
asioselector.h
125 lines (92 loc) · 3.5 KB
/
asioselector.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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#ifndef ASIOSELECTOR_H
#define ASIOSELECTOR_H
#include <QVariant>
#include <QListWidget>
#include <QListWidgetItem>
#include <QMainWindow>
namespace Ui {
class AsioSelector;
}
class AsioSelector : public QMainWindow
{
Q_OBJECT
public:
explicit AsioSelector(QWidget *parent = 0);
~AsioSelector();
void setActiveDeviceUnique(bool val){
unique_active_device = val;
}
bool getActiveDeviceUnique(){
return unique_active_device;
}
uint32_t getSelectedDevice(){
return selected_device;
}
std::vector<uint32_t> getActiveDevices();
void setSampleRateForDevice(uint32_t index, double sample_rate){
this->current_sample_rate[index] = sample_rate;
}
void setBufferSizeForDevice(uint32_t index, uint64_t buffer_size){
this->current_buffer_size[index] = buffer_size;
}
void setAudioFormatForDevice(uint32_t index, std::string audio_format){
this->current_audio_format[index] = audio_format;
}
double getSampleRateForDevice(uint32_t index){
return current_sample_rate[index];
}
uint64_t getBufferSizeForDevice(uint32_t index){
return current_buffer_size[index];
}
std::string getAudioFormatForDevice(uint32_t index){
return current_audio_format[index];
}
double getDefaultSampleRateForDevice(uint32_t index){
return default_sample_rate[index];
}
uint64_t getDefaultBufferSizeForDevice(uint32_t index){
return default_buffer_size[index];
}
std::string getDefaultAudioFormatForDevice(uint32_t index){
return default_audio_format[index];
}
std::vector<double> getSampleRatesForDevice(uint32_t index){
return sample_rate_list[index];
}
std::vector<uint64_t> getBufferSizesForDevice(uint32_t index){
return buffer_size_list[index];
}
std::vector<std::string> getAudioFormatsForDevice(uint32_t index){
return audio_format_list[index];
}
void addDevice(std::string device_name, std::vector<double> sample_rates, std::vector<uint64_t> buffer_sizes, std::vector<std::string> audio_formats);
void addDevice(std::string device_name, std::vector<double> sample_rates, double default_sample_rate,
std::vector<uint64_t> buffer_sizes, uint32_t default_buffer_size, std::vector<std::string> audio_formats, std::string default_audio_format);
private slots:
void on_okButton_clicked();
void on_applyButton_clicked();
void on_defaultsButton_clicked();
void on_asioDevicesList_currentRowChanged(int currentRow);
private:
//QWidgetList* asioDevicesList;
/*list of gui options, must be filled for gui to work*/
std::vector<std::vector<double>> sample_rate_list;
std::vector<std::vector<uint64_t>> buffer_size_list;
std::vector<std::vector<std::string>> audio_format_list;
/*the currently selected gui option for a particular device*/
std::vector<double> current_sample_rate;
std::vector<uint64_t> current_buffer_size;
std::vector<std::string> current_audio_format;
/*the default gui option for a particular device*/
std::vector<double> default_sample_rate;
std::vector<uint64_t> default_buffer_size;
std::vector<std::string> default_audio_format;
std::vector<bool> _device_active;
std::vector<bool> _use_minimal_latency;
std::vector<bool> _use_optimal_format;
std::vector<bool> _use_device_timing;
uint32_t selected_device = -1;
bool unique_active_device = false;
Ui::AsioSelector *ui;
};
#endif // ASIOSELECTOR_H