Files
UnrealEngine/Engine/Source/ThirdParty/EOSSDK/SDK/Include/eos_rtc_audio.h
2025-05-18 13:04:45 +08:00

483 lines
27 KiB
C

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "eos_rtc_audio_types.h"
/**
* The RTC Audio Interface. This is used to manage Audio specific RTC features
*
* @see EOS_RTC_GetAudioInterface
*/
/**
* Use this function to push a new audio buffer to be sent to the participants of a room.
*
* This should only be used if Manual Audio Input was enabled locally for the specified room.
*
* @param Options structure containing the parameters for the operation.
* @return EOS_Success if the buffer was successfully queued for sending
* EOS_InvalidParameters if any of the parameters are incorrect
* EOS_NotFound if the specified room was not found
* EOS_InvalidState if manual recording was not enabled when joining the room.
* @see EOS_RTC_JoinRoomOptions
* @see EOS_Lobby_LocalRTCOptions
*/
EOS_DECLARE_FUNC(EOS_EResult) EOS_RTCAudio_SendAudio(EOS_HRTCAudio Handle, const EOS_RTCAudio_SendAudioOptions* Options);
/**
* Use this function to tweak outgoing audio options for a room.
*
* @note Due to internal implementation details, this function requires that you first register to any notification for room
*
* @param Options structure containing the parameters for the operation.
* @param ClientData Arbitrary data that is passed back in the CompletionDelegate
* @param CompletionDelegate The callback to be fired when the operation completes, either successfully or in error
* @return EOS_Success if the operation succeeded
* EOS_InvalidParameters if any of the parameters are incorrect
* EOS_NotFound if the local user is not in the room
*/
EOS_DECLARE_FUNC(void) EOS_RTCAudio_UpdateSending(EOS_HRTCAudio Handle, const EOS_RTCAudio_UpdateSendingOptions* Options, void* ClientData, const EOS_RTCAudio_OnUpdateSendingCallback CompletionDelegate);
/**
* Use this function to tweak incoming audio options for a room.
*
* @note Due to internal implementation details, this function requires that you first register to any notification for room
*
* @param Options structure containing the parameters for the operation.
* @param ClientData Arbitrary data that is passed back in the CompletionDelegate
* @param CompletionDelegate The callback to be fired when the operation completes, either successfully or in error
* @return EOS_Success if the operation succeeded
* EOS_InvalidParameters if any of the parameters are incorrect
* EOS_NotFound if either the local user or specified participant are not in the room
*/
EOS_DECLARE_FUNC(void) EOS_RTCAudio_UpdateReceiving(EOS_HRTCAudio Handle, const EOS_RTCAudio_UpdateReceivingOptions* Options, void* ClientData, const EOS_RTCAudio_OnUpdateReceivingCallback CompletionDelegate);
/**
* Use this function to change outgoing audio volume for a room.
*
* @note Due to internal implementation details, this function requires that you first register to any notification for room
*
* @param Options structure containing the parameters for the operation.
* @param ClientData Arbitrary data that is passed back in the CompletionDelegate
* @param CompletionDelegate The callback to be fired when the operation completes, either successfully or in error
* @return EOS_Success if the operation succeeded
* EOS_InvalidParameters if any of the parameters are incorrect
* EOS_NotFound if the local user is not in the room
*/
EOS_DECLARE_FUNC(void) EOS_RTCAudio_UpdateSendingVolume(EOS_HRTCAudio Handle, const EOS_RTCAudio_UpdateSendingVolumeOptions* Options, void* ClientData, const EOS_RTCAudio_OnUpdateSendingVolumeCallback CompletionDelegate);
/**
* Use this function to change incoming audio volume for a room.
*
* @note Due to internal implementation details, this function requires that you first register to any notification for room
*
* @param Options structure containing the parameters for the operation.
* @param ClientData Arbitrary data that is passed back in the CompletionDelegate
* @param CompletionDelegate The callback to be fired when the operation completes, either successfully or on error
* @return EOS_Success if the operation succeeded
* EOS_InvalidParameters if any of the parameters are incorrect
* EOS_NotFound if the local user is not in the room
*/
EOS_DECLARE_FUNC(void) EOS_RTCAudio_UpdateReceivingVolume(EOS_HRTCAudio Handle, const EOS_RTCAudio_UpdateReceivingVolumeOptions* Options, void* ClientData, const EOS_RTCAudio_OnUpdateReceivingVolumeCallback CompletionDelegate);
/**
* Use this function to change participant audio volume for a room.
*
* @note Due to internal implementation details, this function requires that you first register to any notification for room
*
* @param Options structure containing the parameters for the operation.
* @param ClientData Arbitrary data that is passed back in the CompletionDelegate
* @param CompletionDelegate The callback to be fired when the operation completes, either successfully or in error
* @return EOS_Success if the operation succeeded
* EOS_InvalidParameters if any of the parameters are incorrect
* EOS_NotFound if either the local user or specified participant are not in the room
*/
EOS_DECLARE_FUNC(void) EOS_RTCAudio_UpdateParticipantVolume(EOS_HRTCAudio Handle, const EOS_RTCAudio_UpdateParticipantVolumeOptions* Options, void* ClientData, const EOS_RTCAudio_OnUpdateParticipantVolumeCallback CompletionDelegate);
/**
* Register to receive notifications when a room participant audio status is updated (f.e when mute state changes or speaking flag changes).
*
* The notification is raised when the participant's audio status is updated. In order not to miss any participant status changes, applications need to add the notification before joining a room.
*
* If the returned NotificationId is valid, you must call EOS_RTCAudio_RemoveNotifyParticipantUpdated when you no longer wish
* to have your CompletionDelegate called.
*
* @param ClientData Arbitrary data that is passed back in the CompletionDelegate
* @param CompletionDelegate The callback to be fired when a participant changes audio status
* @return Notification ID representing the registered callback if successful, an invalid NotificationId if not
*
* @see EOS_INVALID_NOTIFICATIONID
* @see EOS_RTCAudio_RemoveNotifyParticipantUpdated
* @see EOS_RTCAudio_ParticipantUpdatedCallbackInfo
* @see EOS_ERTCAudioStatus
*/
EOS_DECLARE_FUNC(EOS_NotificationId) EOS_RTCAudio_AddNotifyParticipantUpdated(EOS_HRTCAudio Handle, const EOS_RTCAudio_AddNotifyParticipantUpdatedOptions* Options, void* ClientData, const EOS_RTCAudio_OnParticipantUpdatedCallback CompletionDelegate);
/**
* Unregister a previously bound notification handler from receiving participant updated notifications
*
* @param NotificationId The Notification ID representing the registered callback
*/
EOS_DECLARE_FUNC(void) EOS_RTCAudio_RemoveNotifyParticipantUpdated(EOS_HRTCAudio Handle, EOS_NotificationId NotificationId);
/**
* Register to receive notifications when an audio device is added or removed to the system.
*
* If the returned NotificationId is valid, you must call EOS_RTCAudio_RemoveNotifyAudioDevicesChanged when you no longer wish
* to have your CompletionDelegate called.
*
* The library will try to use user selected audio device while following these rules:
* - if none of the audio devices has been available and connected before - the library will try to use it;
* - if user selected device failed for some reason, default device will be used instead (and user selected device will be memorized);
* - if user selected a device but it was not used for some reason (and default was used instead), when devices selection is triggered we will try to use user selected device again;
* - triggers to change a device: when new audio device appears or disappears - library will try to use previously user selected;
* - if for any reason, a device cannot be used - the library will fallback to using default;
* - if a configuration of the current audio device has been changed, it will be restarted.
*
* @param ClientData Arbitrary data that is passed back in the CompletionDelegate
* @param CompletionDelegate The callback to be fired when an audio device change occurs
* @return Notification ID representing the registered callback if successful, an invalid NotificationId if not
*
* @see EOS_INVALID_NOTIFICATIONID
* @see EOS_RTCAudio_RemoveNotifyAudioDevicesChanged
* @see EOS_RTCAudio_SetAudioInputSettingsOptions
* @see EOS_RTCAudio_SetAudioOutputSettingsOptions
*/
EOS_DECLARE_FUNC(EOS_NotificationId) EOS_RTCAudio_AddNotifyAudioDevicesChanged(EOS_HRTCAudio Handle, const EOS_RTCAudio_AddNotifyAudioDevicesChangedOptions* Options, void* ClientData, const EOS_RTCAudio_OnAudioDevicesChangedCallback CompletionDelegate);
/**
* Unregister a previously bound notification handler from receiving audio devices notifications
*
* @param NotificationId The Notification ID representing the registered callback
*/
EOS_DECLARE_FUNC(void) EOS_RTCAudio_RemoveNotifyAudioDevicesChanged(EOS_HRTCAudio Handle, EOS_NotificationId NotificationId);
/**
* Register to receive notifications when audio input state changed.
*
* If the returned NotificationId is valid, you must call EOS_RTCAudio_RemoveNotifyAudioInputState when you no longer wish to
* have your CompletionDelegate called.
*
* @param ClientData Arbitrary data that is passed back in the CompletionDelegate
* @param CompletionDelegate The callback to be fired when audio input state changes
* @return Notification ID representing the registered callback if successful, an invalid NotificationId if not
*
* @see EOS_INVALID_NOTIFICATIONID
* @see EOS_RTCAudio_RemoveNotifyAudioInputState
*/
EOS_DECLARE_FUNC(EOS_NotificationId) EOS_RTCAudio_AddNotifyAudioInputState(EOS_HRTCAudio Handle, const EOS_RTCAudio_AddNotifyAudioInputStateOptions* Options, void* ClientData, const EOS_RTCAudio_OnAudioInputStateCallback CompletionDelegate);
/**
* Unregister a previously bound notification handler from receiving notifications on audio input state changed.
*
* @param NotificationId The Notification ID representing the registered callback
*/
EOS_DECLARE_FUNC(void) EOS_RTCAudio_RemoveNotifyAudioInputState(EOS_HRTCAudio Handle, EOS_NotificationId NotificationId);
/**
* Register to receive notifications when audio output state changed.
*
* If the returned NotificationId is valid, you must call EOS_RTCAudio_RemoveNotifyAudioOutputState when you no longer wish to
* have your CompletionDelegate called.
*
* @param ClientData Arbitrary data that is passed back in the CompletionDelegate
* @param CompletionDelegate The callback to be fired when audio output state changes
* @return Notification ID representing the registered callback if successful, an invalid NotificationId if not
*
* @see EOS_INVALID_NOTIFICATIONID
* @see EOS_RTCAudio_RemoveNotifyAudioOutputState
*/
EOS_DECLARE_FUNC(EOS_NotificationId) EOS_RTCAudio_AddNotifyAudioOutputState(EOS_HRTCAudio Handle, const EOS_RTCAudio_AddNotifyAudioOutputStateOptions* Options, void* ClientData, const EOS_RTCAudio_OnAudioOutputStateCallback CompletionDelegate);
/**
* Unregister a previously bound notification handler from receiving notifications on audio output state changed.
*
* @param NotificationId The Notification ID representing the registered callback
*/
EOS_DECLARE_FUNC(void) EOS_RTCAudio_RemoveNotifyAudioOutputState(EOS_HRTCAudio Handle, EOS_NotificationId NotificationId);
/**
* Register to receive notifications when local audio buffers are about to be encoded and sent.
*
* This gives you access to the audio data about to be sent, allowing for example the implementation of custom filters/effects.
*
* If the returned NotificationId is valid, you must call EOS_RTCAudio_RemoveNotifyAudioBeforeSend when you no longer wish to
* have your CompletionDelegate called.
*
* @note The CompletionDelegate may be called from a thread other than the one from which the SDK is ticking.
*
* @param ClientData Arbitrary data that is passed back in the CompletionDelegate
* @param CompletionDelegate The callback to be fired when local audio buffers are about to be encoded and sent
* @return Notification ID representing the registered callback if successful, an invalid NotificationId if not
*
* @see EOS_INVALID_NOTIFICATIONID
* @see EOS_RTCAudio_RemoveNotifyAudioBeforeSend
*/
EOS_DECLARE_FUNC(EOS_NotificationId) EOS_RTCAudio_AddNotifyAudioBeforeSend(EOS_HRTCAudio Handle, const EOS_RTCAudio_AddNotifyAudioBeforeSendOptions* Options, void* ClientData, const EOS_RTCAudio_OnAudioBeforeSendCallback CompletionDelegate);
/**
* Unregister a previously bound notification handler from receiving local audio buffers before they are encoded and sent.
*
* @param NotificationId The Notification ID representing the registered callback
*/
EOS_DECLARE_FUNC(void) EOS_RTCAudio_RemoveNotifyAudioBeforeSend(EOS_HRTCAudio Handle, EOS_NotificationId NotificationId);
/**
* Register to receive notifications with remote audio buffers before they are rendered.
*
* This gives you access to the audio data received, allowing for example the implementation of custom filters/effects.
*
* If the returned NotificationId is valid, you must call EOS_RTCAudio_RemoveNotifyAudioBeforeRender when you no longer wish to
* have your CompletionDelegate called.
*
* @note The CompletionDelegate may be called from a thread other than the one from which the SDK is ticking.
*
* @param ClientData Arbitrary data that is passed back in the CompletionDelegate
* @param CompletionDelegate The callback to be fired when remote audio buffers are about to be rendered
* @return Notification ID representing the registered callback if successful, an invalid NotificationId if not
*
* @see EOS_INVALID_NOTIFICATIONID
* @see EOS_RTCAudio_RemoveNotifyAudioBeforeRender
*/
EOS_DECLARE_FUNC(EOS_NotificationId) EOS_RTCAudio_AddNotifyAudioBeforeRender(EOS_HRTCAudio Handle, const EOS_RTCAudio_AddNotifyAudioBeforeRenderOptions* Options, void* ClientData, const EOS_RTCAudio_OnAudioBeforeRenderCallback CompletionDelegate);
/**
* Unregister a previously bound notification handler from receiving remote audio buffers before they are rendered.
*
* @param NotificationId The Notification ID representing the registered callback
*/
EOS_DECLARE_FUNC(void) EOS_RTCAudio_RemoveNotifyAudioBeforeRender(EOS_HRTCAudio Handle, EOS_NotificationId NotificationId);
/**
* Use this function to inform the audio system of a user.
*
* This function is only necessary for some platforms.
*
* @param Options structure containing the parameters for the operation
* @param ClientData Arbitrary data that is passed back in the CompletionDelegate
* @param CompletionDelegate The callback to be fired when the operation completes, either successfully or in error
* @return EOS_Success if the user was successfully registered
* EOS_InvalidParameters if any of the parameters are incorrect
* EOS_UnexpectedError otherwise
*
* @see EOS_RTCAudio_UnregisterPlatformUser
*/
EOS_DECLARE_FUNC(void) EOS_RTCAudio_RegisterPlatformUser(EOS_HRTCAudio Handle, const EOS_RTCAudio_RegisterPlatformUserOptions* Options, void* ClientData, const EOS_RTCAudio_OnRegisterPlatformUserCallback CompletionDelegate);
/**
* Use this function to remove a user that was added with EOS_RTCAudio_RegisterPlatformUser.
*
* This function is only necessary for some platforms.
*
* @param Options structure containing the parameters for the operation
* @param ClientData Arbitrary data that is passed back in the CompletionDelegate
* @param CompletionDelegate The callback to be fired when the operation completes, either successfully or in error
* @return EOS_Success if the user was successfully unregistered
* EOS_InvalidParameters if any of the parameters are incorrect
* EOS_UnexpectedError otherwise
*/
EOS_DECLARE_FUNC(void) EOS_RTCAudio_UnregisterPlatformUser(EOS_HRTCAudio Handle, const EOS_RTCAudio_UnregisterPlatformUserOptions* Options, void* ClientData, const EOS_RTCAudio_OnUnregisterPlatformUserCallback CompletionDelegate);
/**
* Query for a list of audio input devices available in the system together with their specifications.
*
* @param Options structure containing the parameters for the operation
* @param ClientData Arbitrary data that is passed back in the CompletionDelegate
* @param CompletionDelegate The callback to be fired when the operation completes, either successfully or in error
* @return EOS_Success if the operation succeeded
* EOS_InvalidParameters if any of the parameters are incorrect
*/
EOS_DECLARE_FUNC(void) EOS_RTCAudio_QueryInputDevicesInformation(EOS_HRTCAudio Handle, const EOS_RTCAudio_QueryInputDevicesInformationOptions* Options, void* ClientData, const EOS_RTCAudio_OnQueryInputDevicesInformationCallback CompletionDelegate);
/**
* Fetch the number of audio input devices available in the system that are cached locally.
*
* The returned value should not be cached and should instead be used immediately with
* the EOS_RTCAudio_CopyInputDeviceInformationByIndex function.
*
* @param Options structure containing the parameters for the operation
* @return The number of audio input devices available in the system or 0 if there is an error
*
* @see EOS_RTCAudio_CopyInputDeviceInformationByIndex
* @see EOS_RTCAudio_AddNotifyAudioDevicesChanged
*/
EOS_DECLARE_FUNC(uint32_t) EOS_RTCAudio_GetInputDevicesCount(EOS_HRTCAudio Handle, const EOS_RTCAudio_GetInputDevicesCountOptions* Options);
/**
* Fetches an audio input device's information from then given index that are cached locally.
*
* @param Options structure containing the index being accessed
* @param OutInputDeviceInformation The audio input device's information for the given index, if it exists and is valid, use EOS_RTCAudio_InputDeviceInformation_Release when finished
* @return EOS_Success if the information is available and passed out in OutInputDeviceInformation
* EOS_InvalidParameters if you pass a null pointer for the out parameter
* EOS_NotFound if the audio input device's information is not found
*
* @see EOS_RTCAudio_InputDeviceInformation_Release
* @see EOS_RTCAudio_GetAudioInputDevicesCount
* @see EOS_RTCAudio_AddNotifyAudioDevicesChanged
*/
EOS_DECLARE_FUNC(EOS_EResult) EOS_RTCAudio_CopyInputDeviceInformationByIndex(EOS_HRTCAudio Handle, const EOS_RTCAudio_CopyInputDeviceInformationByIndexOptions* Options, EOS_RTCAudio_InputDeviceInformation ** OutInputDeviceInformation);
/**
* Query for a list of audio output devices available in the system together with their specifications.
*
* @param Options structure containing the parameters for the operation
* @param ClientData Arbitrary data that is passed back in the CompletionDelegate
* @param CompletionDelegate The callback to be fired when the operation completes, either successfully or in error
* @return EOS_Success if the operation succeeded
* EOS_InvalidParameters if any of the parameters are incorrect
*/
EOS_DECLARE_FUNC(void) EOS_RTCAudio_QueryOutputDevicesInformation(EOS_HRTCAudio Handle, const EOS_RTCAudio_QueryOutputDevicesInformationOptions* Options, void* ClientData, const EOS_RTCAudio_OnQueryOutputDevicesInformationCallback CompletionDelegate);
/**
* Fetch the number of audio output devices available in the system that are cached locally.
*
* The returned value should not be cached and should instead be used immediately with
* the EOS_RTCAudio_CopyOutputDeviceInformationByIndex function.
*
* @param Options structure containing the parameters for the operation
* @return The number of audio output devices available in the system or 0 if there is an error
*
* @see EOS_RTCAudio_CopyOutputDeviceInformationByIndex
* @see EOS_RTCAudio_AddNotifyAudioDevicesChanged
*/
EOS_DECLARE_FUNC(uint32_t) EOS_RTCAudio_GetOutputDevicesCount(EOS_HRTCAudio Handle, const EOS_RTCAudio_GetOutputDevicesCountOptions* Options);
/**
* Fetches an audio output device's information from then given index that are cached locally.
*
* @param Options structure containing the index being accessed
* @param OutOutputDeviceInformation The audio output device's information for the given index, if it exists and is valid, use EOS_RTCAudio_OutputDeviceInformation_Release when finished
* @return EOS_Success if the information is available and passed out in OutOutputDeviceInformation
* EOS_InvalidParameters if you pass a null pointer for the out parameter
* EOS_NotFound if the audio output device's information is not found
*
* @see EOS_RTCAudio_OutputDeviceInformation_Release
* @see EOS_RTCAudio_GetAudioOutputDevicesCount
* @see EOS_RTCAudio_AddNotifyAudioDevicesChanged
*/
EOS_DECLARE_FUNC(EOS_EResult) EOS_RTCAudio_CopyOutputDeviceInformationByIndex(EOS_HRTCAudio Handle, const EOS_RTCAudio_CopyOutputDeviceInformationByIndexOptions* Options, EOS_RTCAudio_OutputDeviceInformation ** OutOutputDeviceInformation);
/**
* Use this function to set audio input device settings, such as the active input device, or platform AEC.
*
* @param Options structure containing the parameters for the operation
* @param ClientData Arbitrary data that is passed back in the CompletionDelegate
* @param CompletionDelegate The callback to be fired when the operation completes, either successfully or in error
* @return EOS_Success if the setting was successful
* EOS_InvalidParameters if any of the parameters are incorrect
*/
EOS_DECLARE_FUNC(void) EOS_RTCAudio_SetInputDeviceSettings(EOS_HRTCAudio Handle, const EOS_RTCAudio_SetInputDeviceSettingsOptions* Options, void* ClientData, const EOS_RTCAudio_OnSetInputDeviceSettingsCallback CompletionDelegate);
/**
* Use this function to set audio output device settings, such as the active output device.
*
* @param Options structure containing the parameters for the operation
* @param ClientData Arbitrary data that is passed back in the CompletionDelegate
* @param CompletionDelegate The callback to be fired when the operation completes, either successfully or in error
* @return EOS_Success if the setting was successful
* EOS_InvalidParameters if any of the parameters are incorrect
*/
EOS_DECLARE_FUNC(void) EOS_RTCAudio_SetOutputDeviceSettings(EOS_HRTCAudio Handle, const EOS_RTCAudio_SetOutputDeviceSettingsOptions* Options, void* ClientData, const EOS_RTCAudio_OnSetOutputDeviceSettingsCallback CompletionDelegate);
/**
* DEPRECATED! Use EOS_RTCAudio_RegisterPlatformUser instead.
*
* Use this function to inform the audio system of a user.
*
* This function is only necessary for some platforms.
*
* @param Options structure containing the parameters for the operation.
* @return EOS_Success if the user was successfully registered, EOS_UnexpectedError otherwise.
*/
EOS_DECLARE_FUNC(EOS_EResult) EOS_RTCAudio_RegisterPlatformAudioUser(EOS_HRTCAudio Handle, const EOS_RTCAudio_RegisterPlatformAudioUserOptions* Options);
/**
* DEPRECATED! Use EOS_RTCAudio_UnregisterPlatformUser instead.
*
* Use this function to remove a user that was added with EOS_RTCAudio_RegisterPlatformAudioUser.
*
* @param Options structure containing the parameters for the operation.
* @return EOS_Success if the user was successfully unregistered, EOS_UnexpectedError otherwise.
*/
EOS_DECLARE_FUNC(EOS_EResult) EOS_RTCAudio_UnregisterPlatformAudioUser(EOS_HRTCAudio Handle, const EOS_RTCAudio_UnregisterPlatformAudioUserOptions* Options);
/**
* DEPRECATED! Use EOS_RTCAudio_QueryInputDevicesInformation, EOS_RTCAudio_GetInputDevicesCount instead.
*
* Returns the number of audio input devices available in the system.
*
* The returned value should not be cached and should instead be used immediately with the EOS_RTCAudio_GetAudioInputDeviceByIndex
* function.
*
* @param Options structure containing the parameters for the operation
* @return The number of audio input devices
* @see EOS_RTCAudio_GetAudioInputDeviceByIndex
* @see EOS_RTCAudio_AddNotifyAudioDevicesChanged
*/
EOS_DECLARE_FUNC(uint32_t) EOS_RTCAudio_GetAudioInputDevicesCount(EOS_HRTCAudio Handle, const EOS_RTCAudio_GetAudioInputDevicesCountOptions* Options);
/**
* DEPRECATED! Use EOS_RTCAudio_QueryInputDevicesInformation, EOS_RTCAudio_CopyInputDeviceInformationByIndex instead.
*
* Fetches an audio input device's info from then given index. The returned value should not be cached and important
* information should be copied off of the result object immediately.
*
* @param Options structure containing the index being accessed
* @return A pointer to the device information, or NULL on error. You should NOT keep hold of this pointer.
* @see EOS_RTCAudio_GetAudioInputDevicesCount
* @see EOS_RTCAudio_AddNotifyAudioDevicesChanged
*/
EOS_DECLARE_FUNC(const EOS_RTCAudio_AudioInputDeviceInfo *) EOS_RTCAudio_GetAudioInputDeviceByIndex(EOS_HRTCAudio Handle, const EOS_RTCAudio_GetAudioInputDeviceByIndexOptions* Options);
/**
* DEPRECATED! Use EOS_RTCAudio_QueryOutputDevicesInformation, EOS_RTCAudio_GetOutputDevicesCount instead.
*
* Returns the number of audio output devices available in the system.
*
* The returned value should not be cached and should instead be used immediately with the EOS_RTCAudio_GetAudioOutputDeviceByIndex
* function.
*
* @param Options structure containing the parameters for the operation
* @return The number of audio output devices
* @see EOS_RTCAudio_GetAudioOutputDeviceByIndex
* @see EOS_RTCAudio_AddNotifyAudioDevicesChanged
*/
EOS_DECLARE_FUNC(uint32_t) EOS_RTCAudio_GetAudioOutputDevicesCount(EOS_HRTCAudio Handle, const EOS_RTCAudio_GetAudioOutputDevicesCountOptions* Options);
/**
* DEPRECATED! Use EOS_RTCAudio_QueryOutputDevicesInformation, EOS_RTCAudio_CopyOutputDeviceInformationByIndex instead.
*
* Fetches an audio output device's info from then given index.
*
* The returned value should not be cached and important information should be copied off of the result object immediately.
*
* @param Options structure containing the index being accessed
* @return A pointer to the device information, or NULL on error. You should NOT keep hold of this pointer.
* @see EOS_RTCAudio_GetAudioOutputDevicesCount
* @see EOS_RTCAudio_AddNotifyAudioDevicesChanged
*/
EOS_DECLARE_FUNC(const EOS_RTCAudio_AudioOutputDeviceInfo *) EOS_RTCAudio_GetAudioOutputDeviceByIndex(EOS_HRTCAudio Handle, const EOS_RTCAudio_GetAudioOutputDeviceByIndexOptions* Options);
/**
* DEPRECATED! Use EOS_RTCAudio_SetInputDeviceSettings instead.
*
* Use this function to set audio input settings, such as the active input device, volume, or platform AEC.
*
* @param Options structure containing the parameters for the operation.
* @return EOS_Success if the setting was successful
* EOS_InvalidParameters if any of the parameters are incorrect
*/
EOS_DECLARE_FUNC(EOS_EResult) EOS_RTCAudio_SetAudioInputSettings(EOS_HRTCAudio Handle, const EOS_RTCAudio_SetAudioInputSettingsOptions* Options);
/**
* DEPRECATED! Use EOS_RTCAudio_SetOutputDeviceSettings instead.
*
* Use this function to set audio output settings, such as the active output device or volume.
*
* @param Options structure containing the parameters for the operation.
* @return EOS_Success if the setting was successful
* EOS_InvalidParameters if any of the parameters are incorrect
*/
EOS_DECLARE_FUNC(EOS_EResult) EOS_RTCAudio_SetAudioOutputSettings(EOS_HRTCAudio Handle, const EOS_RTCAudio_SetAudioOutputSettingsOptions* Options);