Line data Source code
1 : #pragma once
2 :
3 : #include <string>
4 : #include <vector>
5 :
6 : #include "audio/backend/audio_device_info.h"
7 :
8 : namespace Amplitron {
9 :
10 : class IAudioEngine;
11 :
12 277 : class IAudioBackend {
13 : public:
14 823 : virtual ~IAudioBackend() = default;
15 :
16 : virtual bool initialize(IAudioEngine* engine) = 0;
17 : virtual void shutdown() = 0;
18 : virtual bool start() = 0;
19 : virtual void stop() = 0;
20 :
21 : virtual std::vector<AudioDeviceInfo> get_input_devices() const = 0;
22 : virtual std::vector<AudioDeviceInfo> get_output_devices() const = 0;
23 :
24 : virtual bool set_input_device(int device_index) = 0;
25 : virtual bool set_output_device(int device_index) = 0;
26 :
27 : virtual std::string get_input_device_name() const = 0;
28 : virtual std::string get_output_device_name() const = 0;
29 :
30 : virtual int get_sample_rate() const = 0;
31 : virtual int get_buffer_size() const = 0;
32 :
33 : virtual int get_input_device() const = 0;
34 : virtual int get_output_device() const = 0;
35 : };
36 :
37 : } // namespace Amplitron
|