From 4d00b92aabe56d3e9ffa91afd407cdb4f976b295 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Sat, 31 Mar 2018 16:49:39 +0200 Subject: Listen ma' we play a sine wave\! --- drumgizmo/output/coreaudio.h | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) (limited to 'drumgizmo/output/coreaudio.h') 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 #include +#include #include +#include #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; }; -- cgit v1.2.3