HulaLoop
Simple cross-platform audio loopback and recording.
LinuxAudio.h
1 #ifndef HL_LINUX_AUDIO_H
2 #define HL_LINUX_AUDIO_H
3 
4 #include <alsa/asoundlib.h>
5 
6 #include <stdlib.h>
7 #include <cstdint>
8 #include <thread>
9 #include <vector>
10 
11 #include "hlaudio/internal/Device.h"
12 #include "hlaudio/internal/OSAudio.h"
13 
14 #ifndef ALSA_PCM_NEW_HW_PARAMS_API
15  #define ALSA_PCM_NEW_HW_PARAMS_API
16 #endif
17 
18 #define FRAME_TIME 512
19 
20 namespace hula
21 {
25  class LinuxAudio : public OSAudio {
26 
27  private:
28  int bitrate;
29  std::vector<Device *> iDevices;
30  std::vector<Device *> oDevices;
31 
32  public:
33  LinuxAudio();
34  ~LinuxAudio();
35  void capture();
36 
37  bool setActiveInputDevice(Device *device);
38  static void startPAVUControl();
39 
40  std::vector<Device *> getDevices(DeviceType type);
41 
42  bool checkDeviceParams(Device *device);
43  };
44 }
45 
46 #endif // HL_LINUX_AUDIO_H
Abstract class that defines the required components for OS specfic audio classes. ...
Definition: OSAudio.h:19
~LinuxAudio()
Destructor for LinuxAudio.
Definition: LinuxAudio.cpp:304
bool checkDeviceParams(Device *device)
Check with the hardware to ensure that the current audio settings are valid for the selected device...
Definition: LinuxAudio.cpp:124
std::vector< Device * > getDevices(DeviceType type)
Fetch devices of the specified type.
Definition: LinuxAudio.cpp:26
void capture()
Capture loop for LinuxAudio.
Definition: LinuxAudio.cpp:215
LinuxAudio()
Construct a new instance of LinuxAudio.
Definition: LinuxAudio.cpp:10
static void startPAVUControl()
Open the program Pulse Audio Volume Control to the Record tab.
Definition: LinuxAudio.cpp:195
An audio class that captures system wide audio on Linux.
Definition: LinuxAudio.h:25
Wrapper for OS specific device information.
Definition: Device.h:55
Wrapper around translation functions for Qt.
Definition: Controller.h:10
bool setActiveInputDevice(Device *device)
Override of OSAudio base method.
Definition: LinuxAudio.cpp:108
DeviceType
Denotes type of Device.
Definition: Device.h:18