Kawe Mazidjatari b3a68ed095 Add EABase, EAThread and DirtySDK to R5sdk
DirtySDK (EA's Dirty Sockets library) will be used for the LiveAPI implementation, and depends on: EABase, EAThread.
2024-04-05 18:29:03 +02:00

122 lines
5.2 KiB
C

/*H********************************************************************************/
/*!
\File voipheadset.h
\Description
VoIP headset manager.
\Copyright
Copyright (c) Electronic Arts 2004. ALL RIGHTS RESERVED.
\Version 1.0 03/31/2004 (jbrookes) First Version
*/
/********************************************************************************H*/
#ifndef _voipheadset_h
#define _voipheadset_h
/*** Include files ****************************************************************/
/*** Defines **********************************************************************/
/*** Macros ***********************************************************************/
/*** Type Definitions *************************************************************/
//! voip headset update status
typedef enum VoipHeadsetStatusUpdateE
{
VOIP_HEADSET_STATUS_INPUT = 1,
VOIP_HEADSET_STATUS_OUTPUT,
VOIP_HEADSET_STATUS_INOUT
} VoipHeadsetStatusUpdateE;
//! opaque headset module ref
typedef struct VoipHeadsetRefT VoipHeadsetRefT;
//! mic data ready callback function prototype
typedef void (VoipHeadsetMicDataCbT)(const void *pVoiceData, int32_t iDataSize, const void *pMetaData, int32_t iMetaDataSize, uint32_t uLocalUserIndex, uint8_t uSendSeqn, void *pUserData);
//! locally generated transcribed text ready callback function prototype
typedef void (VoipHeadsetTextDataCbT)(const char *pTranscribedTextUtf8, uint32_t uLocalUserIndex, void *pUserData);
#if defined(DIRTYCODE_XBOXONE) || defined(DIRTYCODE_GDK)
//! remote-generated transcribed text received callback function prototype
typedef void (VoipHeadsetTranscribedTextReceivedCbT)(VoipUserT *pUser, const char *pText, void *pUserData);
#endif
//! opaque data ready callback function prototype
typedef void (VoipHeadsetOpaqueDataCbT)(const uint8_t *pOpaqueData, int32_t iOpaqueDataSize, uint32_t uSendMask, uint8_t bReliable, uint8_t uSendSeqn, void *pUserData);
#if defined(DIRTYCODE_PS4)
//! remote-generated transcribed text received callback function prototype
typedef void (VoipHeadsetTranscribedTextReceivedCbT)(const VoipUserT *pUser, const char *pText, void *pUserData);
#endif
//! headset status change callback
typedef void (VoipHeadsetStatusCbT)(int32_t iLocalUserIndex, uint32_t bStatus, VoipHeadsetStatusUpdateE eUpdate, void *pUserData);
/*** Variables ********************************************************************/
/*** Functions ********************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
// create headset module
VoipHeadsetRefT *VoipHeadsetCreate(int32_t iMaxChannels, VoipHeadsetMicDataCbT *pMicDataCb, VoipHeadsetTextDataCbT *pTextDataCb, VoipHeadsetOpaqueDataCbT *pOpaqueDataCb, VoipHeadsetStatusCbT *pStatusCb, void *pCbUserData, int32_t iData);
// destroy headset module
void VoipHeadsetDestroy(VoipHeadsetRefT *pHeadset);
// callback to handle receiving voice data
void VoipHeadsetReceiveVoiceDataCb(VoipUserT *pRemoteUsers, int32_t iRemoteUserSize, int32_t iConsoleId, VoipMicrInfoT *pMicrInfo, uint8_t *pPacketData, void *pUserData);
// callback to handle receiving opaque data
void VoipHeadsetReceiveOpaqueDataCb(int32_t iConsoleId, const uint8_t *pOpaqueData, int32_t iOpaqueDataSize, void *pUserData);
// callback to handle registering of a new user
void VoipHeadsetRegisterUserCb(VoipUserT *pRemoteUser, int32_t iConsoleID, uint32_t bRegister, void *pUserData);
// process function to update headset(s)
void VoipHeadsetProcess(VoipHeadsetRefT *pHeadset, uint32_t uFrameCount);
// set play/rec volumes (-1 to keep current setting)
void VoipHeadsetSetVolume(VoipHeadsetRefT *pHeadset, int32_t iPlayVol, uint32_t iRecVol);
// control function
int32_t VoipHeadsetControl(VoipHeadsetRefT *pHeadset, int32_t iControl, int32_t iValue, int32_t iValue2, void *pValue);
// status function
int32_t VoipHeadsetStatus(VoipHeadsetRefT *pHeadset, int32_t iSelect, int32_t iData, void *pBuf, int32_t iBufSize);
// set speaker output callback (only available on some platforms)
void VoipHeadsetSpkrCallback(VoipHeadsetRefT *pHeadset, VoipSpkrCallbackT *pCallback, void *pUserData);
// configure transcribe
void VoipHeadsetConfigTranscription(VoipHeadsetRefT *pHeadset, uint32_t uProfile, const char *pUrl, const char *pKey);
// configure narrate
void VoipHeadsetConfigNarration(VoipHeadsetRefT *pHeadset, uint32_t uProvider, const char *pUrl, const char *pKey);
#if defined(DIRTYCODE_PS4)
// validate communication permissions before display text from a remote user
void VoipHeadsetTranscribedTextPermissionCheck(VoipHeadsetRefT *pHeadset, VoipUserT *pOriginator, const char *pStrUtf8);
#endif
#if defined(DIRTYCODE_XBOXONE)|| defined(DIRTYCODE_PS4) || defined(DIRTYCODE_GDK)
// set callback to be invoked by voipheadsetxboxone when inbound transcribed text has passed communication permission check
void VoipHeadsetSetTranscribedTextReceivedCallback(VoipHeadsetRefT *pHeadset, VoipHeadsetTranscribedTextReceivedCbT *pCallback, void *pUserData);
#endif
// callback to tell dirtysdk what the first party id is for this user
void VoipHeadsetSetFirstPartyIdCallback(VoipHeadsetRefT *pHeadset, VoipFirstPartyIdCallbackCbT *pPlaybackCallback, void *pUserData);
#ifdef __cplusplus
};
#endif
#endif // _voipheadset_h