package vendor:android/opensles

⌘K
Ctrl+K
or
/

    Index

    Types (177)
    Constants (375)
    Variables (53)
    Procedure Groups (0)

    This section is empty.

    Types

    SL3DCommitItf ¶

    SL3DCommitItf :: ^struct {
    	using itf: ^SL3DCommitItf_,
    }

    SL3DCommitItf_ ¶

    SL3DCommitItf_ :: struct {
    	Commit:      proc "c" (self: ^struct {
    		using itf: ^SL3DCommitItf_,
    	}) -> u32,
    	SetDeferred: proc "c" (self: ^struct {
    		using itf: ^SL3DCommitItf_,
    	}, deferred: u32) -> u32,
    }

    SL3DDopplerItf ¶

    SL3DDopplerItf :: ^struct {
    	using itf: ^SL3DDopplerItf_,
    }

    SL3DDopplerItf_ ¶

    SL3DDopplerItf_ :: struct {
    	SetVelocityCartesian: proc "c" (self: ^struct {
    		using itf: ^SL3DDopplerItf_,
    	}, pVelocity: ^SLVec3D) -> u32,
    	SetVelocitySpherical: proc "c" (self: ^struct {
    		using itf: ^SL3DDopplerItf_,
    	}, azimuth: i32, elevation: i32, speed: i32) -> u32,
    	GetVelocityCartesian: proc "c" (self: ^struct {
    		using itf: ^SL3DDopplerItf_,
    	}, pVelocity: ^SLVec3D) -> u32,
    	SetDopplerFactor:     proc "c" (self: ^struct {
    		using itf: ^SL3DDopplerItf_,
    	}, dopplerFactor: i16) -> u32,
    	GetDopplerFactor:     proc "c" (self: ^struct {
    		using itf: ^SL3DDopplerItf_,
    	}, pDopplerFactor: ^i16) -> u32,
    }

    SL3DGroupingItf ¶

    SL3DGroupingItf :: ^struct {
    	using itf: ^SL3DGroupingItf_,
    }

    SL3DGroupingItf_ ¶

    SL3DGroupingItf_ :: struct {
    	Set3DGroup: proc "c" (self: ^struct {
    		using itf: ^SL3DGroupingItf_,
    	}, group: ^struct {
    		using itf: ^SLObjectItf_,
    	}) -> u32,
    	Get3DGroup: proc "c" (self: ^struct {
    		using itf: ^SL3DGroupingItf_,
    	}, pGroup: ^^struct {
    		using itf: ^SLObjectItf_,
    	}) -> u32,
    }

    SL3DLocationItf ¶

    SL3DLocationItf :: ^struct {
    	using itf: ^SL3DLocationItf_,
    }

    SL3DLocationItf_ ¶

    SL3DLocationItf_ :: struct {
    	SetLocationCartesian:  proc "c" (self: ^struct {
    		using itf: ^SL3DLocationItf_,
    	}, pLocation: ^SLVec3D) -> u32,
    	SetLocationSpherical:  proc "c" (self: ^struct {
    		using itf: ^SL3DLocationItf_,
    	}, azimuth: i32, elevation: i32, distance: i32) -> u32,
    	Move:                  proc "c" (self: ^struct {
    		using itf: ^SL3DLocationItf_,
    	}, pMovement: ^SLVec3D) -> u32,
    	GetLocationCartesian:  proc "c" (self: ^struct {
    		using itf: ^SL3DLocationItf_,
    	}, pLocation: ^SLVec3D) -> u32,
    	SetOrientationVectors: proc "c" (self: ^struct {
    		using itf: ^SL3DLocationItf_,
    	}, pFront: ^SLVec3D, pAbove: ^SLVec3D) -> u32,
    	SetOrientationAngles:  proc "c" (self: ^struct {
    		using itf: ^SL3DLocationItf_,
    	}, heading: i32, pitch: i32, roll: i32) -> u32,
    	Rotate:                proc "c" (self: ^struct {
    		using itf: ^SL3DLocationItf_,
    	}, theta: i32, pAxis: ^SLVec3D) -> u32,
    	GetOrientationVectors: proc "c" (self: ^struct {
    		using itf: ^SL3DLocationItf_,
    	}, pFront: ^SLVec3D, pUp: ^SLVec3D) -> u32,
    }

    SL3DMacroscopicItf ¶

    SL3DMacroscopicItf :: ^struct {
    	using itf: ^SL3DMacroscopicItf_,
    }

    SL3DMacroscopicItf_ ¶

    SL3DMacroscopicItf_ :: struct {
    	SetSize:               proc "c" (self: ^struct {
    		using itf: ^SL3DMacroscopicItf_,
    	}, width: i32, height: i32, depth: i32) -> u32,
    	GetSize:               proc "c" (self: ^struct {
    		using itf: ^SL3DMacroscopicItf_,
    	}, pWidth: ^i32, pHeight: ^i32, pDepth: ^i32) -> u32,
    	SetOrientationAngles:  proc "c" (self: ^struct {
    		using itf: ^SL3DMacroscopicItf_,
    	}, heading: i32, pitch: i32, roll: i32) -> u32,
    	SetOrientationVectors: proc "c" (self: ^struct {
    		using itf: ^SL3DMacroscopicItf_,
    	}, pFront: ^SLVec3D, pAbove: ^SLVec3D) -> u32,
    	Rotate:                proc "c" (self: ^struct {
    		using itf: ^SL3DMacroscopicItf_,
    	}, theta: i32, pAxis: ^SLVec3D) -> u32,
    	GetOrientationVectors: proc "c" (self: ^struct {
    		using itf: ^SL3DMacroscopicItf_,
    	}, pFront: ^SLVec3D, pUp: ^SLVec3D) -> u32,
    }

    SL3DSourceItf ¶

    SL3DSourceItf :: ^struct {
    	using itf: ^SL3DSourceItf_,
    }

    SL3DSourceItf_ ¶

    SL3DSourceItf_ :: struct {
    	SetHeadRelative:           proc "c" (self: ^struct {
    		using itf: ^SL3DSourceItf_,
    	}, headRelative: u32) -> u32,
    	GetHeadRelative:           proc "c" (self: ^struct {
    		using itf: ^SL3DSourceItf_,
    	}, pHeadRelative: ^u32) -> u32,
    	SetRolloffDistances:       proc "c" (self: ^struct {
    		using itf: ^SL3DSourceItf_,
    	}, minDistance: i32, maxDistance: i32) -> u32,
    	GetRolloffDistances:       proc "c" (self: ^struct {
    		using itf: ^SL3DSourceItf_,
    	}, pMinDistance: ^i32, pMaxDistance: ^i32) -> u32,
    	SetRolloffMaxDistanceMute: proc "c" (self: ^struct {
    		using itf: ^SL3DSourceItf_,
    	}, mute: u32) -> u32,
    	GetRolloffMaxDistanceMute: proc "c" (self: ^struct {
    		using itf: ^SL3DSourceItf_,
    	}, pMute: ^u32) -> u32,
    	SetRolloffFactor:          proc "c" (self: ^struct {
    		using itf: ^SL3DSourceItf_,
    	}, rolloffFactor: i16) -> u32,
    	GetRolloffFactor:          proc "c" (self: ^struct {
    		using itf: ^SL3DSourceItf_,
    	}, pRolloffFactor: ^i16) -> u32,
    	SetRoomRolloffFactor:      proc "c" (self: ^struct {
    		using itf: ^SL3DSourceItf_,
    	}, roomRolloffFactor: i16) -> u32,
    	GetRoomRolloffFactor:      proc "c" (self: ^struct {
    		using itf: ^SL3DSourceItf_,
    	}, pRoomRolloffFactor: ^i16) -> u32,
    	SetRolloffModel:           proc "c" (self: ^struct {
    		using itf: ^SL3DSourceItf_,
    	}, model: u8) -> u32,
    	GetRolloffModel:           proc "c" (self: ^struct {
    		using itf: ^SL3DSourceItf_,
    	}, pModel: ^u8) -> u32,
    	SetCone:                   proc "c" (self: ^struct {
    		using itf: ^SL3DSourceItf_,
    	}, innerAngle: i32, outerAngle: i32, outerLevel: i16) -> u32,
    	GetCone:                   proc "c" (self: ^struct {
    		using itf: ^SL3DSourceItf_,
    	}, pInnerAngle: ^i32, pOuterAngle: ^i32, pOuterLevel: ^i16) -> u32,
    }

    SLAndroidAcousticEchoCancellationItf_ ¶

    SLAndroidAcousticEchoCancellationItf_ :: struct {
    	SetEnabled: proc "c" (self: ^struct {
    		using itf: ^SLAndroidAcousticEchoCancellationItf_,
    	}, enabled: u32) -> u32,
    	IsEnabled:  proc "c" (self: ^struct {
    		using itf: ^SLAndroidAcousticEchoCancellationItf_,
    	}, pEnabled: ^u32) -> u32,
    }

    SLAndroidAutomaticGainControlItf ¶

    SLAndroidAutomaticGainControlItf :: ^struct {
    	using itf: ^SLAndroidAutomaticGainControlItf_,
    }

    SLAndroidAutomaticGainControlItf_ ¶

    SLAndroidAutomaticGainControlItf_ :: struct {
    	SetEnabled: proc "c" (self: ^struct {
    		using itf: ^SLAndroidAutomaticGainControlItf_,
    	}, enabled: u32) -> u32,
    	IsEnabled:  proc "c" (self: ^struct {
    		using itf: ^SLAndroidAutomaticGainControlItf_,
    	}, pEnabled: ^u32) -> u32,
    }

    SLAndroidBufferItem ¶

    SLAndroidBufferItem :: struct {
    	itemKey:  u32,
    	itemSize: u32,
    	itemData: [0]u8,
    }

    SLAndroidBufferQueueItf ¶

    SLAndroidBufferQueueItf :: ^struct {
    	using itf: ^SLAndroidBufferQueueItf_,
    }

    SLAndroidBufferQueueItf_ ¶

    SLAndroidBufferQueueItf_ :: struct {
    	RegisterCallback:      proc "c" (self: ^struct {
    		using itf: ^SLAndroidBufferQueueItf_,
    	}, callback: slAndroidBufferQueueCallback, pCallbackContext: rawptr) -> u32,
    	Clear:                 proc "c" (self: ^struct {
    		using itf: ^SLAndroidBufferQueueItf_,
    	}) -> u32,
    	Enqueue:               proc "c" (self: ^struct {
    		using itf: ^SLAndroidBufferQueueItf_,
    	}, pBufferContext: rawptr, pData: rawptr, dataLength: u32, pItems: ^SLAndroidBufferItem, itemsLength: u32) -> u32,
    	GetState:              proc "c" (self: ^struct {
    		using itf: ^SLAndroidBufferQueueItf_,
    	}, pState: ^SLAndroidBufferQueueState) -> u32,
    	SetCallbackEventsMask: proc "c" (self: ^struct {
    		using itf: ^SLAndroidBufferQueueItf_,
    	}, eventFlags: u32) -> u32,
    	GetCallbackEventsMask: proc "c" (self: ^struct {
    		using itf: ^SLAndroidBufferQueueItf_,
    	}, pEventFlags: ^u32) -> u32,
    }

    SLAndroidBufferQueueState ¶

    SLAndroidBufferQueueState :: struct {
    	count: u32,
    	index: u32,
    }

    SLAndroidConfigurationItf ¶

    SLAndroidConfigurationItf :: ^struct {
    	using itf: ^SLAndroidConfigurationItf_,
    }

    SLAndroidConfigurationItf_ ¶

    SLAndroidConfigurationItf_ :: struct {
    	SetConfiguration: proc "c" (self: ^struct {
    		using itf: ^SLAndroidConfigurationItf_,
    	}, configKey: ^u8, pConfigValue: rawptr, valueSize: u32) -> u32,
    	GetConfiguration: proc "c" (self: ^struct {
    		using itf: ^SLAndroidConfigurationItf_,
    	}, configKey: ^u8, pValueSize: ^u32, pConfigValue: rawptr) -> u32,
    	AcquireJavaProxy: proc "c" (self: ^struct {
    		using itf: ^SLAndroidConfigurationItf_,
    	}, proxyType: u32, pProxyObj: ^rawptr) -> u32,
    	ReleaseJavaProxy: proc "c" (self: ^struct {
    		using itf: ^SLAndroidConfigurationItf_,
    	}, proxyType: u32) -> u32,
    }

    SLAndroidDataFormat_PCM_EX ¶

    SLAndroidDataFormat_PCM_EX :: struct {
    	formatType:     u32,
    	numChannels:    u32,
    	sampleRate:     u32,
    	bitsPerSample:  u32,
    	containerSize:  u32,
    	channelMask:    u32,
    	endianness:     u32,
    	representation: u32,
    }

    SLAndroidEffectCapabilitiesItf ¶

    SLAndroidEffectCapabilitiesItf :: ^struct {
    	using itf: ^SLAndroidEffectCapabilitiesItf_,
    }

    SLAndroidEffectCapabilitiesItf_ ¶

    SLAndroidEffectCapabilitiesItf_ :: struct {
    	QueryNumEffects: proc "c" (self: ^struct {
    		using itf: ^SLAndroidEffectCapabilitiesItf_,
    	}, pNumSupportedEffects: ^u32) -> u32,
    	QueryEffect:     proc "c" (self: ^struct {
    		using itf: ^SLAndroidEffectCapabilitiesItf_,
    	}, index: u32, pEffectType: ^^SLInterfaceID_, pEffectImplementation: ^^SLInterfaceID_, pName: ^u8, pNameSize: ^u16) -> u32,
    }

    SLAndroidEffectItf ¶

    SLAndroidEffectItf :: ^struct {
    	using itf: ^SLAndroidEffectItf_,
    }

    SLAndroidEffectItf_ ¶

    SLAndroidEffectItf_ :: struct {
    	CreateEffect:  proc "c" (self: ^struct {
    		using itf: ^SLAndroidEffectItf_,
    	}, effectImplementationId: ^SLInterfaceID_) -> u32,
    	ReleaseEffect: proc "c" (self: ^struct {
    		using itf: ^SLAndroidEffectItf_,
    	}, effectImplementationId: ^SLInterfaceID_) -> u32,
    	SetEnabled:    proc "c" (self: ^struct {
    		using itf: ^SLAndroidEffectItf_,
    	}, effectImplementationId: ^SLInterfaceID_, enabled: u32) -> u32,
    	IsEnabled:     proc "c" (self: ^struct {
    		using itf: ^SLAndroidEffectItf_,
    	}, effectImplementationId: ^SLInterfaceID_, pEnabled: ^u32) -> u32,
    	SendCommand:   proc "c" (self: ^struct {
    		using itf: ^SLAndroidEffectItf_,
    	}, effectImplementationId: ^SLInterfaceID_, command: u32, commandSize: u32, pCommandData: rawptr, replySize: ^u32, pReplyData: rawptr) -> u32,
    }

    SLAndroidEffectSendItf ¶

    SLAndroidEffectSendItf :: ^struct {
    	using itf: ^SLAndroidEffectSendItf_,
    }

    SLAndroidEffectSendItf_ ¶

    SLAndroidEffectSendItf_ :: struct {
    	EnableEffectSend: proc "c" (self: ^struct {
    		using itf: ^SLAndroidEffectSendItf_,
    	}, effectImplementationId: ^SLInterfaceID_, enable: u32, initialLevel: i16) -> u32,
    	IsEnabled:        proc "c" (self: ^struct {
    		using itf: ^SLAndroidEffectSendItf_,
    	}, effectImplementationId: ^SLInterfaceID_, pEnable: ^u32) -> u32,
    	SetDirectLevel:   proc "c" (self: ^struct {
    		using itf: ^SLAndroidEffectSendItf_,
    	}, directLevel: i16) -> u32,
    	GetDirectLevel:   proc "c" (self: ^struct {
    		using itf: ^SLAndroidEffectSendItf_,
    	}, pDirectLevel: ^i16) -> u32,
    	SetSendLevel:     proc "c" (self: ^struct {
    		using itf: ^SLAndroidEffectSendItf_,
    	}, effectImplementationId: ^SLInterfaceID_, sendLevel: i16) -> u32,
    	GetSendLevel:     proc "c" (self: ^struct {
    		using itf: ^SLAndroidEffectSendItf_,
    	}, effectImplementationId: ^SLInterfaceID_, pSendLevel: ^i16) -> u32,
    }

    SLAndroidNoiseSuppressionItf ¶

    SLAndroidNoiseSuppressionItf :: ^struct {
    	using itf: ^SLAndroidNoiseSuppressionItf_,
    }

    SLAndroidNoiseSuppressionItf_ ¶

    SLAndroidNoiseSuppressionItf_ :: struct {
    	SetEnabled: proc "c" (self: ^struct {
    		using itf: ^SLAndroidNoiseSuppressionItf_,
    	}, enabled: u32) -> u32,
    	IsEnabled:  proc "c" (self: ^struct {
    		using itf: ^SLAndroidNoiseSuppressionItf_,
    	}, pEnabled: ^u32) -> u32,
    }

    SLAndroidSimpleBufferQueueItf ¶

    SLAndroidSimpleBufferQueueItf :: ^struct {
    	using itf: ^SLAndroidSimpleBufferQueueItf_,
    }

    SLAndroidSimpleBufferQueueItf_ ¶

    SLAndroidSimpleBufferQueueItf_ :: struct {
    	Enqueue:          proc "c" (self: ^struct {
    		using itf: ^SLAndroidSimpleBufferQueueItf_,
    	}, pBuffer: rawptr, size: u32) -> u32,
    	Clear:            proc "c" (self: ^struct {
    		using itf: ^SLAndroidSimpleBufferQueueItf_,
    	}) -> u32,
    	GetState:         proc "c" (self: ^struct {
    		using itf: ^SLAndroidSimpleBufferQueueItf_,
    	}, pState: ^SLAndroidSimpleBufferQueueState) -> u32,
    	RegisterCallback: proc "c" (self: ^struct {
    		using itf: ^SLAndroidSimpleBufferQueueItf_,
    	}, callback: slAndroidSimpleBufferQueueCallback, pContext: rawptr) -> u32,
    }

    SLAndroidSimpleBufferQueueState ¶

    SLAndroidSimpleBufferQueueState :: struct {
    	count: u32,
    	index: u32,
    }

    SLAudioCodecDescriptor ¶

    SLAudioCodecDescriptor :: struct {
    	maxChannels:              u32,
    	minBitsPerSample:         u32,
    	maxBitsPerSample:         u32,
    	minSampleRate:            u32,
    	maxSampleRate:            u32,
    	isFreqRangeContinuous:    u32,
    	pSampleRatesSupported:    ^u32,
    	numSampleRatesSupported:  u32,
    	minBitRate:               u32,
    	maxBitRate:               u32,
    	isBitrateRangeContinuous: u32,
    	pBitratesSupported:       ^u32,
    	numBitratesSupported:     u32,
    	profileSetting:           u32,
    	modeSetting:              u32,
    }

    SLAudioCodecProfileMode ¶

    SLAudioCodecProfileMode :: struct {
    	profileSetting: u32,
    	modeSetting:    u32,
    }

    SLAudioDecoderCapabilitiesItf ¶

    SLAudioDecoderCapabilitiesItf :: ^struct {
    	using itf: ^SLAudioDecoderCapabilitiesItf_,
    }

    SLAudioDecoderCapabilitiesItf_ ¶

    SLAudioDecoderCapabilitiesItf_ :: struct {
    	GetAudioDecoders:            proc "c" (self: ^struct {
    		using itf: ^SLAudioDecoderCapabilitiesItf_,
    	}, pNumDecoders: ^u32, pDecoderIds: ^u32) -> u32,
    	GetAudioDecoderCapabilities: proc "c" (self: ^struct {
    		using itf: ^SLAudioDecoderCapabilitiesItf_,
    	}, decoderId: u32, pIndex: ^u32, pDescriptor: ^SLAudioCodecDescriptor) -> u32,
    }

    SLAudioEncoderCapabilitiesItf ¶

    SLAudioEncoderCapabilitiesItf :: ^struct {
    	using itf: ^SLAudioEncoderCapabilitiesItf_,
    }

    SLAudioEncoderCapabilitiesItf_ ¶

    SLAudioEncoderCapabilitiesItf_ :: struct {
    	GetAudioEncoders:            proc "c" (self: ^struct {
    		using itf: ^SLAudioEncoderCapabilitiesItf_,
    	}, pNumEncoders: ^u32, pEncoderIds: ^u32) -> u32,
    	GetAudioEncoderCapabilities: proc "c" (self: ^struct {
    		using itf: ^SLAudioEncoderCapabilitiesItf_,
    	}, encoderId: u32, pIndex: ^u32, pDescriptor: ^SLAudioCodecDescriptor) -> u32,
    }

    SLAudioEncoderItf ¶

    SLAudioEncoderItf :: ^struct {
    	using itf: ^SLAudioEncoderItf_,
    }

    SLAudioEncoderItf_ ¶

    SLAudioEncoderItf_ :: struct {
    	SetEncoderSettings: proc "c" (self: ^struct {
    		using itf: ^SLAudioEncoderItf_,
    	}, pSettings: ^SLAudioEncoderSettings) -> u32,
    	GetEncoderSettings: proc "c" (self: ^struct {
    		using itf: ^SLAudioEncoderItf_,
    	}, pSettings: ^SLAudioEncoderSettings) -> u32,
    }

    SLAudioEncoderSettings ¶

    SLAudioEncoderSettings :: struct {
    	encoderId:      u32,
    	channelsIn:     u32,
    	channelsOut:    u32,
    	sampleRate:     u32,
    	bitRate:        u32,
    	bitsPerSample:  u32,
    	rateControl:    u32,
    	profileSetting: u32,
    	levelSetting:   u32,
    	channelMode:    u32,
    	streamFormat:   u32,
    	encodeOptions:  u32,
    	blockAlignment: u32,
    }

    SLAudioIODeviceCapabilitiesItf ¶

    SLAudioIODeviceCapabilitiesItf :: ^struct {
    	using itf: ^SLAudioIODeviceCapabilitiesItf_,
    }

    SLAudioIODeviceCapabilitiesItf_ ¶

    SLAudioIODeviceCapabilitiesItf_ :: struct {
    	GetAvailableAudioInputs:                      proc "c" (self: ^struct {
    		using itf: ^SLAudioIODeviceCapabilitiesItf_,
    	}, pNumInputs: ^i32, pInputDeviceIDs: ^u32) -> u32,
    	QueryAudioInputCapabilities:                  proc "c" (self: ^struct {
    		using itf: ^SLAudioIODeviceCapabilitiesItf_,
    	}, deviceId: u32, pDescriptor: ^SLAudioInputDescriptor) -> u32,
    	RegisterAvailableAudioInputsChangedCallback:  proc "c" (self: ^struct {
    		using itf: ^SLAudioIODeviceCapabilitiesItf_,
    	}, callback: slAvailableAudioInputsChangedCallback, pContext: rawptr) -> u32,
    	GetAvailableAudioOutputs:                     proc "c" (self: ^struct {
    		using itf: ^SLAudioIODeviceCapabilitiesItf_,
    	}, pNumOutputs: ^i32, pOutputDeviceIDs: ^u32) -> u32,
    	QueryAudioOutputCapabilities:                 proc "c" (self: ^struct {
    		using itf: ^SLAudioIODeviceCapabilitiesItf_,
    	}, deviceId: u32, pDescriptor: ^SLAudioOutputDescriptor) -> u32,
    	RegisterAvailableAudioOutputsChangedCallback: proc "c" (self: ^struct {
    		using itf: ^SLAudioIODeviceCapabilitiesItf_,
    	}, callback: slAvailableAudioOutputsChangedCallback, pContext: rawptr) -> u32,
    	RegisterDefaultDeviceIDMapChangedCallback:    proc "c" (self: ^struct {
    		using itf: ^SLAudioIODeviceCapabilitiesItf_,
    	}, callback: slDefaultDeviceIDMapChangedCallback, pContext: rawptr) -> u32,
    	GetAssociatedAudioInputs:                     proc "c" (self: ^struct {
    		using itf: ^SLAudioIODeviceCapabilitiesItf_,
    	}, deviceId: u32, pNumAudioInputs: ^i32, pAudioInputDeviceIDs: ^u32) -> u32,
    	GetAssociatedAudioOutputs:                    proc "c" (self: ^struct {
    		using itf: ^SLAudioIODeviceCapabilitiesItf_,
    	}, deviceId: u32, pNumAudioOutputs: ^i32, pAudioOutputDeviceIDs: ^u32) -> u32,
    	GetDefaultAudioDevices:                       proc "c" (self: ^struct {
    		using itf: ^SLAudioIODeviceCapabilitiesItf_,
    	}, defaultDeviceID: u32, pNumAudioDevices: ^i32, pAudioDeviceIDs: ^u32) -> u32,
    	QuerySampleFormatsSupported:                  proc "c" (self: ^struct {
    		using itf: ^SLAudioIODeviceCapabilitiesItf_,
    	}, deviceId: u32, samplingRate: u32, pSampleFormats: ^i32, pNumOfSampleFormats: ^i32) -> u32,
    }

    SLAudioInputDescriptor ¶

    SLAudioInputDescriptor :: struct {
    	deviceName:                  ^u8,
    	deviceConnection:            i16,
    	deviceScope:                 i16,
    	deviceLocation:              i16,
    	isForTelephony:              u32,
    	minSampleRate:               u32,
    	maxSampleRate:               u32,
    	isFreqRangeContinuous:       u32,
    	samplingRatesSupported:      ^u32,
    	numOfSamplingRatesSupported: i16,
    	maxChannels:                 i16,
    }

    SLAudioOutputDescriptor ¶

    SLAudioOutputDescriptor :: struct {
    	pDeviceName:                 ^u8,
    	deviceConnection:            i16,
    	deviceScope:                 i16,
    	deviceLocation:              i16,
    	isForTelephony:              u32,
    	minSampleRate:               u32,
    	maxSampleRate:               u32,
    	isFreqRangeContinuous:       u32,
    	samplingRatesSupported:      ^u32,
    	numOfSamplingRatesSupported: i16,
    	maxChannels:                 i16,
    }

    SLBassBoostItf ¶

    SLBassBoostItf :: ^struct {
    	using itf: ^SLBassBoostItf_,
    }

    SLBassBoostItf_ ¶

    SLBassBoostItf_ :: struct {
    	SetEnabled:          proc "c" (self: ^struct {
    		using itf: ^SLBassBoostItf_,
    	}, enabled: u32) -> u32,
    	IsEnabled:           proc "c" (self: ^struct {
    		using itf: ^SLBassBoostItf_,
    	}, pEnabled: ^u32) -> u32,
    	SetStrength:         proc "c" (self: ^struct {
    		using itf: ^SLBassBoostItf_,
    	}, strength: i16) -> u32,
    	GetRoundedStrength:  proc "c" (self: ^struct {
    		using itf: ^SLBassBoostItf_,
    	}, pStrength: ^i16) -> u32,
    	IsStrengthSupported: proc "c" (self: ^struct {
    		using itf: ^SLBassBoostItf_,
    	}, pSupported: ^u32) -> u32,
    }

    SLBufferQueueItf ¶

    SLBufferQueueItf :: ^struct {
    	using itf: ^SLBufferQueueItf_,
    }

    SLBufferQueueItf_ ¶

    SLBufferQueueItf_ :: struct {
    	Enqueue:          proc "c" (self: ^struct {
    		using itf: ^SLBufferQueueItf_,
    	}, pBuffer: rawptr, size: u32) -> u32,
    	Clear:            proc "c" (self: ^struct {
    		using itf: ^SLBufferQueueItf_,
    	}) -> u32,
    	GetState:         proc "c" (self: ^struct {
    		using itf: ^SLBufferQueueItf_,
    	}, pState: ^SLBufferQueueState) -> u32,
    	RegisterCallback: proc "c" (self: ^struct {
    		using itf: ^SLBufferQueueItf_,
    	}, callback: slBufferQueueCallback, pContext: rawptr) -> u32,
    }

    SLBufferQueueState ¶

    SLBufferQueueState :: struct {
    	count:     u32,
    	playIndex: u32,
    }

    SLDataFormat_MIME ¶

    SLDataFormat_MIME :: struct {
    	formatType:    u32,
    	mimeType:      ^u8,
    	containerType: u32,
    }

    SLDataFormat_PCM ¶

    SLDataFormat_PCM :: struct {
    	formatType:    u32,
    	numChannels:   u32,
    	samplesPerSec: u32,
    	bitsPerSample: u32,
    	containerSize: u32,
    	channelMask:   u32,
    	endianness:    u32,
    }

    SLDataLocator_Address ¶

    SLDataLocator_Address :: struct {
    	locatorType: u32,
    	pAddress:    rawptr,
    	length:      u32,
    }

    SLDataLocator_AndroidBufferQueue ¶

    SLDataLocator_AndroidBufferQueue :: struct {
    	locatorType: u32,
    	numBuffers:  u32,
    }

    SLDataLocator_AndroidFD ¶

    SLDataLocator_AndroidFD :: struct {
    	locatorType: u32,
    	fd:          i32,
    	offset:      i64,
    	length:      i64,
    }

    SLDataLocator_AndroidSimpleBufferQueue ¶

    SLDataLocator_AndroidSimpleBufferQueue :: struct {
    	locatorType: u32,
    	numBuffers:  u32,
    }

    SLDataLocator_BufferQueue ¶

    SLDataLocator_BufferQueue :: struct {
    	locatorType: u32,
    	numBuffers:  u32,
    }

    SLDataLocator_IODevice ¶

    SLDataLocator_IODevice :: struct {
    	locatorType: u32,
    	deviceType:  u32,
    	deviceID:    u32,
    	device:      ^struct {
    		using itf: ^SLObjectItf_,
    	},
    }

    SLDataLocator_MIDIBufferQueue ¶

    SLDataLocator_MIDIBufferQueue :: struct {
    	locatorType: u32,
    	tpqn:        u32,
    	numBuffers:  u32,
    }

    SLDataLocator_OutputMix ¶

    SLDataLocator_OutputMix :: struct {
    	locatorType: u32,
    	outputMix:   ^struct {
    		using itf: ^SLObjectItf_,
    	},
    }

    SLDataLocator_URI ¶

    SLDataLocator_URI :: struct {
    	locatorType: u32,
    	URI:         ^u8,
    }

    SLDataSink ¶

    SLDataSink :: struct {
    	pLocator: rawptr,
    	pFormat:  rawptr,
    }

    SLDataSource ¶

    SLDataSource :: struct {
    	pLocator: rawptr,
    	pFormat:  rawptr,
    }

    SLDeviceVolumeItf ¶

    SLDeviceVolumeItf :: ^struct {
    	using itf: ^SLDeviceVolumeItf_,
    }

    SLDeviceVolumeItf_ ¶

    SLDeviceVolumeItf_ :: struct {
    	GetVolumeScale: proc "c" (self: ^struct {
    		using itf: ^SLDeviceVolumeItf_,
    	}, deviceID: u32, pMinValue: ^i32, pMaxValue: ^i32, pIsMillibelScale: ^u32) -> u32,
    	SetVolume:      proc "c" (self: ^struct {
    		using itf: ^SLDeviceVolumeItf_,
    	}, deviceID: u32, volume: i32) -> u32,
    	GetVolume:      proc "c" (self: ^struct {
    		using itf: ^SLDeviceVolumeItf_,
    	}, deviceID: u32, pVolume: ^i32) -> u32,
    }

    SLDynamicInterfaceManagementItf ¶

    SLDynamicInterfaceManagementItf :: ^struct {
    	using itf: ^SLDynamicInterfaceManagementItf_,
    }

    SLDynamicInterfaceManagementItf_ ¶

    SLDynamicInterfaceManagementItf_ :: struct {
    	AddInterface:     proc "c" (self: ^struct {
    		using itf: ^SLDynamicInterfaceManagementItf_,
    	}, iid: ^SLInterfaceID_, async: u32) -> u32,
    	RemoveInterface:  proc "c" (self: ^struct {
    		using itf: ^SLDynamicInterfaceManagementItf_,
    	}, iid: ^SLInterfaceID_) -> u32,
    	ResumeInterface:  proc "c" (self: ^struct {
    		using itf: ^SLDynamicInterfaceManagementItf_,
    	}, iid: ^SLInterfaceID_, async: u32) -> u32,
    	RegisterCallback: proc "c" (self: ^struct {
    		using itf: ^SLDynamicInterfaceManagementItf_,
    	}, callback: slDynamicInterfaceManagementCallback, pContext: rawptr) -> u32,
    }

    SLDynamicSourceItf ¶

    SLDynamicSourceItf :: ^struct {
    	using itf: ^SLDynamicSourceItf_,
    }

    SLDynamicSourceItf_ ¶

    SLDynamicSourceItf_ :: struct {
    	SetSource: proc "c" (self: ^struct {
    		using itf: ^SLDynamicSourceItf_,
    	}, pDataSource: ^SLDataSource) -> u32,
    }

    SLEffectSendItf ¶

    SLEffectSendItf :: ^struct {
    	using itf: ^SLEffectSendItf_,
    }

    SLEffectSendItf_ ¶

    SLEffectSendItf_ :: struct {
    	EnableEffectSend: proc "c" (self: ^struct {
    		using itf: ^SLEffectSendItf_,
    	}, pAuxEffect: rawptr, enable: u32, initialLevel: i16) -> u32,
    	IsEnabled:        proc "c" (self: ^struct {
    		using itf: ^SLEffectSendItf_,
    	}, pAuxEffect: rawptr, pEnable: ^u32) -> u32,
    	SetDirectLevel:   proc "c" (self: ^struct {
    		using itf: ^SLEffectSendItf_,
    	}, directLevel: i16) -> u32,
    	GetDirectLevel:   proc "c" (self: ^struct {
    		using itf: ^SLEffectSendItf_,
    	}, pDirectLevel: ^i16) -> u32,
    	SetSendLevel:     proc "c" (self: ^struct {
    		using itf: ^SLEffectSendItf_,
    	}, pAuxEffect: rawptr, sendLevel: i16) -> u32,
    	GetSendLevel:     proc "c" (self: ^struct {
    		using itf: ^SLEffectSendItf_,
    	}, pAuxEffect: rawptr, pSendLevel: ^i16) -> u32,
    }

    SLEngineCapabilitiesItf ¶

    SLEngineCapabilitiesItf :: ^struct {
    	using itf: ^SLEngineCapabilitiesItf_,
    }

    SLEngineCapabilitiesItf_ ¶

    SLEngineCapabilitiesItf_ :: struct {
    	QuerySupportedProfiles:        proc "c" (self: ^struct {
    		using itf: ^SLEngineCapabilitiesItf_,
    	}, pProfilesSupported: ^u16) -> u32,
    	QueryAvailableVoices:          proc "c" (self: ^struct {
    		using itf: ^SLEngineCapabilitiesItf_,
    	}, voiceType: u16, pNumMaxVoices: ^i16, pIsAbsoluteMax: ^u32, pNumFreeVoices: ^i16) -> u32,
    	QueryNumberOfMIDISynthesizers: proc "c" (self: ^struct {
    		using itf: ^SLEngineCapabilitiesItf_,
    	}, pNumMIDIsynthesizers: ^i16) -> u32,
    	QueryAPIVersion:               proc "c" (self: ^struct {
    		using itf: ^SLEngineCapabilitiesItf_,
    	}, pMajor: ^i16, pMinor: ^i16, pStep: ^i16) -> u32,
    	QueryLEDCapabilities:          proc "c" (self: ^struct {
    		using itf: ^SLEngineCapabilitiesItf_,
    	}, pIndex: ^u32, pLEDDeviceID: ^u32, pDescriptor: ^SLLEDDescriptor) -> u32,
    	QueryVibraCapabilities:        proc "c" (self: ^struct {
    		using itf: ^SLEngineCapabilitiesItf_,
    	}, pIndex: ^u32, pVibraDeviceID: ^u32, pDescriptor: ^SLVibraDescriptor) -> u32,
    	IsThreadSafe:                  proc "c" (self: ^struct {
    		using itf: ^SLEngineCapabilitiesItf_,
    	}, pIsThreadSafe: ^u32) -> u32,
    }

    SLEngineItf ¶

    SLEngineItf :: ^struct {
    	using itf: ^SLEngineItf_,
    }

    SLEngineItf_ ¶

    SLEngineItf_ :: struct {
    	CreateLEDDevice:             proc "c" (self: ^struct {
    		using itf: ^SLEngineItf_,
    	}, pDevice: ^^struct {
    		using itf: ^SLObjectItf_,
    	}, deviceID: u32, numInterfaces: u32, pInterfaceIds: ^^SLInterfaceID_, pInterfaceRequired: ^u32) -> u32,
    	CreateVibraDevice:           proc "c" (self: ^struct {
    		using itf: ^SLEngineItf_,
    	}, pDevice: ^^struct {
    		using itf: ^SLObjectItf_,
    	}, deviceID: u32, numInterfaces: u32, pInterfaceIds: ^^SLInterfaceID_, pInterfaceRequired: ^u32) -> u32,
    	CreateAudioPlayer:           proc "c" (self: ^struct {
    		using itf: ^SLEngineItf_,
    	}, pPlayer: ^^struct {
    		using itf: ^SLObjectItf_,
    	}, pAudioSrc: ^SLDataSource, pAudioSnk: ^SLDataSink, numInterfaces: u32, pInterfaceIds: ^^SLInterfaceID_, pInterfaceRequired: ^u32) -> u32,
    	CreateAudioRecorder:         proc "c" (self: ^struct {
    		using itf: ^SLEngineItf_,
    	}, pRecorder: ^^struct {
    		using itf: ^SLObjectItf_,
    	}, pAudioSrc: ^SLDataSource, pAudioSnk: ^SLDataSink, numInterfaces: u32, pInterfaceIds: ^^SLInterfaceID_, pInterfaceRequired: ^u32) -> u32,
    	CreateMidiPlayer:            proc "c" (self: ^struct {
    		using itf: ^SLEngineItf_,
    	}, pPlayer: ^^struct {
    		using itf: ^SLObjectItf_,
    	}, pMIDISrc: ^SLDataSource, pBankSrc: ^SLDataSource, pAudioOutput: ^SLDataSink, pVibra: ^SLDataSink, pLEDArray: ^SLDataSink, numInterfaces: u32, pInterfaceIds: ^^SLInterfaceID_, pInterfaceRequired: ^u32) -> u32,
    	CreateListener:              proc "c" (self: ^struct {
    		using itf: ^SLEngineItf_,
    	}, pListener: ^^struct {
    		using itf: ^SLObjectItf_,
    	}, numInterfaces: u32, pInterfaceIds: ^^SLInterfaceID_, pInterfaceRequired: ^u32) -> u32,
    	Create3DGroup:               proc "c" (self: ^struct {
    		using itf: ^SLEngineItf_,
    	}, pGroup: ^^struct {
    		using itf: ^SLObjectItf_,
    	}, numInterfaces: u32, pInterfaceIds: ^^SLInterfaceID_, pInterfaceRequired: ^u32) -> u32,
    	CreateOutputMix:             proc "c" (self: ^struct {
    		using itf: ^SLEngineItf_,
    	}, pMix: ^^struct {
    		using itf: ^SLObjectItf_,
    	}, numInterfaces: u32, pInterfaceIds: ^^SLInterfaceID_, pInterfaceRequired: ^u32) -> u32,
    	CreateMetadataExtractor:     proc "c" (self: ^struct {
    		using itf: ^SLEngineItf_,
    	}, pMetadataExtractor: ^^struct {
    		using itf: ^SLObjectItf_,
    	}, pDataSource: ^SLDataSource, numInterfaces: u32, pInterfaceIds: ^^SLInterfaceID_, pInterfaceRequired: ^u32) -> u32,
    	CreateExtensionObject:       proc "c" (self: ^struct {
    		using itf: ^SLEngineItf_,
    	}, pObject: ^^struct {
    		using itf: ^SLObjectItf_,
    	}, pParameters: rawptr, objectID: u32, numInterfaces: u32, pInterfaceIds: ^^SLInterfaceID_, pInterfaceRequired: ^u32) -> u32,
    	QueryNumSupportedInterfaces: proc "c" (self: ^struct {
    		using itf: ^SLEngineItf_,
    	}, objectID: u32, pNumSupportedInterfaces: ^u32) -> u32,
    	QuerySupportedInterfaces:    proc "c" (self: ^struct {
    		using itf: ^SLEngineItf_,
    	}, objectID: u32, index: u32, pInterfaceId: ^^SLInterfaceID_) -> u32,
    	QueryNumSupportedExtensions: proc "c" (self: ^struct {
    		using itf: ^SLEngineItf_,
    	}, pNumExtensions: ^u32) -> u32,
    	QuerySupportedExtension:     proc "c" (self: ^struct {
    		using itf: ^SLEngineItf_,
    	}, index: u32, pExtensionName: ^u8, pNameLength: ^i16) -> u32,
    	IsExtensionSupported:        proc "c" (self: ^struct {
    		using itf: ^SLEngineItf_,
    	}, pExtensionName: ^u8, pSupported: ^u32) -> u32,
    }

    SLEngineOption ¶

    SLEngineOption :: struct {
    	feature: u32,
    	data:    u32,
    }

    SLEnvironmentalReverbItf ¶

    SLEnvironmentalReverbItf :: ^struct {
    	using itf: ^SLEnvironmentalReverbItf_,
    }

    SLEnvironmentalReverbItf_ ¶

    SLEnvironmentalReverbItf_ :: struct {
    	SetRoomLevel:                     proc "c" (self: ^struct {
    		using itf: ^SLEnvironmentalReverbItf_,
    	}, room: i16) -> u32,
    	GetRoomLevel:                     proc "c" (self: ^struct {
    		using itf: ^SLEnvironmentalReverbItf_,
    	}, pRoom: ^i16) -> u32,
    	SetRoomHFLevel:                   proc "c" (self: ^struct {
    		using itf: ^SLEnvironmentalReverbItf_,
    	}, roomHF: i16) -> u32,
    	GetRoomHFLevel:                   proc "c" (self: ^struct {
    		using itf: ^SLEnvironmentalReverbItf_,
    	}, pRoomHF: ^i16) -> u32,
    	SetDecayTime:                     proc "c" (self: ^struct {
    		using itf: ^SLEnvironmentalReverbItf_,
    	}, decayTime: u32) -> u32,
    	GetDecayTime:                     proc "c" (self: ^struct {
    		using itf: ^SLEnvironmentalReverbItf_,
    	}, pDecayTime: ^u32) -> u32,
    	SetDecayHFRatio:                  proc "c" (self: ^struct {
    		using itf: ^SLEnvironmentalReverbItf_,
    	}, decayHFRatio: i16) -> u32,
    	GetDecayHFRatio:                  proc "c" (self: ^struct {
    		using itf: ^SLEnvironmentalReverbItf_,
    	}, pDecayHFRatio: ^i16) -> u32,
    	SetReflectionsLevel:              proc "c" (self: ^struct {
    		using itf: ^SLEnvironmentalReverbItf_,
    	}, reflectionsLevel: i16) -> u32,
    	GetReflectionsLevel:              proc "c" (self: ^struct {
    		using itf: ^SLEnvironmentalReverbItf_,
    	}, pReflectionsLevel: ^i16) -> u32,
    	SetReflectionsDelay:              proc "c" (self: ^struct {
    		using itf: ^SLEnvironmentalReverbItf_,
    	}, reflectionsDelay: u32) -> u32,
    	GetReflectionsDelay:              proc "c" (self: ^struct {
    		using itf: ^SLEnvironmentalReverbItf_,
    	}, pReflectionsDelay: ^u32) -> u32,
    	SetReverbLevel:                   proc "c" (self: ^struct {
    		using itf: ^SLEnvironmentalReverbItf_,
    	}, reverbLevel: i16) -> u32,
    	GetReverbLevel:                   proc "c" (self: ^struct {
    		using itf: ^SLEnvironmentalReverbItf_,
    	}, pReverbLevel: ^i16) -> u32,
    	SetReverbDelay:                   proc "c" (self: ^struct {
    		using itf: ^SLEnvironmentalReverbItf_,
    	}, reverbDelay: u32) -> u32,
    	GetReverbDelay:                   proc "c" (self: ^struct {
    		using itf: ^SLEnvironmentalReverbItf_,
    	}, pReverbDelay: ^u32) -> u32,
    	SetDiffusion:                     proc "c" (self: ^struct {
    		using itf: ^SLEnvironmentalReverbItf_,
    	}, diffusion: i16) -> u32,
    	GetDiffusion:                     proc "c" (self: ^struct {
    		using itf: ^SLEnvironmentalReverbItf_,
    	}, pDiffusion: ^i16) -> u32,
    	SetDensity:                       proc "c" (self: ^struct {
    		using itf: ^SLEnvironmentalReverbItf_,
    	}, density: i16) -> u32,
    	GetDensity:                       proc "c" (self: ^struct {
    		using itf: ^SLEnvironmentalReverbItf_,
    	}, pDensity: ^i16) -> u32,
    	SetEnvironmentalReverbProperties: proc "c" (self: ^struct {
    		using itf: ^SLEnvironmentalReverbItf_,
    	}, pProperties: ^SLEnvironmentalReverbSettings) -> u32,
    	GetEnvironmentalReverbProperties: proc "c" (self: ^struct {
    		using itf: ^SLEnvironmentalReverbItf_,
    	}, pProperties: ^SLEnvironmentalReverbSettings) -> u32,
    }

    SLEnvironmentalReverbSettings ¶

    SLEnvironmentalReverbSettings :: struct {
    	roomLevel:        i16,
    	roomHFLevel:      i16,
    	decayTime:        u32,
    	decayHFRatio:     i16,
    	reflectionsLevel: i16,
    	reflectionsDelay: u32,
    	reverbLevel:      i16,
    	reverbDelay:      u32,
    	diffusion:        i16,
    	density:          i16,
    }

    SLEqualizerItf ¶

    SLEqualizerItf :: ^struct {
    	using itf: ^SLEqualizerItf_,
    }

    SLEqualizerItf_ ¶

    SLEqualizerItf_ :: struct {
    	SetEnabled:         proc "c" (self: ^struct {
    		using itf: ^SLEqualizerItf_,
    	}, enabled: u32) -> u32,
    	IsEnabled:          proc "c" (self: ^struct {
    		using itf: ^SLEqualizerItf_,
    	}, pEnabled: ^u32) -> u32,
    	GetNumberOfBands:   proc "c" (self: ^struct {
    		using itf: ^SLEqualizerItf_,
    	}, pAmount: ^u16) -> u32,
    	GetBandLevelRange:  proc "c" (self: ^struct {
    		using itf: ^SLEqualizerItf_,
    	}, pMin: ^i16, pMax: ^i16) -> u32,
    	SetBandLevel:       proc "c" (self: ^struct {
    		using itf: ^SLEqualizerItf_,
    	}, band: u16, level: i16) -> u32,
    	GetBandLevel:       proc "c" (self: ^struct {
    		using itf: ^SLEqualizerItf_,
    	}, band: u16, pLevel: ^i16) -> u32,
    	GetCenterFreq:      proc "c" (self: ^struct {
    		using itf: ^SLEqualizerItf_,
    	}, band: u16, pCenter: ^u32) -> u32,
    	GetBandFreqRange:   proc "c" (self: ^struct {
    		using itf: ^SLEqualizerItf_,
    	}, band: u16, pMin: ^u32, pMax: ^u32) -> u32,
    	GetBand:            proc "c" (self: ^struct {
    		using itf: ^SLEqualizerItf_,
    	}, frequency: u32, pBand: ^u16) -> u32,
    	GetCurrentPreset:   proc "c" (self: ^struct {
    		using itf: ^SLEqualizerItf_,
    	}, pPreset: ^u16) -> u32,
    	UsePreset:          proc "c" (self: ^struct {
    		using itf: ^SLEqualizerItf_,
    	}, index: u16) -> u32,
    	GetNumberOfPresets: proc "c" (self: ^struct {
    		using itf: ^SLEqualizerItf_,
    	}, pNumPresets: ^u16) -> u32,
    	GetPresetName:      proc "c" (self: ^struct {
    		using itf: ^SLEqualizerItf_,
    	}, index: u16, ppName: ^^u8) -> u32,
    }

    SLHSL ¶

    SLHSL :: struct {
    	hue:        i32,
    	saturation: i16,
    	lightness:  i16,
    }

    SLInterfaceID_ ¶

    SLInterfaceID_ :: struct {
    	time_low:            u32,
    	time_mid:            u16,
    	time_hi_and_version: u16,
    	clock_seq:           u16,
    	node:                [6]u8,
    }

    SLLEDArrayItf ¶

    SLLEDArrayItf :: ^struct {
    	using itf: ^SLLEDArrayItf_,
    }

    SLLEDArrayItf_ ¶

    SLLEDArrayItf_ :: struct {
    	ActivateLEDArray:    proc "c" (self: ^struct {
    		using itf: ^SLLEDArrayItf_,
    	}, lightMask: u32) -> u32,
    	IsLEDArrayActivated: proc "c" (self: ^struct {
    		using itf: ^SLLEDArrayItf_,
    	}, lightMask: ^u32) -> u32,
    	SetColor:            proc "c" (self: ^struct {
    		using itf: ^SLLEDArrayItf_,
    	}, index: u8, color: ^SLHSL) -> u32,
    	GetColor:            proc "c" (self: ^struct {
    		using itf: ^SLLEDArrayItf_,
    	}, index: u8, color: ^SLHSL) -> u32,
    }

    SLLEDDescriptor ¶

    SLLEDDescriptor :: struct {
    	ledCount:   u8,
    	primaryLED: u8,
    	colorMask:  u32,
    }

    SLMIDIMessageItf ¶

    SLMIDIMessageItf :: ^struct {
    	using itf: ^SLMIDIMessageItf_,
    }

    SLMIDIMessageItf_ ¶

    SLMIDIMessageItf_ :: struct {
    	SendMessage:                    proc "c" (self: ^struct {
    		using itf: ^SLMIDIMessageItf_,
    	}, data: ^u8, length: u32) -> u32,
    	RegisterMetaEventCallback:      proc "c" (self: ^struct {
    		using itf: ^SLMIDIMessageItf_,
    	}, callback: slMetaEventCallback, pContext: rawptr) -> u32,
    	RegisterMIDIMessageCallback:    proc "c" (self: ^struct {
    		using itf: ^SLMIDIMessageItf_,
    	}, callback: slMIDIMessageCallback, pContext: rawptr) -> u32,
    	AddMIDIMessageCallbackFilter:   proc "c" (self: ^struct {
    		using itf: ^SLMIDIMessageItf_,
    	}, messageType: u32) -> u32,
    	ClearMIDIMessageCallbackFilter: proc "c" (self: ^struct {
    		using itf: ^SLMIDIMessageItf_,
    	}) -> u32,
    }

    SLMIDIMuteSoloItf ¶

    SLMIDIMuteSoloItf :: ^struct {
    	using itf: ^SLMIDIMuteSoloItf_,
    }

    SLMIDIMuteSoloItf_ ¶

    SLMIDIMuteSoloItf_ :: struct {
    	SetChannelMute: proc "c" (self: ^struct {
    		using itf: ^SLMIDIMuteSoloItf_,
    	}, channel: u8, mute: u32) -> u32,
    	GetChannelMute: proc "c" (self: ^struct {
    		using itf: ^SLMIDIMuteSoloItf_,
    	}, channel: u8, pMute: ^u32) -> u32,
    	SetChannelSolo: proc "c" (self: ^struct {
    		using itf: ^SLMIDIMuteSoloItf_,
    	}, channel: u8, solo: u32) -> u32,
    	GetChannelSolo: proc "c" (self: ^struct {
    		using itf: ^SLMIDIMuteSoloItf_,
    	}, channel: u8, pSolo: ^u32) -> u32,
    	GetTrackCount:  proc "c" (self: ^struct {
    		using itf: ^SLMIDIMuteSoloItf_,
    	}, pCount: ^u16) -> u32,
    	SetTrackMute:   proc "c" (self: ^struct {
    		using itf: ^SLMIDIMuteSoloItf_,
    	}, track: u16, mute: u32) -> u32,
    	GetTrackMute:   proc "c" (self: ^struct {
    		using itf: ^SLMIDIMuteSoloItf_,
    	}, track: u16, pMute: ^u32) -> u32,
    	SetTrackSolo:   proc "c" (self: ^struct {
    		using itf: ^SLMIDIMuteSoloItf_,
    	}, track: u16, solo: u32) -> u32,
    	GetTrackSolo:   proc "c" (self: ^struct {
    		using itf: ^SLMIDIMuteSoloItf_,
    	}, track: u16, pSolo: ^u32) -> u32,
    }

    SLMIDITempoItf ¶

    SLMIDITempoItf :: ^struct {
    	using itf: ^SLMIDITempoItf_,
    }

    SLMIDITempoItf_ ¶

    SLMIDITempoItf_ :: struct {
    	SetTicksPerQuarterNote:        proc "c" (self: ^struct {
    		using itf: ^SLMIDITempoItf_,
    	}, tpqn: u32) -> u32,
    	GetTicksPerQuarterNote:        proc "c" (self: ^struct {
    		using itf: ^SLMIDITempoItf_,
    	}, pTpqn: ^u32) -> u32,
    	SetMicrosecondsPerQuarterNote: proc "c" (self: ^struct {
    		using itf: ^SLMIDITempoItf_,
    	}, uspqn: u32) -> u32,
    	GetMicrosecondsPerQuarterNote: proc "c" (self: ^struct {
    		using itf: ^SLMIDITempoItf_,
    	}, uspqn: ^u32) -> u32,
    }

    SLMIDITimeItf ¶

    SLMIDITimeItf :: ^struct {
    	using itf: ^SLMIDITimeItf_,
    }

    SLMIDITimeItf_ ¶

    SLMIDITimeItf_ :: struct {
    	GetDuration:   proc "c" (self: ^struct {
    		using itf: ^SLMIDITimeItf_,
    	}, pDuration: ^u32) -> u32,
    	SetPosition:   proc "c" (self: ^struct {
    		using itf: ^SLMIDITimeItf_,
    	}, position: u32) -> u32,
    	GetPosition:   proc "c" (self: ^struct {
    		using itf: ^SLMIDITimeItf_,
    	}, pPosition: ^u32) -> u32,
    	SetLoopPoints: proc "c" (self: ^struct {
    		using itf: ^SLMIDITimeItf_,
    	}, startTick: u32, numTicks: u32) -> u32,
    	GetLoopPoints: proc "c" (self: ^struct {
    		using itf: ^SLMIDITimeItf_,
    	}, pStartTick: ^u32, pNumTicks: ^u32) -> u32,
    }

    SLMetadataExtractionItf ¶

    SLMetadataExtractionItf :: ^struct {
    	using itf: ^SLMetadataExtractionItf_,
    }

    SLMetadataExtractionItf_ ¶

    SLMetadataExtractionItf_ :: struct {
    	GetItemCount:   proc "c" (self: ^struct {
    		using itf: ^SLMetadataExtractionItf_,
    	}, pItemCount: ^u32) -> u32,
    	GetKeySize:     proc "c" (self: ^struct {
    		using itf: ^SLMetadataExtractionItf_,
    	}, index: u32, pKeySize: ^u32) -> u32,
    	GetKey:         proc "c" (self: ^struct {
    		using itf: ^SLMetadataExtractionItf_,
    	}, index: u32, keySize: u32, pKey: ^SLMetadataInfo) -> u32,
    	GetValueSize:   proc "c" (self: ^struct {
    		using itf: ^SLMetadataExtractionItf_,
    	}, index: u32, pValueSize: ^u32) -> u32,
    	GetValue:       proc "c" (self: ^struct {
    		using itf: ^SLMetadataExtractionItf_,
    	}, index: u32, valueSize: u32, pValue: ^SLMetadataInfo) -> u32,
    	AddKeyFilter:   proc "c" (self: ^struct {
    		using itf: ^SLMetadataExtractionItf_,
    	}, keySize: u32, pKey: rawptr, keyEncoding: u32, pValueLangCountry: ^u8, valueEncoding: u32, filterMask: u8) -> u32,
    	ClearKeyFilter: proc "c" (self: ^struct {
    		using itf: ^SLMetadataExtractionItf_,
    	}) -> u32,
    }

    SLMetadataInfo ¶

    SLMetadataInfo :: struct {
    	size:        u32,
    	encoding:    u32,
    	langCountry: [16]u8,
    	data:        [1]u8,
    }

    SLMetadataTraversalItf ¶

    SLMetadataTraversalItf :: ^struct {
    	using itf: ^SLMetadataTraversalItf_,
    }

    SLMetadataTraversalItf_ ¶

    SLMetadataTraversalItf_ :: struct {
    	SetMode:              proc "c" (self: ^struct {
    		using itf: ^SLMetadataTraversalItf_,
    	}, mode: u32) -> u32,
    	GetChildCount:        proc "c" (self: ^struct {
    		using itf: ^SLMetadataTraversalItf_,
    	}, pCount: ^u32) -> u32,
    	GetChildMIMETypeSize: proc "c" (self: ^struct {
    		using itf: ^SLMetadataTraversalItf_,
    	}, index: u32, pSize: ^u32) -> u32,
    	GetChildInfo:         proc "c" (self: ^struct {
    		using itf: ^SLMetadataTraversalItf_,
    	}, index: u32, pNodeID: ^i32, pType: ^u32, size: u32, pMimeType: ^u8) -> u32,
    	SetActiveNode:        proc "c" (self: ^struct {
    		using itf: ^SLMetadataTraversalItf_,
    	}, index: u32) -> u32,
    }

    SLMuteSoloItf ¶

    SLMuteSoloItf :: ^struct {
    	using itf: ^SLMuteSoloItf_,
    }

    SLMuteSoloItf_ ¶

    SLMuteSoloItf_ :: struct {
    	SetChannelMute: proc "c" (self: ^struct {
    		using itf: ^SLMuteSoloItf_,
    	}, chan: u8, mute: u32) -> u32,
    	GetChannelMute: proc "c" (self: ^struct {
    		using itf: ^SLMuteSoloItf_,
    	}, chan: u8, pMute: ^u32) -> u32,
    	SetChannelSolo: proc "c" (self: ^struct {
    		using itf: ^SLMuteSoloItf_,
    	}, chan: u8, solo: u32) -> u32,
    	GetChannelSolo: proc "c" (self: ^struct {
    		using itf: ^SLMuteSoloItf_,
    	}, chan: u8, pSolo: ^u32) -> u32,
    	GetNumChannels: proc "c" (self: ^struct {
    		using itf: ^SLMuteSoloItf_,
    	}, pNumChannels: ^u8) -> u32,
    }

    SLObjectItf ¶

    SLObjectItf :: ^struct {
    	using itf: ^SLObjectItf_,
    }

    SLObjectItf_ ¶

    SLObjectItf_ :: struct {
    	Realize:                    proc "c" (self: ^struct {
    		using itf: ^SLObjectItf_,
    	}, async: u32) -> u32,
    	Resume:                     proc "c" (self: ^struct {
    		using itf: ^SLObjectItf_,
    	}, async: u32) -> u32,
    	GetState:                   proc "c" (self: ^struct {
    		using itf: ^SLObjectItf_,
    	}, pState: ^u32) -> u32,
    	GetInterface:               proc "c" (self: ^struct {
    		using itf: ^SLObjectItf_,
    	}, iid: ^SLInterfaceID_, pInterface: rawptr) -> u32,
    	RegisterCallback:           proc "c" (self: ^struct {
    		using itf: ^SLObjectItf_,
    	}, callback: slObjectCallback, pContext: rawptr) -> u32,
    	AbortAsyncOperation:        proc "c" (self: ^struct {
    		using itf: ^SLObjectItf_,
    	}),
    	Destroy:                    proc "c" (self: ^struct {
    		using itf: ^SLObjectItf_,
    	}),
    	SetPriority:                proc "c" (self: ^struct {
    		using itf: ^SLObjectItf_,
    	}, priority: i32, preemptable: u32) -> u32,
    	GetPriority:                proc "c" (self: ^struct {
    		using itf: ^SLObjectItf_,
    	}, pPriority: ^i32, pPreemptable: ^u32) -> u32,
    	SetLossOfControlInterfaces: proc "c" (self: ^struct {
    		using itf: ^SLObjectItf_,
    	}, numInterfaces: i16, pInterfaceIDs: ^^SLInterfaceID_, enabled: u32) -> u32,
    }

    SLOutputMixItf ¶

    SLOutputMixItf :: ^struct {
    	using itf: ^SLOutputMixItf_,
    }

    SLOutputMixItf_ ¶

    SLOutputMixItf_ :: struct {
    	GetDestinationOutputDeviceIDs: proc "c" (self: ^struct {
    		using itf: ^SLOutputMixItf_,
    	}, pNumDevices: ^i32, pDeviceIDs: ^u32) -> u32,
    	RegisterDeviceChangeCallback:  proc "c" (self: ^struct {
    		using itf: ^SLOutputMixItf_,
    	}, callback: slMixDeviceChangeCallback, pContext: rawptr) -> u32,
    	ReRoute:                       proc "c" (self: ^struct {
    		using itf: ^SLOutputMixItf_,
    	}, numOutputDevices: i32, pOutputDeviceIDs: ^u32) -> u32,
    }

    SLPitchItf ¶

    SLPitchItf :: ^struct {
    	using itf: ^SLPitchItf_,
    }

    SLPitchItf_ ¶

    SLPitchItf_ :: struct {
    	SetPitch:             proc "c" (self: ^struct {
    		using itf: ^SLPitchItf_,
    	}, pitch: i16) -> u32,
    	GetPitch:             proc "c" (self: ^struct {
    		using itf: ^SLPitchItf_,
    	}, pPitch: ^i16) -> u32,
    	GetPitchCapabilities: proc "c" (self: ^struct {
    		using itf: ^SLPitchItf_,
    	}, pMinPitch: ^i16, pMaxPitch: ^i16) -> u32,
    }

    SLPlayItf ¶

    SLPlayItf :: ^struct {
    	using itf: ^SLPlayItf_,
    }

    SLPlayItf_ ¶

    SLPlayItf_ :: struct {
    	SetPlayState:            proc "c" (self: ^struct {
    		using itf: ^SLPlayItf_,
    	}, state: u32) -> u32,
    	GetPlayState:            proc "c" (self: ^struct {
    		using itf: ^SLPlayItf_,
    	}, pState: ^u32) -> u32,
    	GetDuration:             proc "c" (self: ^struct {
    		using itf: ^SLPlayItf_,
    	}, pMsec: ^u32) -> u32,
    	GetPosition:             proc "c" (self: ^struct {
    		using itf: ^SLPlayItf_,
    	}, pMsec: ^u32) -> u32,
    	RegisterCallback:        proc "c" (self: ^struct {
    		using itf: ^SLPlayItf_,
    	}, callback: slPlayCallback, pContext: rawptr) -> u32,
    	SetCallbackEventsMask:   proc "c" (self: ^struct {
    		using itf: ^SLPlayItf_,
    	}, eventFlags: u32) -> u32,
    	GetCallbackEventsMask:   proc "c" (self: ^struct {
    		using itf: ^SLPlayItf_,
    	}, pEventFlags: ^u32) -> u32,
    	SetMarkerPosition:       proc "c" (self: ^struct {
    		using itf: ^SLPlayItf_,
    	}, mSec: u32) -> u32,
    	ClearMarkerPosition:     proc "c" (self: ^struct {
    		using itf: ^SLPlayItf_,
    	}) -> u32,
    	GetMarkerPosition:       proc "c" (self: ^struct {
    		using itf: ^SLPlayItf_,
    	}, pMsec: ^u32) -> u32,
    	SetPositionUpdatePeriod: proc "c" (self: ^struct {
    		using itf: ^SLPlayItf_,
    	}, mSec: u32) -> u32,
    	GetPositionUpdatePeriod: proc "c" (self: ^struct {
    		using itf: ^SLPlayItf_,
    	}, pMsec: ^u32) -> u32,
    }

    SLPlaybackRateItf ¶

    SLPlaybackRateItf :: ^struct {
    	using itf: ^SLPlaybackRateItf_,
    }

    SLPlaybackRateItf_ ¶

    SLPlaybackRateItf_ :: struct {
    	SetRate:                proc "c" (self: ^struct {
    		using itf: ^SLPlaybackRateItf_,
    	}, rate: i16) -> u32,
    	GetRate:                proc "c" (self: ^struct {
    		using itf: ^SLPlaybackRateItf_,
    	}, pRate: ^i16) -> u32,
    	SetPropertyConstraints: proc "c" (self: ^struct {
    		using itf: ^SLPlaybackRateItf_,
    	}, constraints: u32) -> u32,
    	GetProperties:          proc "c" (self: ^struct {
    		using itf: ^SLPlaybackRateItf_,
    	}, pProperties: ^u32) -> u32,
    	GetCapabilitiesOfRate:  proc "c" (self: ^struct {
    		using itf: ^SLPlaybackRateItf_,
    	}, rate: i16, pCapabilities: ^u32) -> u32,
    	GetRateRange:           proc "c" (self: ^struct {
    		using itf: ^SLPlaybackRateItf_,
    	}, index: u8, pMinRate: ^i16, pMaxRate: ^i16, pStepSize: ^i16, pCapabilities: ^u32) -> u32,
    }

    SLPrefetchStatusItf ¶

    SLPrefetchStatusItf :: ^struct {
    	using itf: ^SLPrefetchStatusItf_,
    }

    SLPrefetchStatusItf_ ¶

    SLPrefetchStatusItf_ :: struct {
    	GetPrefetchStatus:     proc "c" (self: ^struct {
    		using itf: ^SLPrefetchStatusItf_,
    	}, pStatus: ^u32) -> u32,
    	GetFillLevel:          proc "c" (self: ^struct {
    		using itf: ^SLPrefetchStatusItf_,
    	}, pLevel: ^i16) -> u32,
    	RegisterCallback:      proc "c" (self: ^struct {
    		using itf: ^SLPrefetchStatusItf_,
    	}, callback: slPrefetchCallback, pContext: rawptr) -> u32,
    	SetCallbackEventsMask: proc "c" (self: ^struct {
    		using itf: ^SLPrefetchStatusItf_,
    	}, eventFlags: u32) -> u32,
    	GetCallbackEventsMask: proc "c" (self: ^struct {
    		using itf: ^SLPrefetchStatusItf_,
    	}, pEventFlags: ^u32) -> u32,
    	SetFillUpdatePeriod:   proc "c" (self: ^struct {
    		using itf: ^SLPrefetchStatusItf_,
    	}, period: i16) -> u32,
    	GetFillUpdatePeriod:   proc "c" (self: ^struct {
    		using itf: ^SLPrefetchStatusItf_,
    	}, pPeriod: ^i16) -> u32,
    }

    SLPresetReverbItf ¶

    SLPresetReverbItf :: ^struct {
    	using itf: ^SLPresetReverbItf_,
    }

    SLPresetReverbItf_ ¶

    SLPresetReverbItf_ :: struct {
    	SetPreset: proc "c" (self: ^struct {
    		using itf: ^SLPresetReverbItf_,
    	}, preset: u16) -> u32,
    	GetPreset: proc "c" (self: ^struct {
    		using itf: ^SLPresetReverbItf_,
    	}, pPreset: ^u16) -> u32,
    }

    SLRatePitchItf ¶

    SLRatePitchItf :: ^struct {
    	using itf: ^SLRatePitchItf_,
    }

    SLRatePitchItf_ ¶

    SLRatePitchItf_ :: struct {
    	SetRate:                  proc "c" (self: ^struct {
    		using itf: ^SLRatePitchItf_,
    	}, rate: i16) -> u32,
    	GetRate:                  proc "c" (self: ^struct {
    		using itf: ^SLRatePitchItf_,
    	}, pRate: ^i16) -> u32,
    	GetRatePitchCapabilities: proc "c" (self: ^struct {
    		using itf: ^SLRatePitchItf_,
    	}, pMinRate: ^i16, pMaxRate: ^i16) -> u32,
    }

    SLRecordItf ¶

    SLRecordItf :: ^struct {
    	using itf: ^SLRecordItf_,
    }

    SLRecordItf_ ¶

    SLRecordItf_ :: struct {
    	SetRecordState:          proc "c" (self: ^struct {
    		using itf: ^SLRecordItf_,
    	}, state: u32) -> u32,
    	GetRecordState:          proc "c" (self: ^struct {
    		using itf: ^SLRecordItf_,
    	}, pState: ^u32) -> u32,
    	SetDurationLimit:        proc "c" (self: ^struct {
    		using itf: ^SLRecordItf_,
    	}, msec: u32) -> u32,
    	GetPosition:             proc "c" (self: ^struct {
    		using itf: ^SLRecordItf_,
    	}, pMsec: ^u32) -> u32,
    	RegisterCallback:        proc "c" (self: ^struct {
    		using itf: ^SLRecordItf_,
    	}, callback: slRecordCallback, pContext: rawptr) -> u32,
    	SetCallbackEventsMask:   proc "c" (self: ^struct {
    		using itf: ^SLRecordItf_,
    	}, eventFlags: u32) -> u32,
    	GetCallbackEventsMask:   proc "c" (self: ^struct {
    		using itf: ^SLRecordItf_,
    	}, pEventFlags: ^u32) -> u32,
    	SetMarkerPosition:       proc "c" (self: ^struct {
    		using itf: ^SLRecordItf_,
    	}, mSec: u32) -> u32,
    	ClearMarkerPosition:     proc "c" (self: ^struct {
    		using itf: ^SLRecordItf_,
    	}) -> u32,
    	GetMarkerPosition:       proc "c" (self: ^struct {
    		using itf: ^SLRecordItf_,
    	}, pMsec: ^u32) -> u32,
    	SetPositionUpdatePeriod: proc "c" (self: ^struct {
    		using itf: ^SLRecordItf_,
    	}, mSec: u32) -> u32,
    	GetPositionUpdatePeriod: proc "c" (self: ^struct {
    		using itf: ^SLRecordItf_,
    	}, pMsec: ^u32) -> u32,
    }

    SLSeekItf ¶

    SLSeekItf :: ^struct {
    	using itf: ^SLSeekItf_,
    }

    SLSeekItf_ ¶

    SLSeekItf_ :: struct {
    	SetPosition: proc "c" (self: ^struct {
    		using itf: ^SLSeekItf_,
    	}, pos: u32, seekMode: u32) -> u32,
    	SetLoop:     proc "c" (self: ^struct {
    		using itf: ^SLSeekItf_,
    	}, loopEnable: u32, startPos: u32, endPos: u32) -> u32,
    	GetLoop:     proc "c" (self: ^struct {
    		using itf: ^SLSeekItf_,
    	}, pLoopEnabled: ^u32, pStartPos: ^u32, pEndPos: ^u32) -> u32,
    }

    SLThreadSyncItf ¶

    SLThreadSyncItf :: ^struct {
    	using itf: ^SLThreadSyncItf_,
    }

    SLThreadSyncItf_ ¶

    SLThreadSyncItf_ :: struct {
    	EnterCriticalSection: proc "c" (self: ^struct {
    		using itf: ^SLThreadSyncItf_,
    	}) -> u32,
    	ExitCriticalSection:  proc "c" (self: ^struct {
    		using itf: ^SLThreadSyncItf_,
    	}) -> u32,
    }

    SLVec3D ¶

    SLVec3D :: struct {
    	x: i32,
    	y: i32,
    	z: i32,
    }

    SLVibraDescriptor ¶

    SLVibraDescriptor :: struct {
    	supportsFrequency: u32,
    	supportsIntensity: u32,
    	minFrequency:      u32,
    	maxFrequency:      u32,
    }

    SLVibraItf ¶

    SLVibraItf :: ^struct {
    	using itf: ^SLVibraItf_,
    }

    SLVibraItf_ ¶

    SLVibraItf_ :: struct {
    	Vibrate:      proc "c" (self: ^struct {
    		using itf: ^SLVibraItf_,
    	}, vibrate: u32) -> u32,
    	IsVibrating:  proc "c" (self: ^struct {
    		using itf: ^SLVibraItf_,
    	}, pVibrating: ^u32) -> u32,
    	SetFrequency: proc "c" (self: ^struct {
    		using itf: ^SLVibraItf_,
    	}, frequency: u32) -> u32,
    	GetFrequency: proc "c" (self: ^struct {
    		using itf: ^SLVibraItf_,
    	}, pFrequency: ^u32) -> u32,
    	SetIntensity: proc "c" (self: ^struct {
    		using itf: ^SLVibraItf_,
    	}, intensity: i16) -> u32,
    	GetIntensity: proc "c" (self: ^struct {
    		using itf: ^SLVibraItf_,
    	}, pIntensity: ^i16) -> u32,
    }

    SLVirtualizerItf ¶

    SLVirtualizerItf :: ^struct {
    	using itf: ^SLVirtualizerItf_,
    }

    SLVirtualizerItf_ ¶

    SLVirtualizerItf_ :: struct {
    	SetEnabled:          proc "c" (self: ^struct {
    		using itf: ^SLVirtualizerItf_,
    	}, enabled: u32) -> u32,
    	IsEnabled:           proc "c" (self: ^struct {
    		using itf: ^SLVirtualizerItf_,
    	}, pEnabled: ^u32) -> u32,
    	SetStrength:         proc "c" (self: ^struct {
    		using itf: ^SLVirtualizerItf_,
    	}, strength: i16) -> u32,
    	GetRoundedStrength:  proc "c" (self: ^struct {
    		using itf: ^SLVirtualizerItf_,
    	}, pStrength: ^i16) -> u32,
    	IsStrengthSupported: proc "c" (self: ^struct {
    		using itf: ^SLVirtualizerItf_,
    	}, pSupported: ^u32) -> u32,
    }

    SLVisualizationItf ¶

    SLVisualizationItf :: ^struct {
    	using itf: ^SLVisualizationItf_,
    }

    SLVisualizationItf_ ¶

    SLVisualizationItf_ :: struct {
    	RegisterVisualizationCallback: proc "c" (self: ^struct {
    		using itf: ^SLVisualizationItf_,
    	}, callback: slVisualizationCallback, pContext: rawptr, rate: u32) -> u32,
    	GetMaxRate:                    proc "c" (self: ^struct {
    		using itf: ^SLVisualizationItf_,
    	}, pRate: ^u32) -> u32,
    }

    SLVolumeItf ¶

    SLVolumeItf :: ^struct {
    	using itf: ^SLVolumeItf_,
    }

    SLVolumeItf_ ¶

    SLVolumeItf_ :: struct {
    	SetVolumeLevel:          proc "c" (self: ^struct {
    		using itf: ^SLVolumeItf_,
    	}, level: i16) -> u32,
    	GetVolumeLevel:          proc "c" (self: ^struct {
    		using itf: ^SLVolumeItf_,
    	}, pLevel: ^i16) -> u32,
    	GetMaxVolumeLevel:       proc "c" (self: ^struct {
    		using itf: ^SLVolumeItf_,
    	}, pMaxLevel: ^i16) -> u32,
    	SetMute:                 proc "c" (self: ^struct {
    		using itf: ^SLVolumeItf_,
    	}, mute: u32) -> u32,
    	GetMute:                 proc "c" (self: ^struct {
    		using itf: ^SLVolumeItf_,
    	}, pMute: ^u32) -> u32,
    	EnableStereoPosition:    proc "c" (self: ^struct {
    		using itf: ^SLVolumeItf_,
    	}, enable: u32) -> u32,
    	IsEnabledStereoPosition: proc "c" (self: ^struct {
    		using itf: ^SLVolumeItf_,
    	}, pEnable: ^u32) -> u32,
    	SetStereoPosition:       proc "c" (self: ^struct {
    		using itf: ^SLVolumeItf_,
    	}, stereoPosition: i16) -> u32,
    	GetStereoPosition:       proc "c" (self: ^struct {
    		using itf: ^SLVolumeItf_,
    	}, pStereoPosition: ^i16) -> u32,
    }

    slAndroidBufferQueueCallback ¶

    slAndroidBufferQueueCallback :: proc "c" (caller: ^struct {
    	using itf: ^SLAndroidBufferQueueItf_,
    }, pCallbackContext: rawptr, pBufferContext: rawptr, pBufferData: rawptr, dataSize: u32, dataUsed: u32, pItems: ^SLAndroidBufferItem, itemsLength: u32) -> u32

    slAndroidSimpleBufferQueueCallback ¶

    slAndroidSimpleBufferQueueCallback :: proc "c" (caller: ^struct {
    	using itf: ^SLAndroidSimpleBufferQueueItf_,
    }, pContext: rawptr)

    slAvailableAudioInputsChangedCallback ¶

    slAvailableAudioInputsChangedCallback :: proc "c" (caller: ^struct {
    	using itf: ^SLAudioIODeviceCapabilitiesItf_,
    }, pContext: rawptr, deviceID: u32, numInputs: i32, isNew: u32)

    slAvailableAudioOutputsChangedCallback ¶

    slAvailableAudioOutputsChangedCallback :: proc "c" (caller: ^struct {
    	using itf: ^SLAudioIODeviceCapabilitiesItf_,
    }, pContext: rawptr, deviceID: u32, numOutputs: i32, isNew: u32)

    slBufferQueueCallback ¶

    slBufferQueueCallback :: proc "c" (caller: ^struct {
    	using itf: ^SLBufferQueueItf_,
    }, pContext: rawptr)

    slDefaultDeviceIDMapChangedCallback ¶

    slDefaultDeviceIDMapChangedCallback :: proc "c" (caller: ^struct {
    	using itf: ^SLAudioIODeviceCapabilitiesItf_,
    }, pContext: rawptr, isOutput: u32, numDevices: i32)

    slDynamicInterfaceManagementCallback ¶

    slDynamicInterfaceManagementCallback :: proc "c" (caller: ^struct {
    	using itf: ^SLDynamicInterfaceManagementItf_,
    }, pContext: rawptr, event: u32, result: u32, iid: ^SLInterfaceID_)

    slMIDIMessageCallback ¶

    slMIDIMessageCallback :: proc "c" (caller: ^struct {
    	using itf: ^SLMIDIMessageItf_,
    }, pContext: rawptr, statusByte: u8, length: u32, pData: ^u8, tick: u32, track: u16)

    slMetaEventCallback ¶

    slMetaEventCallback :: proc "c" (caller: ^struct {
    	using itf: ^SLMIDIMessageItf_,
    }, pContext: rawptr, type: u8, length: u32, pData: ^u8, tick: u32, track: u16)

    slMixDeviceChangeCallback ¶

    slMixDeviceChangeCallback :: proc "c" (caller: ^struct {
    	using itf: ^SLOutputMixItf_,
    }, pContext: rawptr)

    slObjectCallback ¶

    slObjectCallback :: proc "c" (caller: ^struct {
    	using itf: ^SLObjectItf_,
    }, pContext: rawptr, event: u32, result: u32, param: u32, pInterface: rawptr)

    slPlayCallback ¶

    slPlayCallback :: proc "c" (caller: ^struct {
    	using itf: ^SLPlayItf_,
    }, pContext: rawptr, event: u32)

    slPrefetchCallback ¶

    slPrefetchCallback :: proc "c" (caller: ^struct {
    	using itf: ^SLPrefetchStatusItf_,
    }, pContext: rawptr, event: u32)

    slRecordCallback ¶

    slRecordCallback :: proc "c" (caller: ^struct {
    	using itf: ^SLRecordItf_,
    }, pContext: rawptr, event: u32)

    slVisualizationCallback ¶

    slVisualizationCallback :: proc "c" (rawptr, ^u8, ^u8, u32)

    Constants

    ANDROID_KEY_PCMFORMAT_BITSPERSAMPLE ¶

    ANDROID_KEY_PCMFORMAT_BITSPERSAMPLE :: "AndroidPcmFormatBitsPerSample"

    ANDROID_KEY_PCMFORMAT_CHANNELMASK ¶

    ANDROID_KEY_PCMFORMAT_CHANNELMASK :: "AndroidPcmFormatChannelMask"

    ANDROID_KEY_PCMFORMAT_CONTAINERSIZE ¶

    ANDROID_KEY_PCMFORMAT_CONTAINERSIZE :: "AndroidPcmFormatContainerSize"

    ANDROID_KEY_PCMFORMAT_ENDIANNESS ¶

    ANDROID_KEY_PCMFORMAT_ENDIANNESS :: "AndroidPcmFormatEndianness"

    ANDROID_KEY_PCMFORMAT_NUMCHANNELS ¶

    ANDROID_KEY_PCMFORMAT_NUMCHANNELS :: "AndroidPcmFormatNumChannels"

    ANDROID_KEY_PCMFORMAT_SAMPLERATE ¶

    ANDROID_KEY_PCMFORMAT_SAMPLERATE :: "AndroidPcmFormatSampleRate"

    KHRONOS_ALBUM ¶

    KHRONOS_ALBUM :: "KhronosAlbum"

    KHRONOS_ALBUM_ART ¶

    KHRONOS_ALBUM_ART :: "KhronosAlbumArt"

    KHRONOS_ARTIST ¶

    KHRONOS_ARTIST :: "KhronosArtist"

    KHRONOS_ARTIST_URL ¶

    KHRONOS_ARTIST_URL :: "KhronosArtistURL"

    KHRONOS_COMMENT ¶

    KHRONOS_COMMENT :: "KhronosComment"

    KHRONOS_CONTENT_URL ¶

    KHRONOS_CONTENT_URL :: "KhronosContentURL"
    KHRONOS_COPYRIGHT :: "KhronosCopyright"

    KHRONOS_GENRE ¶

    KHRONOS_GENRE :: "KhronosGenre"

    KHRONOS_RATING ¶

    KHRONOS_RATING :: "KhronosRating"

    KHRONOS_TITLE ¶

    KHRONOS_TITLE :: "KhronosTitle"

    KHRONOS_TRACK_NUMBER ¶

    KHRONOS_TRACK_NUMBER :: "KhronosTrackNumber"

    KHRONOS_YEAR ¶

    KHRONOS_YEAR :: "KhronosYear"

    SL_ANDROIDBUFFERQUEUEEVENT_NONE ¶

    SL_ANDROIDBUFFERQUEUEEVENT_NONE :: 0x0

    SL_ANDROIDBUFFERQUEUEEVENT_PROCESSED ¶

    SL_ANDROIDBUFFERQUEUEEVENT_PROCESSED :: 0x1

    SL_ANDROID_ITEMKEY_BUFFERQUEUEEVENT ¶

    SL_ANDROID_ITEMKEY_BUFFERQUEUEEVENT :: 0x3

    SL_ANDROID_ITEMKEY_DISCONTINUITY ¶

    SL_ANDROID_ITEMKEY_DISCONTINUITY :: 0x2

    SL_ANDROID_ITEMKEY_FORMAT_CHANGE ¶

    SL_ANDROID_ITEMKEY_FORMAT_CHANGE :: 0x4

    SL_ANDROID_JAVA_PROXY_ROUTING ¶

    SL_ANDROID_JAVA_PROXY_ROUTING :: 0x0001

    SL_ANDROID_PCM_REPRESENTATION_FLOAT ¶

    SL_ANDROID_PCM_REPRESENTATION_FLOAT :: 0x3

    SL_ANDROID_PCM_REPRESENTATION_SIGNED_INT ¶

    SL_ANDROID_PCM_REPRESENTATION_SIGNED_INT :: 0x1

    SL_ANDROID_PCM_REPRESENTATION_UNSIGNED_INT ¶

    SL_ANDROID_PCM_REPRESENTATION_UNSIGNED_INT :: 0x2

    SL_ANDROID_SPEAKER_NON_POSITIONAL ¶

    SL_ANDROID_SPEAKER_NON_POSITIONAL :: 0x80000000

    SL_AUDIOCHANMODE_MP3_JOINTSTEREO ¶

    SL_AUDIOCHANMODE_MP3_JOINTSTEREO :: 0x3

    SL_AUDIOSTREAMFORMAT_CONFORMANCE ¶

    SL_AUDIOSTREAMFORMAT_CONFORMANCE :: 0x1

    SL_CHARACTERENCODING_CODEPAGE1252 ¶

    SL_CHARACTERENCODING_CODEPAGE1252 :: 0x4

    SL_CHARACTERENCODING_ISO885915 ¶

    SL_CHARACTERENCODING_ISO885915 :: 0x10

    SL_CHARACTERENCODING_ISO88592 ¶

    SL_CHARACTERENCODING_ISO88592 :: 0x11

    SL_CHARACTERENCODING_ISO88593 ¶

    SL_CHARACTERENCODING_ISO88593 :: 0x12

    SL_CHARACTERENCODING_ISO88594 ¶

    SL_CHARACTERENCODING_ISO88594 :: 0x13

    SL_CHARACTERENCODING_ISO88595 ¶

    SL_CHARACTERENCODING_ISO88595 :: 0x14

    SL_CHARACTERENCODING_ISO88596 ¶

    SL_CHARACTERENCODING_ISO88596 :: 0x15

    SL_CHARACTERENCODING_ISO88597 ¶

    SL_CHARACTERENCODING_ISO88597 :: 0x16

    SL_CHARACTERENCODING_ISO88598 ¶

    SL_CHARACTERENCODING_ISO88598 :: 0x17

    SL_CHARACTERENCODING_ISO88599 ¶

    SL_CHARACTERENCODING_ISO88599 :: 0x18

    SL_CHARACTERENCODING_ISOEUCJP ¶

    SL_CHARACTERENCODING_ISOEUCJP :: 0x19

    SL_CHARACTERENCODING_JAVACONFORMANTUTF8 ¶

    SL_CHARACTERENCODING_JAVACONFORMANTUTF8 :: 0x1e

    SL_CHARACTERENCODING_SHIFTJIS ¶

    SL_CHARACTERENCODING_SHIFTJIS :: 0x1a

    SL_DATALOCATOR_ANDROIDBUFFERQUEUE ¶

    SL_DATALOCATOR_ANDROIDBUFFERQUEUE :: 0x800007be

    SL_DATALOCATOR_ANDROIDFD ¶

    SL_DATALOCATOR_ANDROIDFD :: 0x800007bc

    SL_DATALOCATOR_ANDROIDFD_USE_FILE_SIZE ¶

    SL_DATALOCATOR_ANDROIDFD_USE_FILE_SIZE :: -1

    SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE ¶

    SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE :: 0x800007bd

    SL_DEFAULTDEVICEID_AUDIOINPUT ¶

    SL_DEFAULTDEVICEID_AUDIOINPUT :: 0xffffffff

    SL_DEFAULTDEVICEID_AUDIOOUTPUT ¶

    SL_DEFAULTDEVICEID_AUDIOOUTPUT :: 0xfffffffe

    SL_DEFAULTDEVICEID_LED ¶

    SL_DEFAULTDEVICEID_LED :: 0xfffffffd

    SL_DEFAULTDEVICEID_RESERVED1 ¶

    SL_DEFAULTDEVICEID_RESERVED1 :: 0xfffffffb

    SL_DEFAULTDEVICEID_VIBRA ¶

    SL_DEFAULTDEVICEID_VIBRA :: 0xfffffffc

    SL_DEVCONNECTION_ATTACHED_WIRED ¶

    SL_DEVCONNECTION_ATTACHED_WIRED :: 0x100

    SL_DEVCONNECTION_ATTACHED_WIRELESS ¶

    SL_DEVCONNECTION_ATTACHED_WIRELESS :: 0x200

    SL_DYNAMIC_ITF_EVENT_ASYNC_TERMINATION ¶

    SL_DYNAMIC_ITF_EVENT_ASYNC_TERMINATION :: 0x2

    SL_DYNAMIC_ITF_EVENT_RESOURCES_AVAILABLE ¶

    SL_DYNAMIC_ITF_EVENT_RESOURCES_AVAILABLE :: 0x5

    SL_DYNAMIC_ITF_EVENT_RESOURCES_LOST ¶

    SL_DYNAMIC_ITF_EVENT_RESOURCES_LOST :: 0x3

    SL_DYNAMIC_ITF_EVENT_RESOURCES_LOST_PERMANENTLY ¶

    SL_DYNAMIC_ITF_EVENT_RESOURCES_LOST_PERMANENTLY :: 0x4

    SL_DYNAMIC_ITF_EVENT_RUNTIME_ERROR ¶

    SL_DYNAMIC_ITF_EVENT_RUNTIME_ERROR :: 0x1

    SL_MIDIMESSAGETYPE_CHANNEL_PRESSURE ¶

    SL_MIDIMESSAGETYPE_CHANNEL_PRESSURE :: 0x5

    SL_MIDIMESSAGETYPE_CONTROL_CHANGE ¶

    SL_MIDIMESSAGETYPE_CONTROL_CHANGE :: 0x3

    SL_MIDIMESSAGETYPE_POLY_PRESSURE ¶

    SL_MIDIMESSAGETYPE_POLY_PRESSURE :: 0x2

    SL_MIDIMESSAGETYPE_PROGRAM_CHANGE ¶

    SL_MIDIMESSAGETYPE_PROGRAM_CHANGE :: 0x4

    SL_MIDIMESSAGETYPE_SYSTEM_MESSAGE ¶

    SL_MIDIMESSAGETYPE_SYSTEM_MESSAGE :: 0x7

    SL_MILLIHERTZ_MAX ¶

    SL_MILLIHERTZ_MAX :: 0xffffffff

    SL_MILLIMETER_MAX ¶

    SL_MILLIMETER_MAX :: 0x7fffffff

    SL_NODE_PARENT ¶

    SL_NODE_PARENT :: 0xFFFFFFFF

    SL_OBJECTID_AUDIOPLAYER ¶

    SL_OBJECTID_AUDIOPLAYER :: 0x1004

    SL_OBJECTID_AUDIORECORDER ¶

    SL_OBJECTID_AUDIORECORDER :: 0x1005

    SL_OBJECTID_METADATAEXTRACTOR ¶

    SL_OBJECTID_METADATAEXTRACTOR :: 0x100a

    SL_OBJECTID_VIBRADEVICE ¶

    SL_OBJECTID_VIBRADEVICE :: 0x1003

    SL_OBJECT_EVENT_ASYNC_TERMINATION ¶

    SL_OBJECT_EVENT_ASYNC_TERMINATION :: 0x2

    SL_OBJECT_EVENT_ITF_CONTROL_RETURNED ¶

    SL_OBJECT_EVENT_ITF_CONTROL_RETURNED :: 0x6

    SL_OBJECT_EVENT_ITF_CONTROL_TAKEN ¶

    SL_OBJECT_EVENT_ITF_CONTROL_TAKEN :: 0x5

    SL_OBJECT_EVENT_ITF_PARAMETERS_CHANGED ¶

    SL_OBJECT_EVENT_ITF_PARAMETERS_CHANGED :: 0x7

    SL_OBJECT_EVENT_RESOURCES_AVAILABLE ¶

    SL_OBJECT_EVENT_RESOURCES_AVAILABLE :: 0x4

    SL_PREFETCHEVENT_FILLLEVELCHANGE ¶

    SL_PREFETCHEVENT_FILLLEVELCHANGE :: 0x2

    SL_PREFETCHSTATUS_SUFFICIENTDATA ¶

    SL_PREFETCHSTATUS_SUFFICIENTDATA :: 0x2

    SL_PRIORITY_ABOVENORMAL ¶

    SL_PRIORITY_ABOVENORMAL :: 0x20000000

    SL_PRIORITY_BELOWNORMAL ¶

    SL_PRIORITY_BELOWNORMAL :: -536870912

    SL_PRIORITY_HIGH ¶

    SL_PRIORITY_HIGH :: 0x40000000

    SL_PRIORITY_HIGHEST ¶

    SL_PRIORITY_HIGHEST :: 0x7fffffff

    SL_PRIORITY_LOW ¶

    SL_PRIORITY_LOW :: -1073741824

    SL_PRIORITY_LOWEST ¶

    SL_PRIORITY_LOWEST :: -2147483648

    SL_PRIORITY_VERYHIGH ¶

    SL_PRIORITY_VERYHIGH :: 0x60000000

    SL_PRIORITY_VERYLOW ¶

    SL_PRIORITY_VERYLOW :: -1610612736

    SL_RATECONTROLMODE_CONSTANTBITRATE ¶

    SL_RATECONTROLMODE_CONSTANTBITRATE :: 0x1

    SL_RATECONTROLMODE_VARIABLEBITRATE ¶

    SL_RATECONTROLMODE_VARIABLEBITRATE :: 0x2

    SL_RATEPROP_NOPITCHCORAUDIO ¶

    SL_RATEPROP_NOPITCHCORAUDIO :: 0x400

    SL_RATEPROP_STAGGEREDAUDIO ¶

    SL_RATEPROP_STAGGEREDAUDIO :: 0x200

    SL_RECORDEVENT_BUFFER_INSUFFICIENT ¶

    SL_RECORDEVENT_BUFFER_INSUFFICIENT :: 0x20

    SL_RESULT_PRECONDITIONS_VIOLATED ¶

    SL_RESULT_PRECONDITIONS_VIOLATED :: 0x1

    SL_SAMPLINGRATE_11_025 ¶

    SL_SAMPLINGRATE_11_025 :: 11025000

    SL_SAMPLINGRATE_12 ¶

    SL_SAMPLINGRATE_12 :: 12000000

    SL_SAMPLINGRATE_16 ¶

    SL_SAMPLINGRATE_16 :: 16000000

    SL_SAMPLINGRATE_192 ¶

    SL_SAMPLINGRATE_192 :: 192000000

    SL_SAMPLINGRATE_22_05 ¶

    SL_SAMPLINGRATE_22_05 :: 22050000

    SL_SAMPLINGRATE_24 ¶

    SL_SAMPLINGRATE_24 :: 24000000

    SL_SAMPLINGRATE_32 ¶

    SL_SAMPLINGRATE_32 :: 32000000

    SL_SAMPLINGRATE_44_1 ¶

    SL_SAMPLINGRATE_44_1 :: 44100000

    SL_SAMPLINGRATE_48 ¶

    SL_SAMPLINGRATE_48 :: 48000000

    SL_SAMPLINGRATE_64 ¶

    SL_SAMPLINGRATE_64 :: 64000000

    SL_SAMPLINGRATE_88_2 ¶

    SL_SAMPLINGRATE_88_2 :: 88200000

    SL_SAMPLINGRATE_96 ¶

    SL_SAMPLINGRATE_96 :: 96000000

    SL_SPEAKER_FRONT_LEFT_OF_CENTER ¶

    SL_SPEAKER_FRONT_LEFT_OF_CENTER :: 0x40

    SL_SPEAKER_FRONT_RIGHT_OF_CENTER ¶

    SL_SPEAKER_FRONT_RIGHT_OF_CENTER :: 0x80

    SL_SPEAKER_TOP_BACK_CENTER ¶

    SL_SPEAKER_TOP_BACK_CENTER :: 0x10000

    SL_SPEAKER_TOP_BACK_LEFT ¶

    SL_SPEAKER_TOP_BACK_LEFT :: 0x8000

    SL_SPEAKER_TOP_BACK_RIGHT ¶

    SL_SPEAKER_TOP_BACK_RIGHT :: 0x20000

    SL_SPEAKER_TOP_FRONT_CENTER ¶

    SL_SPEAKER_TOP_FRONT_CENTER :: 0x2000

    SL_SPEAKER_TOP_FRONT_LEFT ¶

    SL_SPEAKER_TOP_FRONT_LEFT :: 0x1000

    SL_SPEAKER_TOP_FRONT_RIGHT ¶

    SL_SPEAKER_TOP_FRONT_RIGHT :: 0x4000

    SL_TIME_UNKNOWN ¶

    SL_TIME_UNKNOWN :: 0xffffffff

    Variables

    Procedures

    slCreateEngine ¶

    slCreateEngine :: proc "c" (
    	pEngine:            ^^struct {using itf: ^SLObjectItf_,}, 
    	numOptions:         u32, 
    	pEngineOptions:     ^SLEngineOption, 
    	numInterfaces:      u32, 
    	pInterfaceIds:      ^^SLInterfaceID_, 
    	pInterfaceRequired: ^u32, 
    ) -> u32 ---

    slQueryNumSupportedEngineInterfaces ¶

    slQueryNumSupportedEngineInterfaces :: proc "c" (pNumSupportedInterfaces: ^u32) -> u32 ---

    slQuerySupportedEngineInterfaces ¶

    slQuerySupportedEngineInterfaces :: proc "c" (
    	index:        u32, 
    	pInterfaceId: ^^SLInterfaceID_, 
    ) -> u32 ---

    Procedure Groups

    This section is empty.

    Source Files

    Generation Information

    Generated with odin version dev-2026-10 (vendor "odin") Windows_amd64 @ 2026-10-31 23:54:16.590839100 +0000 UTC