diff options
author | Bent Bisballe Nyeng <deva@aasimon.org> | 2018-03-31 16:49:39 +0200 |
---|---|---|
committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2019-04-12 19:22:48 +0200 |
commit | 4d00b92aabe56d3e9ffa91afd407cdb4f976b295 (patch) | |
tree | cfe58cbd44a4533d5a602e8b49a76aa8aa03ad47 /drumgizmo/output/coreaudio.h | |
parent | ca2fd1116ea82d51a11ad4b61b82c6a65c826069 (diff) |
Listen ma' we play a sine wave\!
Diffstat (limited to 'drumgizmo/output/coreaudio.h')
-rw-r--r-- | drumgizmo/output/coreaudio.h | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/drumgizmo/output/coreaudio.h b/drumgizmo/output/coreaudio.h index 3e3b728..731ba47 100644 --- a/drumgizmo/output/coreaudio.h +++ b/drumgizmo/output/coreaudio.h @@ -28,7 +28,9 @@ #include <audiotypes.h> #include <CoreAudio/CoreAudio.h> +#include <CoreServices/CoreServices.h> #include <AudioUnit/AudioUnit.h> +#include <AudioUnit/AUComponent.h> #include "audiooutputengine.h" @@ -52,7 +54,35 @@ public: private: AudioDeviceID device_id{kAudioDeviceUnknown}; - std::string uid; + std::string id; std::uint32_t frames{1024u}; std::uint32_t samplerate{44100u}; + AudioUnit au_hal; + AudioBufferList* input_list; + + // libao: +static OSStatus audioCallback (void *inRefCon, + AudioUnitRenderActionFlags *inActionFlags, + const AudioTimeStamp *inTimeStamp, + UInt32 inBusNumber, + UInt32 inNumberFrames, + AudioBufferList *ioData); + + AudioDeviceID outputDevice; + ComponentInstance outputAudioUnit; + int output_p; + + /* Keep track of whether the output stream has actually been + started/stopped */ + Boolean started; + Boolean isStopping; + + /* Our internal queue of samples waiting to be consumed by + CoreAudio */ + void *buffer; + unsigned int bufferByteCount; + unsigned int firstValidByteOffset; + unsigned int validByteCount; + + unsigned int buffer_time; }; |