You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.2 KiB
54 lines
1.2 KiB
4 years ago
|
#ifndef VOICE_H
|
||
|
#define VOICE_H
|
||
|
|
||
|
#include <opus.h>
|
||
|
|
||
|
#include "common.h"
|
||
|
#include "client.h"
|
||
|
#include "sound.h"
|
||
|
#include "soundlib/soundlib.h"
|
||
|
#include "library.h"
|
||
|
|
||
|
extern convar_t voice_scale;
|
||
|
|
||
|
typedef struct voice_state_s
|
||
|
{
|
||
|
qboolean was_init;
|
||
|
qboolean is_recording;
|
||
|
float start_time;
|
||
|
qboolean talking_ack;
|
||
|
float talking_timeout;
|
||
|
|
||
|
// opus stuff
|
||
|
OpusEncoder *encoder;
|
||
|
OpusDecoder *decoder;
|
||
|
|
||
|
// audio info
|
||
|
uint channels;
|
||
|
uint width;
|
||
|
uint samplerate;
|
||
|
uint frame_size;
|
||
|
|
||
|
// input buffer
|
||
|
byte buffer[MAX_RAW_SAMPLES];
|
||
|
fs_offset_t buffer_pos;
|
||
|
} voice_state_t;
|
||
|
|
||
|
extern voice_state_t voice;
|
||
|
|
||
|
void CL_AddVoiceToDatagram( void );
|
||
|
|
||
|
void Voice_RegisterCvars( void );
|
||
|
qboolean Voice_Init( const char *pszCodecName, int quality );
|
||
|
void Voice_DeInit( void );
|
||
|
uint Voice_GetCompressedData( byte *out, uint maxsize, uint *frames );
|
||
|
void Voice_Idle( float frametime );
|
||
|
qboolean Voice_IsRecording( void );
|
||
|
void Voice_RecordStop( void );
|
||
|
void Voice_RecordStart( void );
|
||
|
void Voice_AddIncomingData( int ent, byte *data, uint size, uint frames );
|
||
|
qboolean Voice_GetLoopback( void );
|
||
|
void Voice_LocalPlayerTalkingAck( void );
|
||
|
void Voice_StartChannel( uint samples, byte *data, int entnum );
|
||
|
|
||
|
#endif // VOICE_H
|