HulaLoop
Simple cross-platform audio loopback and recording.
OSXAudio.h
1 #ifndef HL_OSX_AUDIO_H
2 #define HL_OSX_AUDIO_H
3 
4 #include <thread>
5 #include <vector>
6 
7 #include "hlaudio/internal/Device.h"
8 #include "hlaudio/internal/OSAudio.h"
9 #include "OSXDaemon/OSXDaemon.h"
10 
11 namespace hula
12 {
16  class OSXAudio : public OSAudio {
17  private:
18  OSXDaemon *osxDaemon;
19 
20  public:
21  OSXAudio();
22  virtual ~OSXAudio();
23 
24  void capture();
25  bool checkRates(Device *device);
26 
27  std::vector<Device *> getDevices(DeviceType type);
28 
29  static void test_capture(OSAudio *_this);
30  void setActiveOutputDevice(Device *device);
31  };
32 }
33 
34 #endif // END HL_OSX_AUDIO_H
virtual ~OSXAudio()
Deconstructs the OSXAudio instance.
Definition: OSXAudio.cpp:255
Abstract class that defines the required components for OS specfic audio classes. ...
Definition: OSAudio.h:19
std::vector< Device * > getDevices(DeviceType type)
Fetch devices of the specified type.
Definition: OSXAudio.cpp:160
bool checkRates(Device *device)
Checks the sampling rate and bit depth of the device.
Definition: OSXAudio.cpp:231
void setActiveOutputDevice(Device *device)
Set the selected output device and restart capture threads with new device.
Definition: OSXAudio.cpp:221
OSXAudio()
Constructs an instance of OSXAudio class.
Definition: OSXAudio.cpp:19
void capture()
Execution loop for loopback capture.
Definition: OSXAudio.cpp:70
Wrapper for OS specific device information.
Definition: Device.h:34
Definition: Controller.h:11
A audio class that captures system wide audio on OSX.
Definition: OSXAudio.h:16
static void test_capture(OSAudio *_this)
Static function in the current instance of the class to allow thread execution.
Definition: OSXAudio.cpp:207