Skip to content

FWAUserLib macOS xcode14.0 rc

Israel Soto edited this page Sep 7, 2022 · 1 revision

#FWAUserLib.framework

diff -ruN /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FWAUserLib.framework/Headers/AppleFWAudioUserClientCommon.h /Applications/Xcode_14.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FWAUserLib.framework/Headers/AppleFWAudioUserClientCommon.h
--- /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FWAUserLib.framework/Headers/AppleFWAudioUserClientCommon.h	1969-12-31 18:00:00.000000000 -0600
+++ /Applications/Xcode_14.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FWAUserLib.framework/Headers/AppleFWAudioUserClientCommon.h	2022-02-12 03:56:44.000000000 -0600
@@ -0,0 +1,604 @@
+//--------------------------------------------------------------------------------
+//
+//	File:		AppleFWAudioUserClientCommon.h
+//
+//	Contains:	A common file to keep the API in sync with the User and Kernel side of the code
+//
+//	Technology:	OS X
+//
+//	DRI:		Matthew Xavier Mora	mxmora@apple.com
+//	ALTERNATE:	
+//
+//--------------------------------------------------------------------------------
+
+#ifndef _AppleFWAudioUserClientCommon_H
+#define _AppleFWAudioUserClientCommon_H
+
+#define CURRENT_DEVICE_STATUS_VERSION	(0x00012000)
+
+#define kNumInputClientBuffers			1
+#define kMIDIInputClientBufferSize		(2 * 32 )
+#define kMIDIInputRingBufferSize		(8 * kMIDIInputClientBufferSize * kNumInputClientBuffers )
+
+#define kNumOutputClientBuffers			1
+#define kMIDIOutputClientBufferSize		(2 * 32)
+#define kMIDIOutputRingBufferSize		(8 * kMIDIOutputClientBufferSize *  kNumOutputClientBuffers)
+
+#define kFWAStreamIdentSize 			(36)
+#define kFWAStreamEndpointIndentifier	"kFWAudioStreamEndpointIdentifier"
+#define kAudioPlugPropertiesKey			"AudioPlugProperties"
+#define kMIDIPlugPropertiesKey			"MIDIPlugProperties"
+
+#define kMIDIPropertiesIsPrivateKey		"MIDIPropertyIsPrivate"
+#define kMIDIPropertiesIsEmbeddedKey	"MIDIPropertyIsEmbedded"
+
+#define kFWAGetCurrentClockSourcePlugKey 'clkp'
+
+#define kFWAMaxPropertyKeyLength (256)
+#define kFWAMaxPropertyValueLength (4096 - (kFWAMaxPropertyKeyLength + 8))
+#define kFWAMaxPathLength (512)
+
+#include <libkern/OSTypes.h>
+
+enum {
+	kCurrentEraseHeadMeterArrayOffset = 0,
+	kNumSamplesFramesInBufferMeterArrayOffset = 1,
+	kCurrentInputDMASampleFrameMeterArrayOffset = 2,
+	kCurrentOutputDMASampleFrameMeterArrayOffset = 3,
+	kGetBadHeaderCountMeterArrayOffset = 4,
+	kGetFixedHeaderCountMeterArrayOffset = 5,
+	kGetBigPacketCountMeterArrayOffset = 6,
+	kLastTimeStampMeterArrayOffset = 7,
+	kLastTimeStampMeterArrayOffset2 = 8,
+	kInputPacketCountMeterArrayOffset = 9
+	
+};
+
+enum 
+{
+	kMIDIStreamOut = 0,
+	kMIDIStreamIn = 1,
+	// OR this will the above to indicate that the MIDI buffer is a structure defined below.
+	kMIDIAdvanceSchedule = 0x40000000UL,
+	kMIDITimeStamp = 0x80000000UL
+};
+
+typedef struct FWAMIDIInputBufferWithTimeStamp
+{
+	UInt64		timeStamp;
+	UInt8		midiBuffer[kMIDIInputClientBufferSize];
+} FWAMIDIInputBufferWithTimeStamp;
+
+typedef struct FWAMIDIOutputBufferWithTimeStamp
+{
+	UInt64		timeStamp;
+	UInt8		midiBuffer[kMIDIOutputClientBufferSize];
+} FWAMIDIOutputBufferWithTimeStamp;
+
+enum FWAStreamDirection
+{
+	kFWAStreamOut		= 0x00000000UL,
+	kFWAStreamIn		= 0x00000001UL
+};
+
+typedef enum FWAStreamDirection FWAStreamDirection;
+
+enum FWAStreamOptions
+{
+	kFWAStreamOptionsDefault		= 0,
+	kFWAStreamOptionsForceNuDCL 	= (1 << 16),
+	kFWAStreamOptionsForceLegacyDCL = (1 << 17),
+};
+
+typedef enum FWAStreamOptions FWAStreamOptions;
+
+
+typedef struct FWAMIDIReadBuffer
+{
+	UInt32			bufSize;
+	UInt32 			mrBuf[kMIDIInputClientBufferSize];	
+
+} FWAMIDIReadBuf;
+
+enum FWAudioType
+{
+	kIEC60958		= 0x00,
+	kRawAudio		= 0x40,
+	kMIDI			= 0x80,
+	kAncillaryData	= 0xC0,
+	kAllEventTypes  = 0xFF
+};
+typedef enum FWAudioType FWAudioType, *FWAudioTypePtr;
+
+enum FWAMIDIDataInfo 
+{
+    kFWAMIDIPlugName				= 'mnam',
+	kFWAMIDIPlugIdent				= 'midn',		// Used with MIDI unique plug ID
+	kFWAMIDIPlugPropertyPrivate		= 'priv',
+	kFWAMIDIPlugPropertyEmbedded	= 'embd',	
+	kFWAMIDIGetIndexedPlug			= 0xFFFFFFFF
+};
+
+enum FWAStreamState 
+{
+    kFWAStreamStopped	= 0,
+    kFWAStreamRunning	= 1,
+    kFWAStreamPaused	= 2,
+    kFWAStreamResumed	= 3
+};
+
+enum
+{
+	kFWAPlugNotConnected = 0xFF,
+	kFWAUnusedIsochChannelID = 0xFF
+};
+
+typedef enum FWAStreamState FWAStreamState;
+typedef void (*FWAStreamNotificationProc)(UInt32 isochStreamRef, void* refCon);
+
+
+// Moved to AppleFWAudioUserLib.cpp
+// update this with the version of the driver in xxxx.xxxx
+#define kFWADeviceStatusCurrentVersion (0x00012000)
+
+typedef struct FWADeviceStatus
+{
+	UInt32			version;	
+	UInt32			sampleCounter;
+	UInt32			inputSampleFrame;
+	UInt32			outputSampleFrame;
+	UInt32			inputClipSampleFrame;
+	UInt32			outputClipSampleFrame;
+	UInt32			meterData[1];	//numInputChannels + numInputChannels
+} FWADeviceStatusRec, *FWADeviceStatusRecPtr;
+
+typedef struct FWACreateStreamRec
+{
+	UInt32			owningIsochStreamRef;
+	UInt32			channelNumber;
+	UInt32			direction;
+	UInt32			numAudioChannels;
+    char			streamName[64];
+	unsigned char	streamIdent[kFWAStreamIdentSize];
+	bool			streamIdentIsNull;
+	
+} FWACreateStreamRec, *FWACreateStreamRecPtr;
+
+typedef struct FWACreateMIDIPlugRec
+{
+	UInt32			owningMIDIStreamRef;
+	UInt32			mpxID;
+    char			plugName[64];
+	unsigned char	plugIdent[kFWAStreamIdentSize];
+	bool			plugIdentIsNull;
+} FWACreateMIDIPlugRec, *FWACreateMIDIPlugRecPtr;
+
+typedef struct FWACreateFWAudioPlugRec
+{
+	UInt32			owningAudioStreamRef;
+	UInt32			channelID;
+    char			plugName[64];
+	unsigned char	plugIdent[kFWAStreamIdentSize];
+	bool			plugIdentIsNull;
+} FWACreateFWAudioPlugRec, *FWACreateFWAudioPlugRecPtr;
+
+typedef struct FWACreateDeviceRec
+{
+	UInt32			vendorID;
+    char			deviceName[64];
+	char			guidStr[64];
+
+} FWACreateDeviceRec, *FWACreateDeviceRecPtr;
+
+typedef struct FWASetPluginPathRec
+{
+	UInt32			owningEngineRef;
+	UInt32			vendorID;
+	UInt32			modelID;	
+    char			pluginPath[kFWAMaxPathLength];
+	bool			pluginPathIsNull;
+	bool			cacheValues;
+} FWASetPluginPathRec, *FWASetPluginPathRecPtr;
+
+typedef struct FWASetPlugPropertyRec
+{
+	UInt32			owningPlugRef;
+    char			plugPropertyKey[kFWAMaxPropertyKeyLength];
+	char			plugPropertyValue[kFWAMaxPropertyValueLength];
+	bool			plugPropertyValueIsNull;
+
+} FWASetPlugPropertyRec, *FWASetPlugPropertyRecPtr;
+
+typedef struct FWACreateMIDIDeviceNubRec
+{
+	UInt32			owningDevice;
+	UInt32			vendorID;
+	UInt32			modelID;
+	char			deviceName[64];
+	char			guidStr[64];
+    char			iconFilePath[256];
+	char			editorPath[256];
+} FWACreateMIDIDeviceNubRec, *FWACreateMIDIDeviceNubRecPtr;
+
+typedef struct FWAGetPropertyRec
+{
+	UInt32			key;
+	UInt32			size;
+    char			data[1024];
+} FWAGetPropertyRec, *FWAGetPropertyRecPtr;
+
+enum
+{
+	kFWAudioMaxNameSize = 64,
+
+	kReadBlockInParamCount = 1,
+	kReadBlockOutParamCount = 0xFFFFFFFF,
+	
+	kWriteQuadletInParamCount = 2,
+	kWriteQuadletOutParamCount = 0,
+	
+	kWriteBlockInParamCount = 1,
+	kWriteBlockOutParamCount = 0xFFFFFFFF,
+	
+	kReadQuadletInParamCount = 1,
+	kReadQuadletOutParamCount = 1,
+	
+	kGetCycleTimeOffsetInParamCount = 0,
+	kGetCycleTimeOffsetOutParamCount = 1,
+
+	kSetCycleTimeOffsetInParamCount = 1,
+	kSetCycleTimeOffsetOutParamCount = 0,
+	
+	kGetDeviceNameInParamCount	= 0,
+	kGetDeviceNameOutParamCount = 0xFFFFFFFF,
+
+	kGetVendorNameInParamCount = 0,
+	kGetVendorNameOutParamCount = 0xFFFFFFFF,
+	
+	kIsMIDICapableInParamCount = 0,
+	kIsMIDICapableOutParamCount = 1,
+	
+	kGetNumMIDIInputPlugsInParamCount = 0,
+	kGetNumMIDIInputPlugsOutParamCount = 1,
+
+	kGetNumMIDIOutputPlugsInParamCount = 0,
+	kGetNumMIDIOutputPlugsOutParamCount = 1,
+
+	kSetNumMIDIInputPlugsInParamCount = 1,
+	kSetNumMIDIInputPlugsOutParamCount = 0,
+
+	kSetNumMIDIOutputPlugsInParamCount = 1,
+	kSetNumMIDIOutputPlugsOutParamCount = 0,
+
+	kGetNumAudioInputPlugsInParamCount = 0,
+	kGetNumAudioInputPlugsOutParamCount = 1,
+
+	kGetNumAudioOutputPlugsInParamCount = 0,
+	kGetNumAudioOutputPlugsOutParamCount = 1,
+
+	kCreateAudioStreamInParamCount = 0xFFFFFFFF,
+	kCreateAudioStreamOutParamCount = 0xFFFFFFFF,	
+	
+	kDisposeAudioStreamInParamCount = 1,
+	kDisposeAudioStreamOutParamCount = 0,	
+		
+	kGetDeviceSampleRateInParamCount = 0,
+	kGetDeviceSampleRateOutParamCount = 1,
+	
+	kGetDeviceSendModeInParamCount = 0,
+	kGetDeviceSendModeOutParamCount = 1,
+
+	kGetDeviceStatusInParamCount = 1,
+	kGetDeviceStatusOutParamCount = 0xFFFFFFFF,
+	
+	kGetDeviceStreamInfoInParamCount = 1,
+	kGetDeviceStreamInfoOutParamCount = 4,
+
+// v4	
+	kSetDeviceStreamInfoInParamCount = 6,
+	kSetDeviceStreamInfoOutParamCount = 0,
+
+// v5	
+
+	kSyncUpDeviceInParamCount 						= 0,
+	kSyncUpDeviceOutParamCount 						= 0,
+
+	kGetCurrentStreamRefsInParamCount				= 1,	 
+	kGetCurrentStreamRefsOutParamCount				= 0xFFFFFFFF,
+
+	kGetStreamStateInParamCount						= 1,
+	kGetStreamStateOutParamCount					= 1,
+
+	kGetIsochStreamDirectionInParamCount			= 1,
+	kGetIsochStreamDirectionOutParamCount			= 1,
+
+	kGetIsochStreamChannelIDInParamCount			= 1,
+	kGetIsochStreamChannelIDOutParamCount			= 1,
+
+	kSetIsochStreamChannelIDInParamCount			= 2,
+	kSetIsochStreamChannelIDOutParamCount			= 0,
+	
+	kGetStreamSampleRateInParamCount				= 1,
+	kGetStreamSampleRateOutParamCount				= 1,
+
+	kSetStreamSampleRateInParamCount				= 2,
+	kSetStreamSampleRateOutParamCount				= 0,
+
+	kGetStreamOutputSpeedInParamCount				= 1,
+	kGetStreamOutputSpeedOutParamCount				= 1,
+
+	kSetStreamOutputSpeedInParamCount				= 2,
+	kSetStreamOutputSpeedOutParamCount				= 0,	
+
+	kGetStreamAudioTypeInParamCount					= 1,
+	kGetStreamAudioTypeOutParamCount				= 1,
+
+	kSetStreamAudioTypeInParamCount					= 2, 
+	kSetStreamAudioTypeOutParamCount				= 0,
+
+	kSetStreamCallbackFunctionInParamCount			= 3,
+	kSetStreamCallbackFunctionOutParamCount			= 0,
+
+	kCreateIsochStreamInParamCount					= 4, 
+	kCreateIsochStreamOutParamCount					= 1,
+
+	kDisposeIsochStreamInParamCount					= 1,
+	kDisposeIsochStreamOutParamCount				= 0,
+
+	kStartIsochStreamInParamCount					= 1,
+	kStartIsochStreamOutParamCount					= 0,
+
+	kStopIsochStreamInParamCount 					= 1,
+	kStopIsochStreamOutParamCount  					= 0,
+
+	kGetIsochStreamAudioChannelCountInParamCount 	= 1,
+	kGetIsochStreamAudioChannelCountOutParamCount 	= 1,
+
+	kSetIsochStreamAudioChannelCountInParamCount 	= 2,
+	kSetIsochStreamAudioChannelCountOutParamCount 	= 0,
+
+	kGetIsochStreamMIDIChannelCountInParamCount 	= 1,
+	kGetIsochStreamMIDIChannelCountOutParamCount 	= 1,
+
+	kSetIsochStreamMIDIChannelCountInParamCount 	= 2,
+	kSetIsochStreamMIDIChannelCountOutParamCount 	= 0,
+	
+	kCreateFWAudioDeviceInParamCount 				= 0xFFFFFFFF,
+	kCreateFWAudioDeviceOutParamCount 				= 0xFFFFFFFF,
+											
+	kStartFWAudioDeviceInParamCount					= 1, 
+	kStartFWAudioDeviceOutParamCount				= 0,
+
+	kStopFWAudioDeviceInParamCount					= 1, 
+	kStopFWAudioDeviceOutParamCount					= 0,
+
+	kDisposeFWAudioDeviceInParamCount 				= 1,
+	kDisposeFWAudioDeviceOutParamCount 				= 0,
+
+	kCreateFWAudioEngineInParamCount 				= 3,
+	kCreateFWAudioEngineOutParamCount 				= 1,
+
+	kDisposeFWAudioEngineInParamCount 				= 1,
+	kDisposeFWAudioEngineOutParamCount 				= 0,
+
+	kCreateFWAudioStreamInParamCount 				= 0xFFFFFFFF,
+	kCreateFWAudioStreamOutParamCount 				= 0xFFFFFFFF,
+
+	kDisposeFWAudioStreamInParamCount 				= 1,
+	kDisposeFWAudioStreamOutParamCount 				= 0,
+	
+	kCreateFWAudioMIDIStreamInParamCount			= 3,
+	kCreateFWAudioMIDIStreamOutParamCount			= 1,
+	
+	kDisposeFWAudioMIDIStreamInParamCount			= 1,
+	kDisposeFWAudioMIDIStreamOutParamCount			= 0,
+
+	kCreateFWAudioMIDIPlugInParamCount 				= 0xFFFFFFFF,
+	kCreateFWAudioMIDIPlugOutParamCount 			= 0xFFFFFFFF,
+	
+	kDisposeFWAudioMIDIPlugInParamCount				= 1,
+	kDisposeFWAudioMIDIPlugOutParamCount			= 0,
+
+	kGetClockSourceInParamCount 					= 0,
+	kGetClockSourceOutParamCount 					= 2,
+	
+	kSetClockSourceInParamCount 					= 2,
+	kSetClockSourceOutParamCount 					= 0,
+	
+	kSetAutoLoadInParamCount 						= 1,
+	kSetAutoLoadOutParamCount 						= 0,	
+
+	kGetPropertyInParamCount 						= 0xFFFFFFFF,
+	kGetPropertyOutParamCount 						= 0xFFFFFFFF,	
+	
+	kSetPropertyInParamCount 						= 2,
+	kSetPropertyOutParamCount 						= 0,
+	
+	kSetPluginPathInParamCount 						= 0xFFFFFFFF,
+	kSetPluginPathOutParamCount 					= 0xFFFFFFFF,
+	
+	kCreateFWAudioPlugInParamCount					= 0xFFFFFFFF,			
+	kCreateFWAudioPlugOutParamCount					= 0xFFFFFFFF,
+	
+	kDisposeFWAudioPlugInParamCount 				= 1,
+	kDisposeFWAudioPlugOutParamCount				= 0,
+	
+	kSetFWAudioMIDIPlugChannelInParamCount			= 2,
+	kSetFWAudioMIDIPlugChannelOutParamCount			= 0,
+	
+	kGetFWAudioMIDIPlugChannelInParamCount			= 1,
+	kGetFWAudioMIDIPlugChannelOutParamCount			= 2,
+	
+	kGetFWAudioPlugChannelInParamCount				= 1,
+	kGetFWAudioPlugChannelOutParamCount				= 1,
+	
+	kSetFWAudioPlugChannelInParamCount				= 2,
+	kSetFWAudioPlugChannelOutParamCount				= 0,
+	
+	kAttachFWAudioStreamInParamCount 				= 2,
+	kAttachFWAudioStreamOutParamCount				= 0,
+	
+	kAttachFWAudioMIDIStreamInParamCount 			= 2,
+	kAttachFWAudioMIDIStreamOutParamCount			= 0,
+	
+	kSetFWAudioPlugPropertyInParamCount 			= 0xFFFFFFFF,
+	kSetFWAudioPlugPropertyOutParamCount			= 0xFFFFFFFF,
+	
+	kSetFWAudioMIDIPlugPropertyInParamCount 		= 0xFFFFFFFF,
+	kSetFWAudioMIDIPlugPropertyOutParamCount		= 0xFFFFFFFF,
+	
+	kOpenLocalWithInterfaceInParamCount 			= 0,
+	kOpenLocalWithInterfaceOutParamCount			= 0,
+	
+	kOpenWithServiceInParamCount 					= 0,
+	kOpenWithServiceOutParamCount					= 0,
+	
+	kGetMaxSpeedInParamCount						= 0,
+	kGetMaxSpeedOutParamCount						= 1,	
+	
+	kGetSessionRefInParamCount						= 0,
+	kGetSessionRefOutParamCount						= 0,
+	
+	kReserveIsochSequencesInParamCount				= 3,
+	kReserveIsochSequencesOutParamCount				= 0,
+
+	kCreateFWAudioMIDIDeviceNubInParamCount 		= 0xFFFFFFFF,
+	kCreateFWAudioMIDIDeviceNubOutParamCount 		= 0xFFFFFFFF,
+	
+	kDisposeFWAudioMIDIDeviceNubInParamCount		= 1, 
+	kDisposeFWAudioMIDIDeviceNubOutParamCount		= 0,
+	
+	kGetIndexedFWAudioPlugInParamCount				= 3, 
+	kGetIndexedFWAudioPlugOutParamCount				= 1,
+
+	kGetIndexedFWAudioMIDIPlugInParamCount			= 3, 
+	kGetIndexedFWAudioMIDIPlugOutParamCount			= 1,
+	
+	kMIDIDeviceNubAttachMIDIPlugInParamCount		= 2,
+	kMIDIDeviceNubAttachMIDIPlugOutParamCount		= 0,
+	
+	kMIDIDeviceNubDetachMIDIPlugInParamCount		= 1,
+	kMIDIDeviceNubDetachMIDIPlugOutParamCount		= 0	
+};
+
+// Index into our API
+enum
+{
+	kFWAOpenIndex 			= 0, 
+	kFWACloseIndex, 
+	kFWAGetCycleTimeOffset,
+	kFWASetCycleTimeOffset,
+	kFWAGetNodeID,
+	kFWAGetGUID,
+	kFWAReadQuadlet,
+	kFWAReadBlock,
+	kFWAExecuteAVC,
+	kFWAWriteQuadlet,
+	kFWAWriteBlock,
+	kFWAGetMacGUID,
+	kFWACreateMIDIStream,
+	kFWADisposeMIDIStream,
+	kFWAWriteMIDIData,
+	kFWAReadMIDIData,
+	kFWAIsMIDICapable,
+	kFWAGetVendorID,
+	kFWAGetDeviceName,
+	kFWAGetVendorName,
+	kFWAGetNumMIDIInputPlugs,
+	kFWAGetNumMIDIOutputPlugs,
+	kFWASetNumMIDIInputPlugs,
+	kFWASetNumMIDIOutputPlugs,
+	kFWAGetNumAudioInputPlugs,
+	kFWAGetNumAudioOutputPlugs,
+	kFWACreateAudioStream,
+	kFWADisposeAudioStream,
+	kFWAGetDeviceSampleRate,
+	kFWAGetDeviceSendMode,
+	kFWAGetDeviceStatus,
+	kFWAGetDeviceStreamInfo,
+// V4   -----------------------
+
+	kFWASetDeviceStreamInfo,
+
+// V5   -----------------------
+
+	kFWASyncUpDevice,
+	kFWAGetCurrentStreamRefs,	 
+	kFWAGetStreamState,
+	kFWAGetIsochStreamDirection,
+	kFWAGetIsochStreamChannelID,
+	kFWASetIsochStreamChannelID,
+	kFWAGetStreamSampleRate,
+	kFWASetStreamSampleRate,
+	kFWAGetStreamOutputSpeed,
+	kFWASetStreamOutputSpeed,
+	kFWAGetStreamAudioType,
+	kFWASetStreamAudioType, 
+	kFWASetStreamCallbackFunction,
+	kFWACreateIsochStream, 
+	kFWADisposeIsochStream,
+	kFWAStartIsochStream,
+	kFWAStopIsochStream,
+	kFWAGetIsochStreamAudioChannelCount,
+	kFWASetIsochStreamAudioChannelCount,
+	kFWAGetIsochStreamMIDIChannelCount,
+	kFWASetIsochStreamMIDIChannelCount,
+	kFWACreateFWAudioDevice,
+	kFWADisposeFWAudioDevice,
+	kFWAStartFWAudioDevice,
+	kFWAStopFWAudioDevice, 
+	kFWACreateFWAudioEngine,
+	kFWADisposeFWAudioEngine,
+	kFWACreateFWAudioStream,
+	kFWADisposeFWAudioStream,
+	kFWAGetClockSource,
+	kFWASetClockSource,
+	kFWACreateFWAudioMIDIStream,
+	kFWADisposeFWAudioMIDIStream,
+	kFWACreateFWAudioMIDIPlug,
+	kFWADisposeFWAudioMIDIPlug,
+
+// V6   -----------------------
+
+	kFWASetAutoLoad,
+	kFWAGetProperty,
+	kFWASetProperty,
+
+// V7   -----------------------
+
+	kFWASetPluginPath,
+	kFWACreateFWAudioPlug,
+	kFWADisposeFWAudioPlug,
+	kFWASetFWAudioMIDIPlugChannel,
+	kFWASetFWAudioPlugChannel,
+	kFWAGetFWAudioMIDIPlugChannel,
+	kFWAGetFWAudioPlugChannel,
+	kFWAAttachFWAudioStream,
+	kFWAAttachFWAudioMIDIStream,
+	kFWASetFWAudioPlugProperty,
+	kFWASetFWAudioMIDIPlugProperty,
+	kFWAOpenLocalWithInterface,
+	kFWAOpenWithService,
+	kFWAGetSessionRef,
+	kFWAGetMaxSpeed,
+	kFWAReserveIsochSequences,
+	kFWACreateFWAudioMIDIDeviceNub,
+	kFWADisposeFWAudioMIDIDeviceNub,
+	kFWAGetIndexedFWAudioPlug, 
+	kFWAGetIndexedFWAudioMIDIPlug,  
+	kFWAMIDIDeviceNubAttachMIDIPlug,
+	kFWAMIDIDeviceNubDetachMIDIPlug,
+
+// Async
+	
+	kFWASetAsyncPort,
+	kWriteMIDIAsync,
+	kReadMIDIAsync,
+
+//   ------------------------
+	
+	kFWANumberFWAMethods			// Keep kFWANumberFWAMethods last!! (current count )
+};
+
+
+#endif /*_AppleFWAudioUserClientCommon_H */
diff -ruN /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FWAUserLib.framework/Headers/AppleFWAudioUserLib.h /Applications/Xcode_14.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FWAUserLib.framework/Headers/AppleFWAudioUserLib.h
--- /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FWAUserLib.framework/Headers/AppleFWAudioUserLib.h	1969-12-31 18:00:00.000000000 -0600
+++ /Applications/Xcode_14.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FWAUserLib.framework/Headers/AppleFWAudioUserLib.h	2022-02-12 03:56:44.000000000 -0600
@@ -0,0 +1,18 @@
+/*
+     File:     AppleFWAudioUserLib.h
+ 
+     Contains:  Public API for AppleFWAudio driver userclient
+ 
+     Version:   Mac OS X
+ 
+     Copyright: � 2005-2010 by Apple Computer, Inc., all rights reserved.
+ 
+     Bugs?:      For bug reports, consult the following page on
+                 the World Wide Web:
+ 
+                     http://developer.apple.com/bugreporter/
+*/
+
+#include <FWAUserLib/FWAUserLib.h>
+
+#warning this file is deprecated use FWAUserLib.h instead.
\ No newline at end of file
diff -ruN /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FWAUserLib.framework/Headers/FWAUserLib.h /Applications/Xcode_14.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FWAUserLib.framework/Headers/FWAUserLib.h
--- /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FWAUserLib.framework/Headers/FWAUserLib.h	1969-12-31 18:00:00.000000000 -0600
+++ /Applications/Xcode_14.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FWAUserLib.framework/Headers/FWAUserLib.h	2022-08-03 21:07:21.000000000 -0500
@@ -0,0 +1,1126 @@
+/*
+     File:      FWAUserLib/FWAUserLib.h
+ 
+     Contains:  Public API for AppleFWAudio driver userclient
+ 
+     Version:   Mac OS X
+ 
+     Copyright � 2001-2013 Apple Computer, Inc. All rights reserved.
+ 
+     Bugs?:      For bug reports, consult the following page on
+                 the World Wide Web:
+ 
+                     http://developer.apple.com/bugreporter/
+*/
+/*!
+	@header
+	This header contains the C interface to the AppleFWAudio driver. The functions in this library allow applications
+	to create and manage audio and MIDI streams and plugs, audio engines, and audio devices. In addition, this library
+	can be used to implement mLAN support in Mac OS X.
+
+	@attribute Path /System/Library/Frameworks/FWAUserLib.framework/Versions/A/Headers/AppleFWAudioUserLib.h
+	@attribute Include Path
+		&lt;FWAUserLib/AppleFWAudioUserLib.h&gt;
+*/
+
+
+// <rdar://problem/11755857> Apply FWAUserLib framework headerdoc patch
+
+#include 	<IOKit/firewire/IOFireWireFamilyCommon.h>
+#include 	<FWAUserLib/AppleFWAudioUserClientCommon.h>
+
+#pragma clang arc_cf_code_audited begin
+
+/*! Opaque pointer to userland FWARefRec */
+ typedef  struct  OpaqueFWARef 				* FWARef;
+
+/*! Opaque kernel pointer to AM824Channel */
+typedef struct OpaqueFWAIsochStreamRef	* FWAIsochStreamRef;
+
+/*! Opaque kernel pointer to AppleLocalAudioDevice */
+typedef struct OpaqueFWADeviceRef		* FWADeviceRef;
+
+/*! Opaque kernel pointer to AppleFWAudioEngineNub */
+typedef struct OpaqueFWAEngineRef		* FWAEngineRef;
+
+/*! Opaque kernel pointer to AppleFWAudioStream. */
+typedef struct OpaqueFWAAudioStreamRef	* FWAAudioStreamRef;
+
+/*! Opaque kernel pointer to AppleFWAudioMIDIStream. */
+typedef struct OpaqueFWAMIDIStreamRef	* FWAMIDIStreamRef;
+
+/*! Opaque kernel pointer to AppleFWAudioMIDIPlug. */
+typedef struct OpaqueFWAMIDIPlugRef		* FWAMIDIPlugRef;
+
+/*! Opaque kernel pointer to AppleFWAudioStream. */
+typedef struct OpaqueFWAAudioPlugRef	* FWAAudioPlugRef;
+
+/*! Opaque kernel pointer to AppleFWAudioMIDIDeviceNub. */
+typedef struct OpaqueFWAMIDIDeviceNubRef * FWAMIDIDeviceNubRef;
+
+#if __cplusplus
+extern "C" {
+#endif
+
+	// Device identification
+	typedef UInt32 FWADeviceID;			
+	
+#pragma mark -- V1
+	
+	//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	// API
+	/*! @group Version 1 */
+       
+	/*!
+	 * @function FWACountDevices
+	 * @abstract Returns the number of AppleFWAudio devices connected to the system and their node IDs.
+	 * @discussion Because node IDs are dynamic and can change, you should get the device list again after each bus reset.
+	 * @availability Version 1
+	 * @param deviceNodeIDArray Pointer to an array of UInt16 values representing node IDs.
+	 * @param deviceCount On input, pass in the size of the array; on output, deviceCount contains the number of nodeIDs returned in the array.
+	 * @result OSStatus
+	 */
+	OSStatus FWACountDevices(  UInt16* deviceNodeIDArray, UInt16*  deviceCount  ) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAOpen
+	 * @abstract Opens a user client connection to the AppleFWAudio driver.
+	 * @discussion The returned FWARef is needed for all future calls to the user library. The FWARef is unique to the node ID used to open the
+	 * connection. If the node ID changes after a bus reset, you can get the device's new node ID using @link FWAGetNodeID FWAGetNodeID@/link.
+	 * @availability Version 1
+	 * @param nodeID The node ID of the device to open.
+	 * @param outRef On return, the FWARef for the device.
+	 * @result OSStatus
+	 */
+	OSStatus FWAOpen(UInt32 nodeID, FWARef  * outRef  ) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAOpenLocal
+	 * @abstract Opens a connection to the FireWire audio service that is attached to the Macintosh local FireWire node.
+	 * @discussion The FWARef device reference returned by this function can be passed to all functions that
+	 * accept an FWARef. Note that some functions in earlier versions of the AppleFWAudioUserLib API may not
+	 * work with a local FireWire node reference. This reference will work with all functions in version 5
+	 * and above of the API.
+	 *
+	 * If the outRef parameter is set to 'midi' before calling this function, an internal flag is set that
+	 * indicates this is a connection to the MIDI system. Note that there can be only one connection to the
+	 * MIDI system at a time. An access error will be returned if a MIDI connection is attempted while another
+	 * MIDI connection is already open. The AppleFWAudioMIDIDriver uses this mode to vend its MIDI services.
+	 * If this connection is open before the AppleFWAudioMIDIDriver attempts to open it, MIDI data will not
+	 * be sent to and from CoreMIDI.
+	 * @availability Version 5
+	 * @param outRef On return, an FWARef that represents the FireWire audio service attached to the Macintosh local FireWire node.
+	 * @result OSStatus
+	 */
+	OSStatus FWAOpenLocal( FWARef*  outRef ) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAClose
+	 * @abstract Closes the connection that was made to the device with @link FWAOpen FWAOpen@/link.
+	 * @availability Version 1 
+	 * @param inRef The FWARef of the device to close.
+	 * @result OSStatus
+	 */     
+	OSStatus FWAClose( FWARef 	inRef ) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWARead
+	 * @abstract 
+	 * @discussion 
+	 * @availability Version 1
+	 * @param inRef
+	 * @param inAddress
+	 * @param inSubAddress
+	 * @param inDataSize
+	 * @param inDataPtr
+	 * @result OSStatus
+	 */
+	OSStatus FWARead( FWARef inRef, UInt8 inAddress, UInt8 inSubAddress, ByteCount	 inDataSize, void * inDataPtr ) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAWrite
+	 * @abstract 
+	 * @discussion 
+	 * @availability Version 1
+	 * @param inRef
+	 * @param inAddress
+	 * @param inSubAddress
+	 * @param inDataSize
+	 * @param inDataPtr
+	 * @result OSStatus
+	 */
+	OSStatus FWAWrite( FWARef inRef, UInt8 inAddress, UInt8	 inSubAddress, ByteCount inDataSize,  const void *	inDataPtr ) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	// mLan support
+	/*! @group Version 1 (mLAN support) */
+	/*!
+	 * @function FWAGetNodeID
+	 * @abstract Returns the node ID of the passed-in FWARef device reference.
+	 * @discussion Node IDs can change after the device is opened with the FWARef device reference. This function returns the current node ID.
+	 * @availability Version 1 
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param outNodeID The node ID of the device for the current bus generation.
+	 * @param outGeneration The current bus generation.
+	 * @result OSStatus
+	 */
+	OSStatus FWAGetNodeID(FWARef  inRef, UInt32 *outNodeID, UInt32 * outGeneration) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetGUID
+	 * @abstract Returns the device's globally unique ID (GUID).
+	 * @availability Version 1
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param guid The address of a UInt64 to hold the device GUID.
+	 * @result OSStatus
+	 */     
+	OSStatus FWAGetGUID(FWARef inRef, UInt64 *guid) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetMacGUID
+	 * @abstract Returns the Macintosh computer's globally unique ID (GUID).
+	 * @availability Version 1 
+	 * @param inRef In general this parameter is ignored, but it may be needed if the device is connected to an add-in FireWire card.
+	 * @param guid The address of a UInt64 to hold the Macintosh computer's GUID.
+	 * @result OSStatus
+	 */
+	OSStatus FWAGetMacGUID(FWARef inRef, UInt64 *guid) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAReadQuadlet
+	 * @abstract Reads a quadlet at the specified FireWire address.
+	 * @availability Version 1 
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param address A pointer to the FWAddress of the quadlet to read. 
+	 * @param outData A pointer to a UInt32 to hold the quadlet that was read.
+	 * @result OSStatus
+	 */
+	OSStatus FWAReadQuadlet(FWARef inRef, FWAddressPtr address, UInt32 *outData) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAReadBlock
+	 * @abstract Reads a block of data from the specified FireWire address.
+	 * @availability Version 1 
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param address A pointer to the FWAddress at the start of the read.
+	 * @param size A pointer to a UInt32 that holds the size of the block to read.
+	 * @param outData A pointer to the data that was read.
+	 * @result OSStatus
+	 */
+	OSStatus FWAReadBlock(FWARef inRef, 	FWAddressPtr address, UInt32* size, UInt8 *outData) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAExecuteAVC
+	 * @abstract Sends an AVC command to the device and receives a response.
+	 * @availability Version 1 
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param cmd A pointer to the AVC command to send.
+	 * @param cmdSize The size of the AVC command.
+	 * @param response A pointer to the response buffer.
+	 * @param responseSize A pointer to the size of the response.
+	 * @result OSStatus
+	 */
+	OSStatus FWAExecuteAVC(FWARef inRef, UInt8* cmd,UInt32 cmdSize,UInt8* response,UInt32* responseSize) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAWriteQuadlet
+	 * @abstract Writes a quadlet to the specified FireWire address.
+	 * @availability Version 1 
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param address A pointer to the FWAddress of the quadlet to write.
+	 * @param data The data to write.
+	 * @result OSStatus
+	 */
+	OSStatus FWAWriteQuadlet(FWARef inRef, FWAddressPtr address, UInt32 data) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAWriteBlock
+	 * @abstract Writes a block of data to the specified FireWire address.
+	 * @availability Version 1
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param address A pointer to the FWAddress to write to.
+	 * @param size The size of the block.
+	 * @param data A pointer to the data to write.
+	 * @result OSStatus
+	 */
+	OSStatus FWAWriteBlock(FWARef inRef, FWAddressPtr address, UInt32 size, const UInt8 *data) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWACreateMIDIStream
+	 * @abstract Creates a MIDI stream reference which allows MIDI to be sent and received via the FireWire device.
+	 * @availability Version 1
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param midiIO MIDI input or output (can be either kMIDIInput or kMIDIOutput).
+	 * @param bufSizeInBytes The size of the buffer in bytes.
+	 * @param buf A pointer to the buffer to hold the MIDI bytes sent to or received from the driver.
+	 * @param sequenceNum The sequence number of the MIDI data in the isochronous packet.
+	  * @param midiStreamRef On return, the reference to the MIDI stream to use in other MIDI functions.
+	 * @result OSStatus
+	 */
+	OSStatus FWACreateMIDIStream(FWARef inRef, UInt32 midiIO, UInt32 bufSizeInBytes, void * buf, UInt32 sequenceNum, UInt32 *midiStreamRef) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWADisposeMIDIStream
+	 * @abstract Destroys a MIDI stream reference.
+	 * @availability Version 1 
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param midiStreamRef The MIDI stream reference created with @link FWACreateMIDIStream FWACreateMIDIStream@/link.
+	 * @result OSStatus
+	 */
+	OSStatus FWADisposeMIDIStream(FWARef inRef, UInt32 midiStreamRef) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAWriteMIDIData
+	 * @abstract This function has been deprecated. Use @link FWAWriteMIDIDataAsync FWAWriteMIDIDataAsync@/link instead.
+	 */
+	OSStatus FWAWriteMIDIData(FWARef inRef,  UInt32 midiStreamRef, UInt32 writeMsgLength, UInt8 * buf) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAReadMIDIData
+	 * @abstract This function has been deprecated. Use @link FWAReadMIDIDataAsync FWAReadMIDIDataAsync@/link instead.
+	 */
+	OSStatus FWAReadMIDIData( FWARef inRef,  UInt32 midiStreamRef, FWAMIDIReadBuf *buf) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#pragma mark -- V2
+
+	/*! @group Version 2 */
+
+	/*!
+	 * @function FWAGetCycleTimeOffset
+	 * @abstract Gets the cycle time offset the driver adds to the time stamp to compensate for delays in the packetizer.
+	 * @availability Version 2
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param cycleTimeOffset The cycle time offset in nanoseconds.
+	 * @result OSStatus
+	 */
+
+	OSStatus FWAGetCycleTimeOffset(FWARef inRef, UInt32* cycleTimeOffset) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWASetCycleTimeOffset
+	 * @abstract Sets the cycle time offset the driver should add to the time stamp to compensate for delays in the packetizer.
+	 * @availability Version 2
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param cycleTimeOffset The cycle time offset in nanoseconds.
+	 * @result OSStatus
+	 */
+	OSStatus FWASetCycleTimeOffset(FWARef inRef, UInt32 cycleTimeOffset) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetVendorID
+	 * @abstract Gets the vendor ID of the device.
+	 * @discussion This function retrieves the vendor ID that the FireWire family places in the I/O Registry when the device is enumerated.
+	 * @availability Version 2
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param vendorID On return, a pointer to the vendor ID of the device.
+	 * @result OSStatus
+	 */     
+	OSStatus FWAGetVendorID(FWARef inRef, UInt32 * vendorID) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetDeviceName
+	 * @abstract Gets the name of the device.
+	 * @discussion This function retrieves the device name that the FireWire family places in the I/O Registry when the device is enumerated.
+	 * @availability Version 2
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param name On return, a pointer to the device name.
+	 * @result OSStatus
+	 */
+	OSStatus FWAGetDeviceName(FWARef inRef, char * name) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetVendorName
+	 * @abstract Gets the vendor name of the device.
+	 * @discussion This function retrieves the vendor name that the FireWire family places in the I/O Registry when the device is enumerated.
+	 * @availability Version 2
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param name On return, a pointer to the device name.
+	 * @result OSStatus
+	 */
+	OSStatus FWAGetVendorName(FWARef inRef, char * name) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAIsMIDICapable
+	 * @abstract Returns whether the device is MIDI capable.
+	 * @availability Version 2
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param supportsMIDI On return, a pointer to a Boolean value (TRUE if the device supports MIDI, FALSE if it does not).
+	 * @result OSStatus
+	 */
+	OSStatus FWAIsMIDICapable(FWARef inRef, bool* supportsMIDI) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetNumMIDIInputPlugs
+	 * @abstract Gets the total number of MIDI input plugs of all MIDI streams attached to the device.
+	 * @availability Version 2
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param plugs On return, a pointer to the number of MIDI input plugs.
+	 * @result OSStatus
+	 */
+	OSStatus FWAGetNumMIDIInputPlugs(FWARef inRef, UInt32* plugs) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetNumMIDIOutputPlugs
+	 * @abstract Gets the total number of MIDI output plugs of all MIDI streams attached to the device.
+	 * @availability Version 2
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param plugs On return, a pointer to the number of MIDI output plugs.
+	 * @result OSStatus 
+	 */
+	OSStatus FWAGetNumMIDIOutputPlugs(FWARef inRef, UInt32* plugs) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWASetNumMIDIInputPlugs
+	 * @abstract Sets the number of MIDI input plugs of all MIDI streams attached to the device.
+	 * @availability Version 2
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param plugs The number of input plugs.
+	 * @result OSStatus
+	 */
+	OSStatus FWASetNumMIDIInputPlugs(FWARef inRef, UInt32 plugs) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWASetNumMIDIOutputPlugs
+	 * @abstract Sets the number of MIDI output plugs of all MIDI streams attached to the device.
+	 * @availability Version 2
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param plugs The number of output plugs.
+	 * @result OSStatus
+	 */
+	OSStatus FWASetNumMIDIOutputPlugs(FWARef inRef, UInt32 plugs) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetNumAudioInputPlugs
+	 * @abstract Gets the total number of audio input plugs to the device.
+	 * @availability Version 2
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param plugs On return, a pointer to the number of audio input plugs.
+	 * @result OSStatus
+	 */
+	OSStatus FWAGetNumAudioInputPlugs(FWARef inRef, UInt32* plugs) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetNumAudioOutputPlugs
+	 * @abstract Gets the total number of audio output plugs to the device.
+	 * @availability Version 2
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param plugs On return, a pointer to the number of audio output plugs.
+	 * @result OSStatus
+	 */
+	OSStatus FWAGetNumAudioOutputPlugs(FWARef inRef, UInt32* plugs) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWACreateAudioStream
+	 * @abstract This function has been deprecated. Use @link FWACreateFWAudioStream FWACreateFWAudioStream@/link instead.
+	 * @availability Version 2
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param audioIO
+	 * @param audioStreamRef
+	 * @param sequenceNum
+	 * @result OSStatus
+	 */
+	OSStatus FWACreateAudioStream(FWARef inRef,UInt32 audioIO, UInt32 *audioStreamRef, UInt32 *sequenceNum) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#pragma mark -- V3
+
+	/*! @group Version 3 */
+
+	/*!
+	 * @function FWADisposeAudioStream
+	 * @abstract This function has been deprecated. Use @link FWADisposeFWAudioStream FWADisposeFWAudioStream@/link instead.
+	 * @availability Version 3
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param audioStreamRef
+	 * @result OSStatus
+	 */
+	OSStatus FWADisposeAudioStream(FWARef inRef, UInt32 audioStreamRef) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetDeviceSampleRate 
+	 * @abstract Gets the device's current sample rate.
+	 * @availability Version 3
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param rate On return, a pointer to the current sample rate value.
+	 * @result OSStatus
+	 */
+	OSStatus FWAGetDeviceSampleRate(FWARef inRef,UInt32* rate) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetDeviceSendMode
+	 * @abstract Gets the device's current send mode.
+	 * @availability Version 3
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param mode On return, a pointer to the send mode (can be either IEC60958 or Raw audio).
+	 * @result OSStatus
+	 */
+	OSStatus FWAGetDeviceSendMode(FWARef inRef,UInt32* mode) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetDeviceStatus
+	 * @abstract Returns a status structure containing device statistics (intended for diagnostic use).
+	 * @availability Version 3
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param outData A pointer to a status structure.
+	 * @param inSize The size of the status structure.
+	 * @result OSStatus
+	 */
+	OSStatus FWAGetDeviceStatus( FWARef inRef, void *outData, UInt32 inSize) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetDeviceStreamInfo
+	 * @abstract Returns private information about the driver, according to specific input parameters.
+	 * @availability Version 3
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param audioStreamRef Unused.
+	 * @param numInput The number of input channels of this stream.
+	 * @param inputIsochChan The isochronous channel used for the input stream.
+	 * @param numOutput The number of output channels of this stream.
+	 * @param outputIsochChan The isochronous channel used for the output stream.
+	 * @result OSStatus
+	 */
+	OSStatus FWAGetDeviceStreamInfo(FWARef inRef, UInt32 audioStreamRef, UInt32* numInput,UInt32* inputIsochChan, UInt32* numOutput,UInt32* outputIsochChan) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	// Async methods added for MIDI
+
+	/*! @group Version 3 (asynchronous MIDI functions) */
+
+	/*!
+	 * @function FWAInitAEvntSource
+	 * @abstract Initializes the event source so asynchronous commands can send a notification to the CFRunLoop source.
+	 * @availability Version 3
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param source The run loop to send messages to.
+	 * @param refcon User value that is returned when the event source is triggered.
+	 * @result OSStatus
+	 */
+	OSStatus FWAInitAEvntSource(FWARef inRef, CFRunLoopSourceRef *source, void * refcon) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function CreateAsyncWakePort
+	 * @abstract Creates a port for asynchronous responses (most developers will not need to use this).
+	 * @availability Version 3
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param notifyPort On return, a Mach port (mach_port_t) for notification.
+	 * @result OSStatus
+	 */
+	OSStatus CreateAsyncWakePort(FWARef inRef, mach_port_t *notifyPort) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetAEvntSource
+	 * @abstract Gets the event source reference.
+	 * @availability Version 3
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @result The run loop to pass in @link FWAInitAEvntSource FWAInitAEvntSource@/link.
+	 */
+	CFRunLoopSourceRef FWAGetAEvntSource(FWARef inRef) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAWriteMIDIDataAsync
+	 * @abstract Writes data to the MIDI stream asynchronously.
+	 * @availability Version 3
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param midiStreamRef The FWAMIDIStreamRef returned in @link FWACreateMIDIStream FWACreateMIDIStream@/link.
+	 * @param writeMsgLength Length of the data to write in bytes.
+	 * @param callback
+	 * @param refCon User value that is returned when the notification is sent.
+	 * @result OSStatus
+	 */
+	OSStatus FWAWriteMIDIDataAsync(FWARef inRef, UInt32 midiStreamRef, UInt32 writeMsgLength, IOAsyncCallback1 callback, void * refCon) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAReadMIDIDataAsync
+	 * @abstract Reads data from the MIDI stream asynchronously.
+	 * @availability Version 3
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link.
+	 * @param midiStreamRef The FWAMIDIStreamRef returned in @link FWACreateMIDIStream FWACreateMIDIStream@/link.
+	 * @param readBufSize Size in bytes of the buffer in which to receive the results.
+	 * @param callback
+	 * @param refCon User value that is returned when the notification is sent.
+	 * @result OSStatus
+	 */
+	OSStatus FWAReadMIDIDataAsync(FWARef inRef, UInt32 midiStreamRef, UInt32 readBufSize, IOAsyncCallback2 callback, void * refCon) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#pragma mark -- V4
+
+	/*! @group Version 4 */
+
+	/*!
+	 * @function FWASetDeviceStreamInfo
+	 * @abstract This function is deprecated.
+	 * @availability Version 4
+	 * @param inRef
+	 * @param audioStreamRef
+	 * @param numInput
+	 * @param inputIsochChan 
+	 * @param numOutput 
+	 * @param outputIsochChan
+	 * @param update
+	 * @result Because this function is deprecated, the return value indicates it is unimplemented.
+	 */
+	OSStatus FWASetDeviceStreamInfo(FWARef inRef, UInt32 audioStreamRef, UInt32 numInput,UInt32 inputIsochChan, UInt32 numOutput,UInt32 outputIsochChan,bool update) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+	
+	//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#pragma mark -- V5
+	/*! @group Version 5 */
+
+	/*!
+	 * @function FWASyncUpDevice
+	 * @abstract Causes a notification to be sent to the driver that something may have changed externally and that the driver should resynchronize.  This function is currently not used.
+	 * @availability Version 5 
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @result OSStatus
+	 */     
+	OSStatus FWASyncUpDevice(FWARef inRef) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetMaxSpeed
+	 * @availability Version 5
+	 * @abstract Gets the maximum speed of the device.
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param speed On return, a pointer to an IOFWSpeed that contains the speed.
+	 * @result OSStatus
+	 */
+	OSStatus FWAGetMaxSpeed(FWARef inRef,IOFWSpeed* speed) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetMaxIsochChannels
+	 * @abstract Gets the maximum number of isochronous stream contexts the Macintosh can support.
+	 * @availability Version 5 
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param inChannels On return, a pointer to the number of isochronous input channels.
+	 * @param outChannels On return, a pointer to the number of isochronous output channels.
+	 * @result OSStatus
+	 */
+	OSStatus FWAGetMaxIsochChannels(FWARef inRef, UInt32* inChannels, UInt32* outChannels) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetMaxSequences
+	 * @abstract Gets the maximum number of sequences the driver can support.
+	 * @availability Version 5 
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param numSequences On return, a pointer to the number of sequences.
+	 * @result OSStatus
+	 */
+	OSStatus FWAGetMaxSequences(FWARef inRef, UInt32* numSequences) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	 /*!
+	 * @function FWAGetSupportedSampleRates
+	 * @abstract Gets the sample rates the driver supports.
+	 * @availability Version 5 
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param sampleRates A pointer to an array of sample rates.
+	 * @param count On input, a pointer to the number of sample rates the array can hold; on return, the actual number of sample rates returned.
+	 * @result OSStatus
+	 */
+	OSStatus FWAGetSupportedSampleRates(FWARef inRef, UInt32* sampleRates, UInt32* count) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetSupportedAudioTypes
+	 * @abstract Gets the audio types the driver supports.
+	 * @availability Version 5 
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param audioTypes A pointer to an array of audio types. 
+	 * @param count On input, a pointer to the number of audio types the array can hold; on return, the actual number of audio types returned.
+	 * @result OSStatus
+	 */
+	OSStatus FWAGetSupportedAudioTypes(FWARef inRef, FWAudioType* audioTypes, UInt32* count) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetCurrentIsochStreamRefs
+	 * @abstract Gets the isochronous stream references the driver currently supports.
+	 * @availability Version 5 
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param isochStreamRef A pointer to an array of isochronous stream references.
+	 * @param count On input, a pointer to the number of audio types the array can hold; on return, the actual number of audio types returned.
+	 * @result OSStatus
+	 */
+	OSStatus FWAGetCurrentIsochStreamRefs(FWARef inRef, FWAIsochStreamRef* isochStreamRef, UInt32* count) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetIsochStreamState
+	 * @abstract Gets the isochronous stream state of the specified isochronous stream reference.
+	 * @availability Version 5
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param isochStreamRef An isochronous stream reference.
+	 * @param state A pointer to an FWAStreamState that contains the current state (can be stopped, running, paused, or resumed).
+	 * @result OSStatus
+	 */
+	OSStatus FWAGetIsochStreamState(FWARef inRef, FWAIsochStreamRef isochStreamRef,FWAStreamState* state) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetIsochStreamDirection
+	 * @abstract Gets the stream direction of the specified isochronous stream reference.
+	 * @availability Version 5
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param isochStreamRef An isochronous stream reference.
+	 * @param direction A pointer to an FWAStreamDirection that contains the current stream direction (can be out or in).
+	 * @result OSStatus
+	 */
+	OSStatus FWAGetIsochStreamDirection(FWARef inRef, FWAIsochStreamRef isochStreamRef,FWAStreamDirection* direction) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetIsochStreamChannelID
+	 * @abstract Gets the current isochronous stream channel ID.
+	 * @availability Version 5
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param isochStreamRef An isochronous stream reference.
+	 * @param channelID On return, a pointer to the current isochronous stream channel ID.
+	 * @result OSStatus
+	 */
+	OSStatus FWAGetIsochStreamChannelID(FWARef inRef, FWAIsochStreamRef isochStreamRef,UInt32* channelID) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWASetIsochStreamChannelID
+	 * @abstract Sets the isochronous stream channel ID to the given value.
+	 * @availability Version 5
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param isochStreamRef An isochronous stream reference.
+	 * @param channelID The value to which the isochronous stream channel ID should be set.
+	 * @result OSStatus
+	 */
+	OSStatus FWASetIsochStreamChannelID(FWARef inRef, FWAIsochStreamRef isochStreamRef,UInt32 channelID) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetIsochStreamSampleRate
+	 * @abstract Gets the sample rate of the specified isochronous stream.
+	 * @availability Version 5
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param isochStreamRef An isochronous stream reference.
+	 * @param rate On return, a pointer to the isochronous stream sample rate.
+	 * @result OSStatus 
+	 */
+	OSStatus FWAGetIsochStreamSampleRate(FWARef inRef, FWAIsochStreamRef isochStreamRef,UInt32* rate) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWASetIsochStreamSampleRate
+	 * @abstract Sets the sample rate of the specified isochronous stream.
+	 * @availability Version 5
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param isochStreamRef An isochronous stream reference.
+	 * @param rate The sample rate to which the isochronous stream should be set.
+	 * @result OSStatus 
+	 */
+	OSStatus FWASetIsochStreamSampleRate(FWARef inRef, FWAIsochStreamRef isochStreamRef,UInt32 rate) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetIsochStreamOutputSpeed
+	 * @abstract Gets the speed of the specified isochronous output stream.
+	 * @availability Version 5 
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param isochStreamRef An isochronous stream reference. 
+	 * @param speed On return, a pointer to an IOFWSpeed that contains the speed.
+	 * @result OSStatus
+	 */
+	OSStatus FWAGetIsochStreamOutputSpeed(FWARef inRef, FWAIsochStreamRef isochStreamRef,IOFWSpeed* speed) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWASetIsochStreamOutputSpeed
+	 * @abstract Sets the speed of the specified isochronous output stream.
+	 * @availability Version 5 
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param isochStreamRef An isochronous stream reference. 
+	 * @param speed The speed to which the isochronous output stream should be set.
+	 * @result OSStatus
+	 */
+	OSStatus FWASetIsochStreamOutputSpeed(FWARef inRef, FWAIsochStreamRef isochStreamRef,IOFWSpeed speed) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetIsochStreamAudioType 
+	 * @abstract Gets the audio type of the specified isochronous stream.
+	 * @availability Version 5 
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param isochStreamRef An isochronous stream reference.
+	 * @param type On return, a pointer to an FWAudioType that contains the type (can be IEC60598, raw audio, or MIDI).
+	 * @result OSStatus
+	 */
+	OSStatus FWAGetIsochStreamAudioType(FWARef inRef, FWAIsochStreamRef isochStreamRef, FWAudioType* type) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWASetIsochStreamAudioType 
+	 * @abstract Sets the audio type of the specified isochronous stream.
+	 * @availability Version 5 
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param isochStreamRef An isochronous stream reference.
+	 * @param type The audio type to which the isochronous stream should be set.
+	 * @result OSStatus
+	 */
+	OSStatus FWASetIsochStreamAudioType(FWARef inRef, FWAIsochStreamRef isochStreamRef, FWAudioType type) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWACreateIsochStream
+	 * @abstract Creates an isochronous stream.
+	 * @availability Version 5 
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param channelNumber The requested isochronous channel number to use. If this channel number is available, it will be allocated. If this channel number is in use, this routine will find
+	 * the next available channel number. If there are no more channels available, it will return kIOReturnNoResources.
+	 * @param direction The direction of the isochronous stream (can be kIOAudioStreamDirectionInput or kIOAudioStreamDirectionOutput).
+	 * @param numAudioChannels The number of audio channels to create for this stream.
+	 * @param numMIDIChannels The number of MIDI channels to create for this stream.
+	 * @param isochStreamRef On return, an FWAIsochStreamRef representing this isochronous stream.
+	 * @result OSStatus
+	 */
+	OSStatus FWACreateIsochStream(FWARef inRef, UInt32 channelNumber,FWAStreamDirection direction,UInt32 numAudioChannels,UInt32 numMIDIChannels, FWAIsochStreamRef* isochStreamRef ) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWADisposeIsochStream
+	 * @abstract Destroys the isochronous stream reference.
+	 * @availability Version 5
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param isochStreamRef The FWAIsochStreamRef created with @link FWACreateIsochStream FWACreateIsochStream@/link.
+	 * @result OSStatus
+	 */
+	OSStatus FWADisposeIsochStream(FWARef inRef,FWAIsochStreamRef isochStreamRef ) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAStartIsochStream
+	 * @abstract Starts an isochronous stream.
+	 * @availability Version 5 
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param isochStreamRef The FWAIsochStreamRef created with @link FWACreateIsochStream FWACreateIsochStream@/link.
+	 * @result OSStatus
+	 */     
+	OSStatus FWAStartIsochStream(FWARef inRef, FWAIsochStreamRef isochStreamRef) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAStopIsochStream
+	 * @abstract Stops an isochronous stream.
+	 * @availability Version 5 
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param isochStreamRef The FWAIsochStreamRef created with @link FWACreateIsochStream FWACreateIsochStream@/link.
+	 * @result OSStatus
+	 */
+	OSStatus FWAStopIsochStream(FWARef inRef,FWAIsochStreamRef isochStreamRef ) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetIsochStreamAudioSequenceCount
+	 * @abstract Returns the number of audio sequences in the frame.
+	 * @availability Version 5 
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param isochStreamRef The FWAIsochStreamRef created with @link FWACreateIsochStream FWACreateIsochStream@/link.
+	 * @param numAudioSequence On return, a pointer to the audio sequence count.
+	 * @result OSStatus
+	 */
+	OSStatus FWAGetIsochStreamAudioSequenceCount(FWARef inRef, FWAIsochStreamRef isochStreamRef,UInt32* numAudioSequence) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWASetIsochStreamAudioSequenceCount
+	 * @abstract Changes the number of audio sequences in a FWAIsochStreamRef object.
+	 * @availability Version 5 
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param isochStreamRef The FWAIsochStreamRef created with @link FWACreateIsochStream FWACreateIsochStream@/link.
+	 * @param numAudioSequence The number to which the isochronous stream audio sequence count should be set.
+	 * @result OSStatus
+	 */
+	OSStatus FWASetIsochStreamAudioSequenceCount(FWARef inRef, FWAIsochStreamRef isochStreamRef,UInt32 numAudioSequence) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetIsochStreamMIDISequenceCount
+	 * @abstract Returns the number of MIDI sequences in the frame.
+	 * @availability Version 5 
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param isochStreamRef The FWAIsochStreamRef created with @link FWACreateIsochStream FWACreateIsochStream@/link.
+	 * @param numMIDISequence On return, the sequence count of the MIDI stream.
+	 * @result OSStatus
+	 */
+	OSStatus FWAGetIsochStreamMIDISequenceCount(FWARef inRef, FWAIsochStreamRef isochStreamRef,UInt32* numMIDISequence) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWASetIsochStreamMIDISequenceCount
+	 * @abstract
+	 * @availability Version 5
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param isochStreamRef The FWAIsochStreamRef created with @link FWACreateIsochStream FWACreateIsochStream@/link.
+	 * @param numMIDISequence The sequence count to which the MIDI stream should be set.
+	 * @result OSStatus
+	 */
+	OSStatus FWASetIsochStreamMIDISequenceCount(FWARef inRef, FWAIsochStreamRef isochStreamRef,UInt32 numMIDISequence) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+	
+	/*!
+	 * @function FWACreateFWAudioDevice
+	 * @abstract Creates an audio device that is connected to the local node.
+	 * @discussion To create a local audio device that will work with Core Audio, you must also create the following
+	 * objects (in this order):<br>
+	 * <ul><li>An audio engine (using @link FWACreateFWAudioEngine FWACreateFWAudioEngine@/link)</li>
+	 * <li>One or more isochronous streams (using @link FWACreateIsochStream FWACreateIsochStream@/link)</li>
+	 * <li>One or more audio streams (using @link FWACreateFWAudioStream FWACreateFWAudioStream@/link)</li>
+	 * </ul>
+	 * @availability Version 5
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param deviceName The string representing the device name.
+	 * @param vendorID The vendor ID of the device.
+	 * @param guid The GUID of the device.
+	 * @param device On return, the FWADeviceRef representing the audio device.
+	 * @result OSStatus
+	 */
+	OSStatus FWACreateFWAudioDevice(FWARef inRef,const char * deviceName, UInt32 vendorID,const char* guid, FWADeviceRef* device) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWADisposeFWAudioDevice
+	 * @abstract Destroys an audio device object.
+	 * @availability Version 5
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param device The FWADeviceRef created with @link FWACreateFWAudioDevice FWACreateFWAudioDevice@/link.
+	 * @result OSStatus
+	 */
+	OSStatus FWADisposeFWAudioDevice(FWARef inRef,FWADeviceRef device) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAStartFWAudioDevice
+	 * @abstract Starts an audio device.
+	 * @discussion All streams connected to the device will be started. If there are no streams attached, this function will return a kIOReturnNoResources error.
+	 * @availability Version 5
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param device The FWADeviceRef created with @link FWACreateFWAudioDevice FWACreateFWAudioDevice@/link.
+	 * @result OSStatus
+	 */
+	OSStatus FWAStartFWAudioDevice(FWARef inRef,FWADeviceRef device) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAStopFWAudioDevice
+	 * @abstract Stops an audio device.
+	 * @discussion This function stops all the streams connected to the device and deallocates the resources created for the streaming.
+	 * @availability Version 5
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param device The FWADeviceRef created with @link FWACreateFWAudioDevice FWACreateFWAudioDevice@/link.
+	 * @result OSStatus 
+	 */
+	OSStatus FWAStopFWAudioDevice(FWARef inRef,FWADeviceRef device) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWACreateFWAudioEngine
+	 * @abstract Creates an IOAudioEngine for the specified audio device.
+	 * @availability Version 5 
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param owningDevice The FWADeviceRef created with @link FWACreateFWAudioDevice FWACreateFWAudioDevice@/link.
+	 * @param hasInput A Boolean value that indicates whether the device has audio input channels.
+	 * @param hasOutput A Boolean value that indicates whether the device has audio output channels.
+	 * @param engine On return, the FWAEngineRef representing the audio engine.
+	 * @result OSStatus
+	 */
+	OSStatus FWACreateFWAudioEngine(FWARef inRef, FWADeviceRef owningDevice, bool hasInput, bool hasOutput, FWAEngineRef* engine) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWADisposeFWAudioEngine
+	 * @abstract Destroys an audio engine object.
+	 * @availability Version 5 
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param engine The FWAEngineRef created with @link FWACreateFWAudioEngine FWACreateFWAudioEngine@/link.
+	 * @result OSStatus
+	 */     
+	OSStatus FWADisposeFWAudioEngine(FWARef inRef, FWAEngineRef engine) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWACreateFWAudioStream
+	 * @abstract Creates an audio stream in the specified isochronous stream.
+	 * @availability Version 5 
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param owningIsochStreamRef The FWAIsochStreamRef created with @link FWACreateIsochStream FWACreateIsochStream@/link.
+	 * @param channelNumber The Core Audio channel number (channels are numbered 1 to n channels).
+	 * @param direction The direction of the audio stream (can be either kIOAudioStreamDirectionInput or kIOAudioStreamDirectionOutput).
+	 * @param numAudioChannels The number of audio channels this audio stream should have.
+	 * @param streamName The string representing the stream name.
+	 * @param streamIdent A pointer to a stream ID property used to identify the stream in the I/O Registry.
+	 * @param streamRef On return, the FWAAudioStreamRef representing this audio stream.
+	 * @result OSStatus
+	 */
+	OSStatus FWACreateFWAudioStream(FWARef inRef, FWAIsochStreamRef owningIsochStreamRef, UInt32 channelNumber,UInt32 direction,UInt32 numAudioChannels,char* streamName,UInt8* streamIdent, FWAAudioStreamRef* streamRef) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWADisposeFWAudioStream
+	 * @abstract Destroys an audio stream object.
+	 * @availability Version 5
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param streamRef The FWAAudioStreamRef created with @link FWACreateFWAudioStream FWACreateFWAudioStream@/link.
+	 * @result OSStatus
+	 */
+
+	OSStatus FWADisposeFWAudioStream(FWARef inRef, FWAAudioStreamRef streamRef ) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWACreateFWAudioMIDIStream
+	 * @abstract Creates a MIDI stream.
+	 * @availability Version 5
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param owningIsochStreamRef The FWAIsochStreamRef created with @link FWACreateIsochStream FWACreateIsochStream@/link.
+	 * @param sequenceNumber The sequence number representing the slot in the packet of this MIDI stream.
+	 * @param direction The direction of the MIDI stream (can be either kIOAudioStreamDirectionInput or kIOAudioStreamDirectionOutput).
+	 * @param streamRef On return, the FWAMIDIStreamRef representing this MIDI stream.
+	 * @result OSStatus
+	 */
+	OSStatus FWACreateFWAudioMIDIStream(FWARef inRef, FWAIsochStreamRef owningIsochStreamRef, UInt32 sequenceNumber,UInt32 direction, FWAMIDIStreamRef* streamRef) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWADisposeFWAudioMIDIStream
+	 * @abstract Destroys a MIDI stream.
+	 * @availability Version 5
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param streamRef The FWAMIDIStreamRef created with @link FWACreateFWAudioMIDIStream FWACreateFWAudioMIDIStream@/link.
+	 * @result OSStatus
+	 */
+	OSStatus FWADisposeFWAudioMIDIStream(FWARef inRef, FWAMIDIStreamRef streamRef ) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWACreateFWAudioMIDIPlug
+	 * @abstract Creates a MIDI plug.
+	 * @availability Version 5
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param owningMIDIStreamRef The FWAMIDIStreamRef created with @link FWACreateFWAudioMIDIStream FWACreateFWAudioMIDIStream@/link.
+	 * @param mpxID The MIDI multiplex index ID that specifies the index to which this plug should go.
+	 * @param plugName The string representing the plug name.
+	 * @param plugIdent A property of the MIDI plug.
+	 * @param streamRef On return, the FWAMIDIPlugRef representing this MIDI plug.
+	 * @result OSStatus
+	 */
+	OSStatus FWACreateFWAudioMIDIPlug(FWARef inRef, FWAMIDIStreamRef owningMIDIStreamRef,UInt8 mpxID,char* plugName, UInt8* plugIdent, FWAMIDIPlugRef* streamRef) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWADisposeFWAudioMIDIPlug
+	 * @abstract Destroys a MIDI plug object.
+	 * @availability Version 5
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param plugRef The FWAMIDIPlugRef created with @link FWACreateFWAudioMIDIPlug FWACreateFWAudioMIDIPlug @/link.
+	 * @result OSStatus
+	 */
+	OSStatus FWADisposeFWAudioMIDIPlug(FWARef inRef, FWAMIDIPlugRef plugRef ) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWAGetClockSource
+	 * @abstract Returns the isochronous stream providing the clock (SYT) for the audio.
+	 * @availability Version 5
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param streamRef The FWAIsochStreamRef created with @link FWACreateIsochStream FWACreateIsochStream@/link.
+	 * @param sequence
+	 * @result OSStatus
+	 */
+	OSStatus FWAGetClockSource(FWARef inRef, FWAIsochStreamRef *streamRef, UInt32 *sequence) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*!
+	 * @function FWASetClockSource
+	 * @abstract Sets the isochronous stream as the clock source.
+	 * @availability Version 5
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param streamRef The FWAIsochStreamRef created with @link FWACreateIsochStream FWACreateIsochStream@/link.
+	 * @param sequence
+	 * @result OSStatus
+	 */
+	OSStatus FWASetClockSource(FWARef inRef, FWAIsochStreamRef streamRef,UInt32 sequence) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#pragma mark -- V6
+
+	/*! @group Version 6 */
+
+	/*!
+	 * @function FWASetAutoLoad
+	 * @abstract Creates or removes the AppleFWAudio_Disable property in the I/O Registry.
+	 * @discussion The existence of the AppleFWAudio_Disable property in the I/O Registry tells the driver to <i>not</i> load if it matches on a device (the
+	 * value of the property does not matter). Call FWASetAutoLoad with enable = TRUE to create the property. To remove the property (if it already exists), call
+	 * {@link FWASetAutoLoad} with enable = FALSE.
+	 * @availability Version 6
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param enable A Boolean value that indicates whether the AppleFWAudio_Disable property should be removed from or created in the I/O Registry.
+	 * @result OSStatus
+	 */
+	OSStatus FWASetAutoLoad(FWARef inRef, bool enable) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/* 
+	 * @function FWAGetProperty
+	 * @abstract 
+	 * @availability Version 6
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param propertyID
+	 * @param data
+	 * @param size
+	 * @result OSStatus
+	 */
+	OSStatus FWAGetProperty(FWARef inRef, UInt32 propertyID, void * data,UInt32* size) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*
+	 * @function FWASetProperty
+	 * @abstract
+	 * @availability Version 6
+	 * @param inRef The FWARef returned in @link FWAOpen FWAOpen@/link or in @link FWAOpenLocal FWAOpenLocal@/link.
+	 * @param propertyID
+	 * @param data
+	 * @param size
+	 * @result OSStatus
+	 */
+	OSStatus FWASetProperty(FWARef inRef, UInt32 propertyID, void * data,UInt32 size) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#pragma mark -- V7
+	
+	/*! @group Version 7 */
+
+	/*! Description forthcoming. */
+	OSStatus FWASetPluginPath(FWARef inRef,FWAEngineRef engine,UInt32 vendorID, UInt32 modelID, const char* pluginPath) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+	
+	/*! Description forthcoming. */
+	OSStatus FWACreateFWAudioPlug(FWARef inRef, FWAAudioStreamRef owningStream,UInt32 channelID,char* plugName, UInt8* plugIdent, FWAAudioPlugRef* streamRef) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*! Description forthcoming. */
+	OSStatus FWADisposeFWAudioPlug(FWARef inRef, FWAAudioPlugRef plugRef ) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+	
+	/*! Description forthcoming. */
+	OSStatus FWAGetFWAudioMIDIPlugChannel(FWARef inRef, FWAMIDIPlugRef streamRef,UInt32* channelID) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*! Description forthcoming. */
+	OSStatus FWASetFWAudioMIDIPlugChannel(FWARef inRef, FWAMIDIPlugRef streamRef,UInt32 channelID) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*! Description forthcoming. */
+	OSStatus FWAGetFWAudioPlugChannel(FWARef inRef, FWAAudioPlugRef streamRef,UInt32* channelID) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*! Description forthcoming. */
+	OSStatus FWASetFWAudioPlugChannel(FWARef inRef, FWAAudioPlugRef streamRef,UInt32 channelID) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*! Description forthcoming. */
+	OSStatus FWAGetIndexedFWAudioPlug(FWARef inRef,FWADeviceRef device, UInt32 index,UInt32 dir, FWAAudioPlugRef* plugRef) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*! Description forthcoming. */
+	OSStatus FWAGetIndexedFWAudioMIDIPlug(FWARef inRef, FWAMIDIDeviceNubRef device,UInt32 index,UInt32 dir,FWAMIDIPlugRef* plugRef) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+	
+	/*! Description forthcoming. */
+	OSStatus FWAAttachFWAudioStream(FWARef inRef, FWAAudioStreamRef streamRef,FWAIsochStreamRef isochChannel) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*! Description forthcoming. */
+	OSStatus FWAAttachFWAudioMIDIStream(FWARef inRef, FWAMIDIStreamRef streamRef,FWAIsochStreamRef isochChannel) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*! Description forthcoming. */
+	OSStatus FWASetFWAudioPlugProperty(FWARef inRef, FWAAudioPlugRef plugRef,const char *keyname,const  char* keyvalue) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*! Description forthcoming. */
+	OSStatus FWASetFWAudioMIDIPlugProperty(FWARef inRef,FWAMIDIPlugRef plugRef,const char *keyname,const  char* keyvalue) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*! Description forthcoming. */
+	OSStatus FWAOpenLocalWithInterface(UInt64 guid,UInt32 options, FWARef* outRef) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*! Description forthcoming. */
+	OSStatus FWAOpenWithService(io_service_t ,UInt32 options, FWARef* outRef) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*! Description forthcoming. */
+	OSStatus FWAGetSessionRef(FWARef inRef,IOFireWireSessionRef * sessionRef) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*! Description forthcoming. */
+	OSStatus FWAReserveIsochSequences(FWARef inRef,FWAIsochStreamRef isochStream,FWAudioType type,UInt32 count) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+	
+	/*! Description forthcoming. */
+	OSStatus FWACreateFWAudioMIDIDeviceNub(FWARef inRef,FWADeviceRef owningDevice, const char * deviceName, UInt32 vendorID,const char* guid,const char* iconFilePath, UInt32 modelID, const char * editorPath, FWAMIDIDeviceNubRef* device) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*! Description forthcoming. */
+	OSStatus FWADisposeFWAudioMIDIDeviceNub(FWARef inRef,FWAMIDIDeviceNubRef device) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*! Description forthcoming. */
+	OSStatus FWAMIDIDeviceNubAttachMIDIPlug(FWARef inRef, FWAMIDIDeviceNubRef midiDeviceNub,FWAMIDIPlugRef midiPlug) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+
+	/*! Description forthcoming. */
+	OSStatus FWAMIDIDeviceNubDetachMIDIPlug(FWARef inRef, FWAMIDIPlugRef midiPlug) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 ;
+#pragma clang arc_cf_code_audited end
+#if __cplusplus
+}
+#endif
+
+
Clone this wiki locally