mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
DirtySDK (EA's Dirty Sockets library) will be used for the LiveAPI implementation, and depends on: EABase, EAThread.
122 lines
5.2 KiB
C
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
|
|
|