this repo has no description
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

It compiles

+578 -169
+3 -2
src/CMakeLists.txt
··· 93 93 94 94 include_directories(AFTER 95 95 ${CMAKE_CURRENT_SOURCE_DIR}/DiskArbitration/include 96 - ${CMAKE_CURRENT_SOURCE_DIR}/CoreAudioOld/include 96 + ${CMAKE_CURRENT_SOURCE_DIR}/CoreAudio/include 97 97 ${CMAKE_CURRENT_SOURCE_DIR}/external/SmartCardServices/include 98 98 ${CMAKE_CURRENT_SOURCE_DIR}/login/include 99 99 ${CMAKE_CURRENT_SOURCE_DIR}/external/IOKitUser/include ··· 253 253 add_subdirectory(external/libtelnet) 254 254 add_subdirectory(external/remote_cmds) 255 255 add_subdirectory(external/IOKitUser) 256 - add_subdirectory(external/OpenAL) 256 + add_subdirectory(CoreAudio) 257 + #add_subdirectory(external/OpenAL) 257 258 add_subdirectory(external/python_modules) 258 259 add_subdirectory(SystemConfiguration) 259 260 #add_subdirectory(VideoDecodeAcceleration)
src/CoreAudio/AudioUnit/AUComponent.cpp src/CoreAudio/AudioToolbox/AUComponent.cpp
src/CoreAudio/AudioUnit/AudioOutputUnitComponent.cpp src/CoreAudio/AudioToolbox/AudioOutputUnitComponent.cpp
src/CoreAudio/AudioUnit/AudioQueue.cpp src/CoreAudio/AudioToolbox/AudioQueue.cpp
src/CoreAudio/AudioUnit/AudioQueueBase.cpp src/CoreAudio/AudioToolbox/AudioQueueBase.cpp
src/CoreAudio/AudioUnit/AudioQueueOutput.cpp src/CoreAudio/AudioToolbox/AudioQueueOutput.cpp
src/CoreAudio/AudioUnit/AudioUnit.cpp src/CoreAudio/AudioToolbox/AudioUnit.cpp
src/CoreAudio/AudioUnit/AudioUnitALSA.cpp src/CoreAudio/AudioToolbox/AudioUnitALSA.cpp
src/CoreAudio/AudioUnit/AudioUnitBase.cpp src/CoreAudio/AudioToolbox/AudioUnitBase.cpp
src/CoreAudio/AudioUnit/AudioUnitPA.cpp src/CoreAudio/AudioToolbox/AudioUnitPA.cpp
src/CoreAudio/AudioUnit/AudioUnitRenderer.cpp src/CoreAudio/AudioToolbox/AudioUnitRenderer.cpp
+4
src/CoreAudio/CMakeLists.txt
··· 1 + project(CoreAudio_root) 2 + 3 + add_subdirectory(CoreAudio) 4 + #add_subdirectory(AudioToolbox)
+6 -1
src/CoreAudio/CoreAudio/AudioHardware.cpp
··· 17 17 along with Darling. If not, see <http://www.gnu.org/licenses/>. 18 18 */ 19 19 20 - #include "AudioHardware.h" 20 + #include <CoreAudio/AudioHardware.h> 21 21 #include "AudioHardwareImpl.h" 22 22 #include <CoreServices/MacErrors.h> 23 23 #include <memory> ··· 148 148 } 149 149 150 150 OSStatus AudioHardwareDestroyAggregateDevice(AudioObjectID inDeviceID) 151 + { 152 + return unimpErr; 153 + } 154 + 155 + OSStatus AudioHardwareGetProperty(AudioHardwarePropertyID inPropId, UInt32* ioPropertyDataSize, void* outPropertyData) 151 156 { 152 157 return unimpErr; 153 158 }
+46 -4
src/CoreAudio/CoreAudio/AudioHardwareImpl.cpp
··· 20 20 #include "AudioHardwareImpl.h" 21 21 #include <typeinfo> 22 22 #include <iostream> 23 + #include <CoreServices/MacErrors.h> 23 24 24 25 AudioHardwareImpl::AudioHardwareImpl() 25 26 { ··· 44 45 return paramErr; 45 46 46 47 *outIOProcID = reinterpret_cast<AudioDeviceIOProcID>(m_nextProcId++); 47 - m_proc[*outIOProcID] = std::pair(inProc, inClientData); 48 + m_proc[*outIOProcID] = std::make_pair(inProc, inClientData); 48 49 49 50 return noErr; 50 51 } ··· 67 68 AudioHardwareStream* stream; 68 69 69 70 if (m_streams.find(inProcID) != m_streams.end()) 70 - return noErr; 71 + return paramErr; 71 72 72 73 stream = createStream(inProcID); 73 - m_streams[inProcID] = stream; 74 + m_streams.emplace(std::make_pair(inProcID, std::unique_ptr<AudioHardwareStream>(stream))); 74 75 75 76 // TODO: time 76 77 77 - return stream; 78 + return noErr; 78 79 } 79 80 80 81 OSStatus AudioHardwareImpl::stop(AudioDeviceIOProcID inProcID) ··· 86 87 m_streams.erase(it); 87 88 return noErr; 88 89 } 90 + 91 + bool AudioHardwareImpl::hasProperty(const AudioObjectPropertyAddress* address) 92 + { 93 + return false; 94 + } 95 + 96 + OSStatus AudioHardwareImpl::getPropertyDataSize(const AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize, 97 + const void* inQualifierData, UInt32* outDataSize) 98 + { 99 + return kAudioHardwareUnknownPropertyError; 100 + } 101 + 102 + OSStatus AudioHardwareImpl::isPropertySettable(const AudioObjectPropertyAddress* inAddress, Boolean* outIsSettable) 103 + { 104 + *outIsSettable = false; 105 + return kAudioHardwareUnknownPropertyError; 106 + } 107 + 108 + OSStatus AudioHardwareImpl::getPropertyData(const AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize, 109 + const void* inQualifierData, UInt32* ioDataSize, void* outData) 110 + { 111 + return kAudioHardwareUnknownPropertyError; 112 + } 113 + 114 + OSStatus AudioHardwareImpl::setPropertyData(const AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize, 115 + const void* inQualifierData, UInt32 inDataSize, const void* inData) 116 + { 117 + return kAudioHardwareUnknownPropertyError; 118 + } 119 + 120 + OSStatus AudioHardwareImpl::addPropertyListener(const AudioObjectPropertyAddress* inAddress, 121 + AudioObjectPropertyListenerProc inListener, void* inClientData) 122 + { 123 + return kAudioHardwareUnknownPropertyError; 124 + } 125 + 126 + OSStatus AudioHardwareImpl::removePropertyListener(const AudioObjectPropertyAddress* inAddress, 127 + AudioObjectPropertyListenerProc inListener, void* inClientData) 128 + { 129 + return kAudioHardwareUnknownPropertyError; 130 + }
+1 -1
src/CoreAudio/CoreAudio/AudioHardwareImpl.h
··· 71 71 std::map<AudioDeviceIOProcID, std::pair<AudioDeviceIOProc, void*>> m_proc; 72 72 int m_nextProcId = 1; 73 73 74 - std::map<AudioDeviceIOProcID, std::unique_ptr<AudioHardwareStream> m_streams; 74 + std::map<AudioDeviceIOProcID, std::unique_ptr<AudioHardwareStream>> m_streams; 75 75 }; 76 76 77 77 #endif /* AUDIOHARDWAREIMPL_H */
+23
src/CoreAudio/CoreAudio/CMakeLists.txt
··· 1 + project(CoreAudio) 2 + 3 + include_directories(BEFORE ${CMAKE_SOURCE_DIR}/src/external/libcxx/include ${CMAKE_CURRENT_BINARY_DIR}) 4 + 5 + set(coreaudio_sources 6 + AudioHardware.cpp 7 + AudioHardwareImpl.cpp 8 + AudioHardwareStream.cpp 9 + ) 10 + 11 + add_framework( 12 + FAT 13 + CURRENT_VERSION 14 + VERSION "A" 15 + 16 + SOURCES 17 + ${coreaudio_sources} 18 + 19 + DEPENDENCIES 20 + system 21 + cxx 22 + CoreFoundation 23 + )
+12 -2
src/CoreAudio/include/AudioToolbox/AUGraph.h
··· 1 1 #ifndef AUGRAPH_H 2 2 #define AUGRAPH_H 3 - #include <AudioUnit/AudioUnit.h> 4 - #include <AudioUnit/AudioUnitProperties.h> 3 + #include <AudioToolbox/AudioUnit.h> 4 + #include <AudioToolbox/AudioUnitProperties.h> 5 5 6 6 #ifdef __cplusplus 7 7 extern "C" { ··· 40 40 }; 41 41 typedef struct AUNodeInteraction AUNodeInteraction; 42 42 43 + typedef void 44 + (*AudioUnitPropertyListenerProc)(void * inRefCon, 45 + AudioUnit inUnit, 46 + AudioUnitPropertyID inID, 47 + AudioUnitScope inScope, 48 + AudioUnitElement inElement); 49 + 43 50 OSStatus AUGraphAddNode(AUGraph inGraph, const AudioComponentDescription *inDescription, AUNode *outNode); 51 + OSStatus AUGraphNewNode(AUGraph inGraph, const struct ComponentDescription *inDescription, UInt32 inClassDataSize, const void *inClassData, AUNode *outNode); 44 52 OSStatus AUGraphAddRenderNotify(AUGraph inGraph, AURenderCallback inCallback, void *inRefCon); 45 53 OSStatus AUGraphClearConnections(AUGraph inGraph); 46 54 OSStatus AUGraphClose(AUGraph inGraph); ··· 69 77 OSStatus AUGraphUpdate(AUGraph inGraph, Boolean *outIsUpdated); 70 78 OSStatus DisposeAUGraph(AUGraph inGraph); 71 79 OSStatus NewAUGraph(AUGraph *outGraph); 80 + OSStatus AUGraphGetNodeInfo(AUGraph inGraph, AUNode inNode, struct ComponentDescription *outDescription, UInt32 *outClassDataSize, void * _Nullable *outClassData, AudioUnit _Nullable *outAudioUnit); 81 + OSStatus AudioUnitAddPropertyListener(AudioUnit inUnit, AudioUnitPropertyID inID, AudioUnitPropertyListenerProc inProc, void *inProcUserData); 72 82 73 83 #ifdef __cplusplus 74 84 }
+42
src/CoreAudio/include/AudioToolbox/AudioFile.h
··· 3 3 4 4 #include <CoreServices/MacTypes.h> 5 5 #include <CoreFoundation/CFURL.h> 6 + #include <CoreAudio/AudioHardware.h> 6 7 7 8 #define kAFInfoDictionary_Artist "artist" 8 9 #define kAFInfoDictionary_Album "album" ··· 58 59 kAudioFile3GP2Type = '3gp2', 59 60 kAudioFileAMRType = 'amrf' 60 61 }; 62 + 63 + enum 64 + { 65 + kAudioFilePropertyFileFormat = 'ffmt', 66 + kAudioFilePropertyDataFormat = 'dfmt', 67 + kAudioFilePropertyIsOptimized = 'optm', 68 + kAudioFilePropertyMagicCookieData = 'mgic', 69 + kAudioFilePropertyAudioDataByteCount = 'bcnt', 70 + kAudioFilePropertyAudioDataPacketCount = 'pcnt', 71 + kAudioFilePropertyMaximumPacketSize = 'psze', 72 + kAudioFilePropertyDataOffset = 'doff', 73 + kAudioFilePropertyChannelLayout = 'cmap', 74 + kAudioFilePropertyDeferSizeUpdates = 'dszu', 75 + kAudioFilePropertyDataFormatName = 'fnme', 76 + kAudioFilePropertyMarkerList = 'mkls', 77 + kAudioFilePropertyRegionList = 'rgls', 78 + kAudioFilePropertyPacketToFrame = 'pkfr', 79 + kAudioFilePropertyFrameToPacket = 'frpk', 80 + kAudioFilePropertyPacketToByte = 'pkby', 81 + kAudioFilePropertyByteToPacket = 'bypk', 82 + kAudioFilePropertyChunkIDs = 'chid', 83 + kAudioFilePropertyInfoDictionary = 'info', 84 + kAudioFilePropertyPacketTableInfo = 'pnfo', 85 + kAudioFilePropertyFormatList = 'flst', 86 + kAudioFilePropertyPacketSizeUpperBound = 'pkub', 87 + kAudioFilePropertyReserveDuration = 'rsrv', 88 + kAudioFilePropertyEstimatedDuration = 'edur', 89 + kAudioFilePropertyBitRate = 'brat', 90 + kAudioFilePropertyID3Tag = 'id3t', 91 + kAudioFilePropertySourceBitDepth = 'sbtd', 92 + kAudioFilePropertyAlbumArtwork = 'aart', 93 + kAudioFilePropertyAudioTrackCount = 'atct', 94 + kAudioFilePropertyUseAudioTrack = 'uatk', 95 + }; 61 96 typedef UInt32 AudioFileTypeID; 62 97 63 98 struct AudioFileTypeAndFormatID ··· 73 108 74 109 class AudioFileImpl; 75 110 typedef AudioFileImpl* AudioFileID; 111 + typedef SInt8 AudioFilePermissions; 112 + typedef UInt32 AudioFilePropertyID; 76 113 77 114 extern "C" { 78 115 116 + OSStatus AudioFileOpen(const struct FSRef *inFileRef, AudioFilePermissions inPermissions, AudioFileTypeID inFileTypeHint, AudioFileID _Nullable *outAudioFile); 79 117 OSStatus AudioFileOpenURL(CFURLRef inFileRef, SInt8 inPermissions, AudioFileTypeID inFileTypeHint, AudioFileID* outAudioFile); 80 118 OSStatus AudioFileOpenWithCallbacks(void* opaque, AudioFile_ReadProc inReadFunc, AudioFile_WriteProc inWriteFunc, AudioFile_GetSizeProc inGetSizeFunc, AudioFile_SetSizeProc inSetSizeFunc, AudioFileTypeID inFileTypeHint, AudioFileID* outAudioFile); 81 119 OSStatus AudioFileClose(AudioFileID inAudioFile); 120 + 121 + OSStatus AudioFileReadBytes(AudioFileID inAudioFile, Boolean inUseCache, SInt64 inStartingByte, UInt32 *ioNumBytes, void *outBuffer); 122 + OSStatus AudioFileGetProperty(AudioFileID inAudioFile, AudioFilePropertyID inPropertyID, UInt32 *ioDataSize, void *outPropertyData); 123 + OSStatus AudioFileSetProperty(AudioFileID inAudioFile, AudioFilePropertyID inPropertyID, UInt32 inDataSize, const void *inPropertyData); 82 124 83 125 } 84 126
+104 -2
src/CoreAudio/include/AudioToolbox/AudioQueue.h
··· 1 - #ifndef AUDIOQUEUE_H 2 - #define AUDIOQUEUE_H 1 + #ifndef AUDIOBUFFER_H 2 + #define AUDIOBUFFER_H 3 + #include <CoreAudio/CoreAudioTypes.h> 4 + #include <CoreServices/MacTypes.h> 5 + #include <CoreFoundation/CFString.h> 6 + #include <CoreFoundation/CFRunLoop.h> 7 + 8 + #ifdef __cplusplus 9 + extern "C" { 10 + #endif 11 + 12 + typedef UInt32 AudioQueuePropertyID; 13 + typedef UInt32 AudioQueueParameterID; 14 + typedef Float32 AudioQueueParameterValue; 3 15 16 + struct AudioQueueParameterEvent 17 + { 18 + AudioQueueParameterID mID; 19 + AudioQueueParameterValue mValue; 20 + }; 4 21 22 + class AudioQueue; 23 + typedef AudioQueue* AudioQueueRef; 5 24 25 + struct AudioQueueBuffer 26 + { 27 + const UInt32 mAudioDataBytesCapacity; 28 + void* mAudioData; 29 + UInt32 mAudioDataByteSize; 30 + void* mUserData; 31 + 32 + UInt32 mPacketDescriptionCapacity; 33 + AudioStreamPacketDescription* mPacketDescriptions; 34 + UInt32 mPacketDescriptionCount; 35 + }; 36 + typedef AudioQueueBuffer* AudioQueueBufferRef; 37 + 38 + OSStatus AudioQueueStart(AudioQueueRef inAQ, const AudioTimeStamp *inStartTime); 39 + OSStatus AudioQueuePrime(AudioQueueRef inAQ, UInt32 inNumberOfFramesToPrepare, UInt32 *outNumberOfFramesPrepared); 40 + OSStatus AudioQueueFlush(AudioQueueRef inAQ); 41 + OSStatus AudioQueueStop(AudioQueueRef inAQ, Boolean inImmediate); 42 + OSStatus AudioQueuePause(AudioQueueRef inAQ); 43 + OSStatus AudioQueueReset(AudioQueueRef inAQ); 44 + 45 + typedef void (*AudioQueueOutputCallback)(void* inUserData, AudioQueueRef inAQ, 46 + AudioQueueBufferRef inBuffer); 47 + OSStatus AudioQueueNewOutput(const AudioStreamBasicDescription *inFormat, 48 + AudioQueueOutputCallback inCallbackProc, 49 + void *inUserData, CFRunLoopRef inCallbackRunLoop, 50 + CFStringRef inCallbackRunLoopMode, UInt32 inFlags, 51 + AudioQueueRef *outAQ); 52 + 53 + typedef void (*AudioQueueInputCallback)(void* inUserData, AudioQueueRef inAQ, 54 + AudioQueueBufferRef inBuffer, const AudioTimeStamp* inStartTime, 55 + UInt32 inNumberPacketDescriptions, 56 + const AudioStreamPacketDescription* inPacketDescs); 57 + OSStatus AudioQueueNewInput(const AudioStreamBasicDescription *inFormat, 58 + AudioQueueInputCallback inCallbackProc, 59 + void *inUserData, CFRunLoopRef inCallbackRunLoop, 60 + CFStringRef inCallbackRunLoopMode, UInt32 inFlags, 61 + AudioQueueRef *outAQ); 62 + 63 + OSStatus AudioQueueDispose(AudioQueueRef inAQ, Boolean inImmediate); 64 + 65 + OSStatus AudioQueueGetParameter(AudioQueueRef inAQ, AudioQueueParameterID inParamID, AudioQueueParameterValue *outValue); 66 + OSStatus AudioQueueSetParameter(AudioQueueRef inAQ, AudioQueueParameterID inParamID, AudioQueueParameterValue inValue); 67 + 68 + OSStatus AudioQueueGetProperty(AudioQueueRef inAQ, AudioQueuePropertyID inID, void *outData, UInt32 *ioDataSize); 69 + OSStatus AudioQueueSetProperty(AudioQueueRef inAQ, AudioQueuePropertyID inID, const void *inData, UInt32 inDataSize); 70 + OSStatus AudioQueueGetPropertySize(AudioQueueRef inAQ, AudioQueuePropertyID inID, UInt32 *outDataSize); 71 + 72 + typedef void (*AudioQueuePropertyListenerProc)(void* inUserData, AudioQueueRef inAQ, AudioQueuePropertyID inID); 73 + OSStatus AudioQueueAddPropertyListener(AudioQueueRef inAQ, AudioQueuePropertyID inID, AudioQueuePropertyListenerProc inProc, void *inUserData); 74 + OSStatus AudioQueueRemovePropertyListener(AudioQueueRef inAQ, AudioQueuePropertyID inID, AudioQueuePropertyListenerProc inProc, void *inUserData); 75 + 76 + OSStatus AudioQueueSetOfflineRenderFormat(AudioQueueRef inAQ, const AudioStreamBasicDescription *inFormat, const AudioChannelLayout *inLayout); 77 + OSStatus AudioQueueOfflineRender(AudioQueueRef inAQ, const AudioTimeStamp *inTimestamp, AudioQueueBufferRef ioBuffer, UInt32 inNumberFrames); 78 + 79 + OSStatus AudioQueueAllocateBuffer(AudioQueueRef inAQ, UInt32 inBufferByteSize, AudioQueueBufferRef *outBuffer); 80 + OSStatus AudioQueueAllocateBufferWithPacketDescriptions(AudioQueueRef inAQ, 81 + UInt32 inBufferByteSize, UInt32 inNumberPacketDescriptions, 82 + AudioQueueBufferRef *outBuffer); 83 + OSStatus AudioQueueFreeBuffer(AudioQueueRef inAQ, AudioQueueBufferRef inBuffer); 84 + OSStatus AudioQueueEnqueueBuffer(AudioQueueRef inAQ, AudioQueueBufferRef inBuffer, 85 + UInt32 inNumPacketDescs, const AudioStreamPacketDescription *inPacketDescs); 86 + OSStatus AudioQueueEnqueueBufferWithParameters(AudioQueueRef inAQ, 87 + AudioQueueBufferRef inBuffer, UInt32 inNumPacketDescs, 88 + const AudioStreamPacketDescription *inPacketDescs, 89 + UInt32 inTrimFramesAtStart, UInt32 inTrimFramesAtEnd, 90 + UInt32 inNumParamValues, const AudioQueueParameterEvent *inParamValues, 91 + const AudioTimeStamp *inStartTime, AudioTimeStamp *outActualStartTime); 92 + 93 + class AudioQueueTimeline; 94 + typedef AudioQueueTimeline* AudioQueueTimelineRef; 95 + 96 + OSStatus AudioQueueCreateTimeline(AudioQueueRef inAQ, AudioQueueTimelineRef *outTimeline); 97 + OSStatus AudioQueueDisposeTimeline(AudioQueueRef inAQ, AudioQueueTimelineRef inTimeline); 98 + OSStatus AudioQueueDeviceGetCurrentTime(AudioQueueRef inAQ, AudioTimeStamp *outTimeStamp); 99 + OSStatus AudioQueueDeviceGetNearestStartTime(AudioQueueRef inAQ, AudioTimeStamp *ioRequestedStartTime, UInt32 inFlags); 100 + OSStatus AudioQueueDeviceTranslateTime(AudioQueueRef inAQ, const AudioTimeStamp *inTime, AudioTimeStamp *outTime); 101 + OSStatus AudioQueueGetCurrentTime(AudioQueueRef inAQ, AudioQueueTimelineRef inTimeline, AudioTimeStamp *outTimeStamp, Boolean *outTimelineDiscontinuity); 102 + 103 + #ifdef __cplusplus 104 + } 6 105 #endif 106 + 107 + #endif /* AUDIOBUFFER_H */ 108 +
+4
src/CoreAudio/include/AudioToolbox/AudioToolbox.h
··· 6 6 #include <AudioToolbox/AudioConverter.h> 7 7 #include <AudioToolbox/AUGraph.h> 8 8 9 + // OpenAL expects this 10 + #include <stdlib.h> 11 + #include <string.h> 12 + 9 13 #endif
+47
src/CoreAudio/include/AudioToolbox/AudioUnit.h
··· 1 + #ifndef AUDIOUNIT_H 2 + #define AUDIOUNIT_H 3 + #include <MacTypes.h> 4 + #include <CoreAudio/CoreAudioTypes.h> 5 + #include "AUComponent.h" 6 + 7 + typedef AudioComponentInstance AudioUnit; 8 + typedef UInt32 AudioUnitRenderActionFlags; 9 + typedef UInt32 AudioUnitElement; 10 + typedef UInt32 AudioUnitScope; 11 + typedef UInt32 AudioUnitPropertyID; 12 + 13 + typedef OSStatus (*AURenderCallback) (void *inRefCon, AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, UInt32 inBusNumber, UInt32 inNumberFrames, AudioBufferList *ioData); 14 + 15 + enum { 16 + kAudioUnitRenderAction_PreRender = (1 << 2), 17 + kAudioUnitRenderAction_PostRender = (1 << 3), 18 + kAudioUnitRenderAction_OutputIsSilence = (1 << 4), 19 + kAudioOfflineUnitRenderAction_Preflight = (1 << 5), 20 + kAudioOfflineUnitRenderAction_Render = (1 << 6), 21 + kAudioOfflineUnitRenderAction_Complete = (1 << 7), 22 + kAudioUnitRenderAction_PostRenderError = (1 << 8), 23 + kAudioUnitRenderAction_DoNotCheckRenderArgs = (1 << 9) 24 + }; 25 + 26 + extern "C" { 27 + 28 + OSStatus AudioUnitInitialize(AudioUnit inUnit); 29 + OSStatus AudioUnitUninitialize(AudioUnit inUnit); 30 + 31 + OSStatus AudioUnitAddRenderNotify(AudioUnit inUnit, AURenderCallback inProc, void* opaque); 32 + OSStatus AudioUnitRemoveRenderNotify(AudioUnit inUnit, AURenderCallback inProc, void* opaque); 33 + 34 + OSStatus AudioUnitRender(AudioUnit inUnit, AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, UInt32 inOutputBusNumber, UInt32 inNumberFrames, AudioBufferList *ioData); 35 + OSStatus AudioUnitReset(AudioUnit inUnit, AudioUnitScope inScope, AudioUnitElement inElement); 36 + 37 + OSStatus AudioUnitGetProperty(AudioUnit inUnit, AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, void* outData, UInt32 *ioDataSize); 38 + OSStatus AudioUnitGetPropertyInfo(AudioUnit inUnit, AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, UInt32 *outDataSize, Boolean *outWritable); 39 + OSStatus AudioUnitSetProperty(AudioUnit inUnit, AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, const void *inData, UInt32 inDataSize); 40 + 41 + OSStatus AudioOutputUnitStart(AudioUnit inUnit); 42 + OSStatus AudioOutputUnitStop(AudioUnit inUnit); 43 + 44 + } 45 + 46 + #endif 47 +
+15 -1
src/CoreAudio/include/AudioUnit/AUComponent.h src/CoreAudio/include/AudioToolbox/AUComponent.h
··· 3 3 #include <MacTypes.h> 4 4 #include <CoreServices/Components.h> 5 5 #include <CoreFoundation/CFString.h> 6 + #include <AudioToolbox/AUGraph.h> 6 7 7 8 class AudioUnitComponent; 8 9 9 10 typedef Component AudioComponent; 10 - typedef AudioUnitComponent* AudioComponentInstance; 11 + typedef ComponentInstance AudioComponentInstance; 11 12 typedef ComponentDescription AudioComponentDescription; 12 13 13 14 enum ··· 21 22 kAudioUnitType_Panner = 'aupn', 22 23 kAudioUnitType_Generator = 'augn', 23 24 kAudioUnitType_OfflineEffect = 'auol' 25 + }; 26 + 27 + enum 28 + { 29 + kAudioUnitSubType_HALOutput = 'ahal', 30 + kAudioUnitSubType_DefaultOutput = 'def ', 31 + kAudioUnitSubType_SystemOutput = 'sys ', 32 + kAudioUnitSubType_3DMixer = '3dmx', 33 + }; 34 + 35 + enum 36 + { 37 + kAudioUnitManufacturer_Apple = 'appl', 24 38 }; 25 39 26 40 extern "C" {
src/CoreAudio/include/AudioUnit/AudioOutputUnitComponent.h src/CoreAudio/include/AudioToolbox/AudioOutputUnitComponent.h
-108
src/CoreAudio/include/AudioUnit/AudioQueue.h
··· 1 - #ifndef AUDIOBUFFER_H 2 - #define AUDIOBUFFER_H 3 - #include <CoreAudio/CoreAudioTypes.h> 4 - #include <CoreServices/MacTypes.h> 5 - #include <CoreFoundation/CFString.h> 6 - #include <CoreFoundation/CFRunLoop.h> 7 - 8 - #ifdef __cplusplus 9 - extern "C" { 10 - #endif 11 - 12 - typedef UInt32 AudioQueuePropertyID; 13 - typedef UInt32 AudioQueueParameterID; 14 - typedef Float32 AudioQueueParameterValue; 15 - 16 - struct AudioQueueParameterEvent 17 - { 18 - AudioQueueParameterID mID; 19 - AudioQueueParameterValue mValue; 20 - }; 21 - 22 - class AudioQueue; 23 - typedef AudioQueue* AudioQueueRef; 24 - 25 - struct AudioQueueBuffer 26 - { 27 - const UInt32 mAudioDataBytesCapacity; 28 - void* mAudioData; 29 - UInt32 mAudioDataByteSize; 30 - void* mUserData; 31 - 32 - UInt32 mPacketDescriptionCapacity; 33 - AudioStreamPacketDescription* mPacketDescriptions; 34 - UInt32 mPacketDescriptionCount; 35 - }; 36 - typedef AudioQueueBuffer* AudioQueueBufferRef; 37 - 38 - OSStatus AudioQueueStart(AudioQueueRef inAQ, const AudioTimeStamp *inStartTime); 39 - OSStatus AudioQueuePrime(AudioQueueRef inAQ, UInt32 inNumberOfFramesToPrepare, UInt32 *outNumberOfFramesPrepared); 40 - OSStatus AudioQueueFlush(AudioQueueRef inAQ); 41 - OSStatus AudioQueueStop(AudioQueueRef inAQ, Boolean inImmediate); 42 - OSStatus AudioQueuePause(AudioQueueRef inAQ); 43 - OSStatus AudioQueueReset(AudioQueueRef inAQ); 44 - 45 - typedef void (*AudioQueueOutputCallback)(void* inUserData, AudioQueueRef inAQ, 46 - AudioQueueBufferRef inBuffer); 47 - OSStatus AudioQueueNewOutput(const AudioStreamBasicDescription *inFormat, 48 - AudioQueueOutputCallback inCallbackProc, 49 - void *inUserData, CFRunLoopRef inCallbackRunLoop, 50 - CFStringRef inCallbackRunLoopMode, UInt32 inFlags, 51 - AudioQueueRef *outAQ); 52 - 53 - typedef void (*AudioQueueInputCallback)(void* inUserData, AudioQueueRef inAQ, 54 - AudioQueueBufferRef inBuffer, const AudioTimeStamp* inStartTime, 55 - UInt32 inNumberPacketDescriptions, 56 - const AudioStreamPacketDescription* inPacketDescs); 57 - OSStatus AudioQueueNewInput(const AudioStreamBasicDescription *inFormat, 58 - AudioQueueInputCallback inCallbackProc, 59 - void *inUserData, CFRunLoopRef inCallbackRunLoop, 60 - CFStringRef inCallbackRunLoopMode, UInt32 inFlags, 61 - AudioQueueRef *outAQ); 62 - 63 - OSStatus AudioQueueDispose(AudioQueueRef inAQ, Boolean inImmediate); 64 - 65 - OSStatus AudioQueueGetParameter(AudioQueueRef inAQ, AudioQueueParameterID inParamID, AudioQueueParameterValue *outValue); 66 - OSStatus AudioQueueSetParameter(AudioQueueRef inAQ, AudioQueueParameterID inParamID, AudioQueueParameterValue inValue); 67 - 68 - OSStatus AudioQueueGetProperty(AudioQueueRef inAQ, AudioQueuePropertyID inID, void *outData, UInt32 *ioDataSize); 69 - OSStatus AudioQueueSetProperty(AudioQueueRef inAQ, AudioQueuePropertyID inID, const void *inData, UInt32 inDataSize); 70 - OSStatus AudioQueueGetPropertySize(AudioQueueRef inAQ, AudioQueuePropertyID inID, UInt32 *outDataSize); 71 - 72 - typedef void (*AudioQueuePropertyListenerProc)(void* inUserData, AudioQueueRef inAQ, AudioQueuePropertyID inID); 73 - OSStatus AudioQueueAddPropertyListener(AudioQueueRef inAQ, AudioQueuePropertyID inID, AudioQueuePropertyListenerProc inProc, void *inUserData); 74 - OSStatus AudioQueueRemovePropertyListener(AudioQueueRef inAQ, AudioQueuePropertyID inID, AudioQueuePropertyListenerProc inProc, void *inUserData); 75 - 76 - OSStatus AudioQueueSetOfflineRenderFormat(AudioQueueRef inAQ, const AudioStreamBasicDescription *inFormat, const AudioChannelLayout *inLayout); 77 - OSStatus AudioQueueOfflineRender(AudioQueueRef inAQ, const AudioTimeStamp *inTimestamp, AudioQueueBufferRef ioBuffer, UInt32 inNumberFrames); 78 - 79 - OSStatus AudioQueueAllocateBuffer(AudioQueueRef inAQ, UInt32 inBufferByteSize, AudioQueueBufferRef *outBuffer); 80 - OSStatus AudioQueueAllocateBufferWithPacketDescriptions(AudioQueueRef inAQ, 81 - UInt32 inBufferByteSize, UInt32 inNumberPacketDescriptions, 82 - AudioQueueBufferRef *outBuffer); 83 - OSStatus AudioQueueFreeBuffer(AudioQueueRef inAQ, AudioQueueBufferRef inBuffer); 84 - OSStatus AudioQueueEnqueueBuffer(AudioQueueRef inAQ, AudioQueueBufferRef inBuffer, 85 - UInt32 inNumPacketDescs, const AudioStreamPacketDescription *inPacketDescs); 86 - OSStatus AudioQueueEnqueueBufferWithParameters(AudioQueueRef inAQ, 87 - AudioQueueBufferRef inBuffer, UInt32 inNumPacketDescs, 88 - const AudioStreamPacketDescription *inPacketDescs, 89 - UInt32 inTrimFramesAtStart, UInt32 inTrimFramesAtEnd, 90 - UInt32 inNumParamValues, const AudioQueueParameterEvent *inParamValues, 91 - const AudioTimeStamp *inStartTime, AudioTimeStamp *outActualStartTime); 92 - 93 - class AudioQueueTimeline; 94 - typedef AudioQueueTimeline* AudioQueueTimelineRef; 95 - 96 - OSStatus AudioQueueCreateTimeline(AudioQueueRef inAQ, AudioQueueTimelineRef *outTimeline); 97 - OSStatus AudioQueueDisposeTimeline(AudioQueueRef inAQ, AudioQueueTimelineRef inTimeline); 98 - OSStatus AudioQueueDeviceGetCurrentTime(AudioQueueRef inAQ, AudioTimeStamp *outTimeStamp); 99 - OSStatus AudioQueueDeviceGetNearestStartTime(AudioQueueRef inAQ, AudioTimeStamp *ioRequestedStartTime, UInt32 inFlags); 100 - OSStatus AudioQueueDeviceTranslateTime(AudioQueueRef inAQ, const AudioTimeStamp *inTime, AudioTimeStamp *outTime); 101 - OSStatus AudioQueueGetCurrentTime(AudioQueueRef inAQ, AudioQueueTimelineRef inTimeline, AudioTimeStamp *outTimeStamp, Boolean *outTimelineDiscontinuity); 102 - 103 - #ifdef __cplusplus 104 - } 105 - #endif 106 - 107 - #endif /* AUDIOBUFFER_H */ 108 -
src/CoreAudio/include/AudioUnit/AudioQueueBase.h src/CoreAudio/include/AudioToolbox/AudioQueueBase.h
src/CoreAudio/include/AudioUnit/AudioQueueOutput.h src/CoreAudio/include/AudioToolbox/AudioQueueOutput.h
+1 -47
src/CoreAudio/include/AudioUnit/AudioUnit.h
··· 1 - #ifndef AUDIOUNIT_H 2 - #define AUDIOUNIT_H 3 - #include <MacTypes.h> 4 - #include <CoreAudio/CoreAudioTypes.h> 5 - #include "AUComponent.h" 6 - 7 - typedef AudioComponentInstance AudioUnit; 8 - typedef UInt32 AudioUnitRenderActionFlags; 9 - typedef UInt32 AudioUnitElement; 10 - typedef UInt32 AudioUnitScope; 11 - typedef UInt32 AudioUnitPropertyID; 12 - 13 - typedef OSStatus (*AURenderCallback) (void *inRefCon, AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, UInt32 inBusNumber, UInt32 inNumberFrames, AudioBufferList *ioData); 14 - 15 - enum { 16 - kAudioUnitRenderAction_PreRender = (1 << 2), 17 - kAudioUnitRenderAction_PostRender = (1 << 3), 18 - kAudioUnitRenderAction_OutputIsSilence = (1 << 4), 19 - kAudioOfflineUnitRenderAction_Preflight = (1 << 5), 20 - kAudioOfflineUnitRenderAction_Render = (1 << 6), 21 - kAudioOfflineUnitRenderAction_Complete = (1 << 7), 22 - kAudioUnitRenderAction_PostRenderError = (1 << 8), 23 - kAudioUnitRenderAction_DoNotCheckRenderArgs = (1 << 9) 24 - }; 25 - 26 - extern "C" { 27 - 28 - OSStatus AudioUnitInitialize(AudioUnit inUnit); 29 - OSStatus AudioUnitUninitialize(AudioUnit inUnit); 30 - 31 - OSStatus AudioUnitAddRenderNotify(AudioUnit inUnit, AURenderCallback inProc, void* opaque); 32 - OSStatus AudioUnitRemoveRenderNotify(AudioUnit inUnit, AURenderCallback inProc, void* opaque); 33 - 34 - OSStatus AudioUnitRender(AudioUnit inUnit, AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, UInt32 inOutputBusNumber, UInt32 inNumberFrames, AudioBufferList *ioData); 35 - OSStatus AudioUnitReset(AudioUnit inUnit, AudioUnitScope inScope, AudioUnitElement inElement); 36 - 37 - OSStatus AudioUnitGetProperty(AudioUnit inUnit, AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, void* outData, UInt32 *ioDataSize); 38 - OSStatus AudioUnitGetPropertyInfo(AudioUnit inUnit, AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, UInt32 *outDataSize, Boolean *outWritable); 39 - OSStatus AudioUnitSetProperty(AudioUnit inUnit, AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, const void *inData, UInt32 inDataSize); 40 - 41 - OSStatus AudioOutputUnitStart(AudioUnit inUnit); 42 - OSStatus AudioOutputUnitStop(AudioUnit inUnit); 43 - 44 - } 45 - 46 - #endif 47 - 1 + #include <AudioToolbox/AudioUnit.h>
src/CoreAudio/include/AudioUnit/AudioUnitALSA.h src/CoreAudio/include/AudioToolbox/AudioUnitALSA.h
src/CoreAudio/include/AudioUnit/AudioUnitBase.h src/CoreAudio/include/AudioToolbox/AudioUnitBase.h
src/CoreAudio/include/AudioUnit/AudioUnitPA.h src/CoreAudio/include/AudioToolbox/AudioUnitPA.h
+49
src/CoreAudio/include/AudioUnit/AudioUnitProperties.h src/CoreAudio/include/AudioToolbox/AudioUnitProperties.h
··· 52 52 kAudioUnitProperty_ParameterHistoryInfo = 53 53 53 }; 54 54 55 + enum 56 + { 57 + kSpatializationAlgorithm_EqualPowerPanning = 0, 58 + kSpatializationAlgorithm_SphericalHead, 59 + kSpatializationAlgorithm_HRTF, 60 + kSpatializationAlgorithm_SoundField, 61 + kSpatializationAlgorithm_VectorBasedPanning = 4, 62 + kSpatializationAlgorithm_StereoPassThrough, 63 + kSpatializationAlgorithm_HRTFHQ, 64 + }; 65 + 66 + enum 67 + { 68 + k3DMixerRenderingFlags_InterAuralDelay = (1L << 0), 69 + k3DMixerRenderingFlags_DopplerShift = (1L << 1), 70 + k3DMixerRenderingFlags_DistanceAttenuation = (1L << 2), 71 + k3DMixerRenderingFlags_DistanceFilter = (1L << 3), 72 + k3DMixerRenderingFlags_DistanceDiffusion = (1L << 4), 73 + k3DMixerRenderingFlags_LinearDistanceAttenuation = (1L << 5), 74 + k3DMixerRenderingFlags_ConstantReverbBlend = (1L << 6) 75 + }; 76 + 77 + enum 78 + { 79 + kAudioUnitProperty_3DMixerDistanceParams = 3010, 80 + kAudioUnitProperty_3DMixerAttenuationCurve = 3013, 81 + kAudioUnitProperty_DopplerShift = 3002, 82 + kAudioUnitProperty_3DMixerRenderingFlags = 3003, 83 + kAudioUnitProperty_3DMixerDistanceAtten = 3004, 84 + kAudioUnitProperty_ReverbPreset = 3012, 85 + }; 86 + 87 + enum 88 + { 89 + kAudioUnitProperty_ReverbRoomType = 10, 90 + kAudioUnitProperty_UsesInternalReverb = 1005, 91 + kAudioUnitProperty_SpatializationAlgorithm = 3000, 92 + kAudioUnitProperty_SpatialMixerDistanceParams = 3010, 93 + kAudioUnitProperty_SpatialMixerAttenuationCurve = 3013, 94 + kAudioUnitProperty_SpatialMixerRenderingFlags = 3003, 95 + }; 96 + 97 + typedef struct MixerDistanceParams { 98 + Float32 mReferenceDistance; 99 + Float32 mMaxDistance; 100 + Float32 mMaxAttenuation; 101 + } MixerDistanceParams; 102 + 103 + 55 104 struct AURenderCallbackStruct 56 105 { 57 106 AURenderCallback inputProc;
src/CoreAudio/include/AudioUnit/AudioUnitRenderer.h src/CoreAudio/include/AudioToolbox/AudioUnitRenderer.h
+103 -1
src/CoreAudio/include/CoreAudio/AudioHardware.h
··· 7 7 8 8 #include <CoreAudio/CoreAudioTypes.h> 9 9 #include <CoreAudio/AudioHardwareBase.h> 10 + #include <CoreFoundation/CFDictionary.h> 11 + #include <dispatch/dispatch.h> 10 12 11 13 enum 12 14 { 13 - kAudioObjectSystemObject = 1 15 + kAudioObjectUnknown = 0, 16 + kAudioObjectSystemObject = 1, 14 17 }; 15 18 16 19 typedef OSStatus (*AudioObjectPropertyListenerProc)(AudioObjectID inObjectID, ··· 22 25 const AudioObjectPropertyAddress* inAddresses); 23 26 #endif 24 27 28 + typedef AudioObjectID AudioDeviceID; 29 + 30 + enum 31 + { 32 + kAudioDeviceUnknown = kAudioObjectUnknown, 33 + }; 34 + 35 + enum 36 + { 37 + kAudioObjectPropertyCreator = 'oplg', 38 + kAudioObjectPropertyListenerAdded = 'lisa', 39 + kAudioObjectPropertyListenerRemoved = 'lisr', 40 + kAudioHardwarePropertyDevices = 'dev#', 41 + kAudioHardwarePropertyDefaultInputDevice = 'dIn ', 42 + kAudioHardwarePropertyDefaultOutputDevice = 'dOut', 43 + kAudioHardwarePropertyDefaultSystemOutputDevice = 'sOut', 44 + kAudioHardwarePropertyTranslateUIDToDevice = 'uidd', 45 + kAudioHardwarePropertyMixStereoToMono = 'stmo', 46 + kAudioHardwarePropertyPlugInList = 'plg#', 47 + kAudioHardwarePropertyTranslateBundleIDToPlugIn = 'bidp', 48 + kAudioHardwarePropertyTransportManagerList = 'tmg#', 49 + kAudioHardwarePropertyTranslateBundleIDToTransportManager = 'tmbi', 50 + kAudioHardwarePropertyBoxList = 'box#', 51 + kAudioHardwarePropertyTranslateUIDToBox = 'uidb', 52 + kAudioHardwarePropertyClockDeviceList = 'clk#', 53 + kAudioHardwarePropertyTranslateUIDToClockDevice = 'uidc', 54 + kAudioHardwarePropertyProcessIsMaster = 'mast', 55 + kAudioHardwarePropertyIsInitingOrExiting = 'inot', 56 + kAudioHardwarePropertyUserIDChanged = 'euid', 57 + kAudioHardwarePropertyProcessIsAudible = 'pmut', 58 + kAudioHardwarePropertySleepingIsAllowed = 'slep', 59 + kAudioHardwarePropertyUnloadingIsAllowed = 'unld', 60 + kAudioHardwarePropertyHogModeIsAllowed = 'hogr', 61 + kAudioHardwarePropertyUserSessionIsActiveOrHeadless = 'user', 62 + kAudioHardwarePropertyServiceRestarted = 'srst', 63 + kAudioHardwarePropertyPowerHint = 'powh' 64 + 65 + }; 66 + 67 + enum 68 + { 69 + kAudioHardwarePropertyRunLoop = 'rnlp', 70 + kAudioHardwarePropertyDeviceForUID = 'duid', 71 + kAudioHardwarePropertyPluginForBundleID = 'pibi', 72 + }; 73 + 74 + enum 75 + { 76 + kAudioDevicePropertyDeviceName = 'name', 77 + kAudioDevicePropertyDeviceNameCFString = kAudioObjectPropertyName, 78 + kAudioDevicePropertyDeviceManufacturer = 'makr', 79 + kAudioDevicePropertyDeviceManufacturerCFString = kAudioObjectPropertyManufacturer, 80 + kAudioDevicePropertyRegisterBufferList = 'rbuf', 81 + kAudioDevicePropertyBufferSize = 'bsiz', 82 + kAudioDevicePropertyBufferSizeRange = 'bsz#', 83 + kAudioDevicePropertyChannelName = 'chnm', 84 + kAudioDevicePropertyChannelNameCFString = kAudioObjectPropertyElementName, 85 + kAudioDevicePropertyChannelCategoryName = 'ccnm', 86 + kAudioDevicePropertyChannelCategoryNameCFString = kAudioObjectPropertyElementCategoryName, 87 + kAudioDevicePropertyChannelNumberName = 'cnnm', 88 + kAudioDevicePropertyChannelNumberNameCFString = kAudioObjectPropertyElementNumberName, 89 + kAudioDevicePropertySupportsMixing = 'mix?', 90 + kAudioDevicePropertyStreamFormat = 'sfmt', 91 + kAudioDevicePropertyStreamFormats = 'sfm#', 92 + kAudioDevicePropertyStreamFormatSupported = 'sfm?', 93 + kAudioDevicePropertyStreamFormatMatch = 'sfmm', 94 + kAudioDevicePropertyDataSourceNameForID = 'sscn', 95 + kAudioDevicePropertyClockSourceNameForID = 'cscn', 96 + kAudioDevicePropertyPlayThruDestinationNameForID = 'mddn', 97 + kAudioDevicePropertyChannelNominalLineLevelNameForID = 'cnlv', 98 + kAudioDevicePropertyHighPassFilterSettingNameForID = 'chip' 99 + }; 100 + 101 + enum 102 + { 103 + kAudioDevicePropertyPlugIn = 'plug', 104 + kAudioDevicePropertyDeviceHasChanged = 'diff', 105 + kAudioDevicePropertyDeviceIsRunningSomewhere = 'gone', 106 + kAudioDeviceProcessorOverload = 'over', 107 + kAudioDevicePropertyIOStoppedAbnormally = 'stpd', 108 + kAudioDevicePropertyHogMode = 'oink', 109 + kAudioDevicePropertyBufferFrameSize = 'fsiz', 110 + kAudioDevicePropertyBufferFrameSizeRange = 'fsz#', 111 + kAudioDevicePropertyUsesVariableBufferFrameSizes = 'vfsz', 112 + kAudioDevicePropertyIOCycleUsage = 'ncyc', 113 + kAudioDevicePropertyStreamConfiguration = 'slay', 114 + kAudioDevicePropertyIOProcStreamUsage = 'suse', 115 + kAudioDevicePropertyActualSampleRate = 'asrt', 116 + kAudioDevicePropertyClockDevice = 'apcd' 117 + }; 118 + 119 + typedef AudioObjectPropertySelector AudioHardwarePropertyID; 120 + typedef AudioObjectPropertySelector AudioDevicePropertyID; 121 + 25 122 void AudioObjectShow(AudioObjectID inObjectID); 26 123 27 124 Boolean AudioObjectHasProperty(AudioObjectID inObjectID, ··· 109 206 UInt32 mStreamIsOn[1]; 110 207 }; 111 208 209 + OSStatus AudioDeviceGetProperty(AudioDeviceID inDevice, UInt32 inChannel, Boolean isInput, AudioDevicePropertyID inPropertyID, UInt32* ioPropertyDataSize, void* outPropertyData); 210 + OSStatus AudioDeviceGetPropertyInfo(AudioDeviceID inDevice, UInt32 inChannel, Boolean isInput, AudioDevicePropertyID inPropertyID, UInt32* outSize, Boolean* outWritable); 211 + 112 212 OSStatus AudioDeviceGetCurrentTime(AudioObjectID inDevice, AudioTimeStamp* outTime); 113 213 114 214 OSStatus AudioDeviceTranslateTime(AudioObjectID inDevice, const AudioTimeStamp* inTime, ··· 116 216 117 217 OSStatus AudioDeviceGetNearestStartTime(AudioObjectID inDevice, 118 218 AudioTimeStamp* ioRequestedStartTime, UInt32 inFlags); 219 + 220 + OSStatus AudioHardwareGetProperty(AudioHardwarePropertyID inPropId, UInt32* ioPropertyDataSize, void* outPropertyData); 119 221 120 222 #ifdef __cplusplus 121 223 }
+25
src/CoreAudio/include/CoreAudio/AudioHardwareBase.h
··· 62 62 kAudioObjectPropertyFirmwareVersion = 'fwvn', 63 63 }; 64 64 65 + enum 66 + { 67 + kAudioDevicePropertyConfigurationApplication = 'capp', 68 + kAudioDevicePropertyDeviceUID = 'uid ', 69 + kAudioDevicePropertyModelUID = 'muid', 70 + kAudioDevicePropertyTransportType = 'tran', 71 + kAudioDevicePropertyRelatedDevices = 'akin', 72 + kAudioDevicePropertyClockDomain = 'clkd', 73 + kAudioDevicePropertyDeviceIsAlive = 'livn', 74 + kAudioDevicePropertyDeviceIsRunning = 'goin', 75 + kAudioDevicePropertyDeviceCanBeDefaultDevice = 'dflt', 76 + kAudioDevicePropertyDeviceCanBeDefaultSystemDevice = 'sflt', 77 + kAudioDevicePropertyLatency = 'ltnc', 78 + kAudioDevicePropertyStreams = 'stm#', 79 + kAudioObjectPropertyControlList = 'ctrl', 80 + kAudioDevicePropertySafetyOffset = 'saft', 81 + kAudioDevicePropertyNominalSampleRate = 'nsrt', 82 + kAudioDevicePropertyAvailableNominalSampleRates = 'nsr#', 83 + kAudioDevicePropertyIcon = 'icon', 84 + kAudioDevicePropertyIsHidden = 'hidn', 85 + kAudioDevicePropertyPreferredChannelsForStereo = 'dch2', 86 + kAudioDevicePropertyPreferredChannelLayout = 'srnd', 87 + }; 88 + 89 + 65 90 // TODO: A lot more is missing 66 91 67 92 #ifdef __cplusplus
src/CoreAudio/include/CoreAudio/AudioHardwareStream.h src/CoreAudio/CoreAudio/AudioHardwareStream.h
+89
src/CoreAudio/include/CoreAudio/CoreAudioTypes.h
··· 115 115 kAudioFormatFlagIsNonMixable = (1 << 6), // 0x40 116 116 kAudioFormatFlagsAreAllClear = (1 << 31), 117 117 kAudioFormatFlagsCanonical = kAudioFormatFlagIsFloat | kAudioFormatFlagsNativeEndian | kAudioFormatFlagIsPacked, 118 + kAudioFormatFlagsNativeFloatPacked = kAudioFormatFlagIsFloat | kAudioFormatFlagsNativeEndian | kAudioFormatFlagIsPacked, 118 119 119 120 kLinearPCMFormatFlagIsFloat = kAudioFormatFlagIsFloat, 120 121 kLinearPCMFormatFlagIsBigEndian = kAudioFormatFlagIsBigEndian, ··· 366 367 UInt32 mChannelBitmap; 367 368 UInt32 mNumberChannelDescriptions; 368 369 AudioChannelDescription mChannelDescriptions[1]; 370 + }; 371 + 372 + struct AudioValueTranslation 373 + { 374 + void* mInputData; 375 + UInt32 mInputDataSize; 376 + void* mOutputData; 377 + UInt32 mOutputDataSize; 378 + }; 379 + 380 + enum 381 + { 382 + kAudioChannelLabel_Unknown = 0xFFFFFFFF, 383 + kAudioChannelLabel_Unused = 0, 384 + kAudioChannelLabel_UseCoordinates = 100, 385 + 386 + kAudioChannelLabel_Left = 1, 387 + kAudioChannelLabel_Right = 2, 388 + kAudioChannelLabel_Center = 3, 389 + kAudioChannelLabel_LFEScreen = 4, 390 + kAudioChannelLabel_LeftSurround = 5, 391 + kAudioChannelLabel_RightSurround = 6, 392 + kAudioChannelLabel_LeftCenter = 7, 393 + kAudioChannelLabel_RightCenter = 8, 394 + kAudioChannelLabel_CenterSurround = 9, 395 + kAudioChannelLabel_LeftSurroundDirect = 10, 396 + kAudioChannelLabel_RightSurroundDirect = 11, 397 + kAudioChannelLabel_TopCenterSurround = 12, 398 + kAudioChannelLabel_VerticalHeightLeft = 13, 399 + kAudioChannelLabel_VerticalHeightCenter = 14, 400 + kAudioChannelLabel_VerticalHeightRight = 15, 401 + 402 + kAudioChannelLabel_TopBackLeft = 16, 403 + kAudioChannelLabel_TopBackCenter = 17, 404 + kAudioChannelLabel_TopBackRight = 18, 405 + 406 + kAudioChannelLabel_RearSurroundLeft = 33, 407 + kAudioChannelLabel_RearSurroundRight = 34, 408 + kAudioChannelLabel_LeftWide = 35, 409 + kAudioChannelLabel_RightWide = 36, 410 + kAudioChannelLabel_LFE2 = 37, 411 + kAudioChannelLabel_LeftTotal = 38, 412 + kAudioChannelLabel_RightTotal = 39, 413 + kAudioChannelLabel_HearingImpaired = 40, 414 + kAudioChannelLabel_Narration = 41, 415 + kAudioChannelLabel_Mono = 42, 416 + kAudioChannelLabel_DialogCentricMix = 43, 417 + 418 + kAudioChannelLabel_CenterSurroundDirect = 44, 419 + 420 + kAudioChannelLabel_Haptic = 45, 421 + 422 + 423 + kAudioChannelLabel_Ambisonic_W = 200, 424 + kAudioChannelLabel_Ambisonic_X = 201, 425 + kAudioChannelLabel_Ambisonic_Y = 202, 426 + kAudioChannelLabel_Ambisonic_Z = 203, 427 + 428 + kAudioChannelLabel_MS_Mid = 204, 429 + kAudioChannelLabel_MS_Side = 205, 430 + 431 + kAudioChannelLabel_XY_X = 206, 432 + kAudioChannelLabel_XY_Y = 207, 433 + 434 + kAudioChannelLabel_HeadphonesLeft = 301, 435 + kAudioChannelLabel_HeadphonesRight = 302, 436 + kAudioChannelLabel_ClickTrack = 304, 437 + kAudioChannelLabel_ForeignLanguage = 305, 438 + 439 + kAudioChannelLabel_Discrete = 400, 440 + 441 + kAudioChannelLabel_Discrete_0 = (1U<<16) | 0, 442 + kAudioChannelLabel_Discrete_1 = (1U<<16) | 1, 443 + kAudioChannelLabel_Discrete_2 = (1U<<16) | 2, 444 + kAudioChannelLabel_Discrete_3 = (1U<<16) | 3, 445 + kAudioChannelLabel_Discrete_4 = (1U<<16) | 4, 446 + kAudioChannelLabel_Discrete_5 = (1U<<16) | 5, 447 + kAudioChannelLabel_Discrete_6 = (1U<<16) | 6, 448 + kAudioChannelLabel_Discrete_7 = (1U<<16) | 7, 449 + kAudioChannelLabel_Discrete_8 = (1U<<16) | 8, 450 + kAudioChannelLabel_Discrete_9 = (1U<<16) | 9, 451 + kAudioChannelLabel_Discrete_10 = (1U<<16) | 10, 452 + kAudioChannelLabel_Discrete_11 = (1U<<16) | 11, 453 + kAudioChannelLabel_Discrete_12 = (1U<<16) | 12, 454 + kAudioChannelLabel_Discrete_13 = (1U<<16) | 13, 455 + kAudioChannelLabel_Discrete_14 = (1U<<16) | 14, 456 + kAudioChannelLabel_Discrete_15 = (1U<<16) | 15, 457 + kAudioChannelLabel_Discrete_65535 = (1U<<16) | 65535 369 458 }; 370 459 371 460 #endif
+3
src/CoreAudio/notes.txt
··· 1 + Super simple examples using CA only API: 2 + http://web.mit.edu/ghudson/dev/nokrb/third/esound/audio_coreaudio.c 3 + https://sourceforge.net/p/sox/code/ci/master/tree/src/coreaudio.c
+1
src/frameworks/Carbon/include/Carbon/Carbon.h
··· 23 23 24 24 #include "CoreServices/MacErrors.h" 25 25 #include "CoreServices/MacTypes.h" 26 + #include "CoreServices/FileManager.h" 26 27 27 28 #include <HIToolbox/CarbonEventsCore.h> 28 29 #include <HIToolbox/CarbonEvents.h>