📄 gipsvoiceenginelib.h
字号:
// GipsVoiceEngineLib.h
//
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
//
// Created by: Fredrik Galschi鰀t
// Date : 011202
//
// $Change$
//
// Public API for GIPS Voice Engine on a PC platform.
//
// Copyright (c) 2001
// Global IP Sound AB, Organization number: 5565739017
// Rosenlundsgatan 54, SE-118 63 Stockholm, Sweden
// All rights reserved.
//
//////////////////////////////////////////////////////////////////////
#ifndef PUBLIC_GIPS_VOICE_ENGINE_LIB_H
#define PUBLIC_GIPS_VOICE_ENGINE_LIB_H
#include "GIPS_common_types.h"
#ifdef GIPS_EXPORT
#define VOICEENGINE_DLLEXPORT _declspec(dllexport)
#elif GIPS_DLL
#define VOICEENGINE_DLLEXPORT _declspec(dllimport)
#else
#define VOICEENGINE_DLLEXPORT
#endif
// Constants for SRTP
#define CIPHER_NULL 0
#define CIPHER_AES_128_COUNTER_MODE 1
#define AUTH_NULL 0
#define AUTH_HMAC_SHA1 3
#define NO_PROTECTION 0
#define ENCRYPTION 1
#define AUTHENTICATION 2
#define ENCRYPTION_AND_AUTHENTICATION 3
// Constants for file playout
#define FILE_FORMAT_PCM_FILE 0
#define FILE_FORMAT_WAV_FILE 1
#define FILE_FORMAT_COMPRESSED_FILE 2
// Constants for AMRcodec
#define GIPSAMR_RFC3267_BWEFFICIENT 0
#define GIPSAMR_RFC3267_OCTETALIGNED 1
#define GIPSAMR_RFC3267_FILESTORAGE 2
//////////////////////////////////////////////////////////////////////
// GIPSVE_PTTState
//////////////////////////////////////////////////////////////////////
struct GIPSVE_PTTState
{
int port; // remote source port
char address[16]; // remote IP address
unsigned long SSRC; // remote SSRC
};
//////////////////////////////////////////////////////////////////////
// GIPSVE_CallStatistics
//////////////////////////////////////////////////////////////////////
struct GIPSVE_CallStatistics
{
unsigned short fraction_lost;
unsigned long cum_lost;
unsigned long ext_max;
unsigned long jitter;
int RTT;
int bytesSent;
int packetsSent;
int bytesReceived;
int packetsReceived;
};
// GIPS_media_process
// This is a class that should be overloaded to modify audio in recording or playout path
class VOICEENGINE_DLLEXPORT GIPS_media_process
{
public:
virtual void process(int channel_no, short* audio_10ms_16kHz, int len, int sampfreq) = 0;
virtual ~GIPS_media_process();
};
// Constants for external media processing
#define PLAYBACK_PER_CHANNEL 0
#define PLAYBACK_ALL_CHANNELS_MIXED 1
#define RECORDING_PER_CHANNEL 2
#define RECORDING_ALL_CHANNELS_MIXED 3
//////////////////////////////////////////////////////////////////////
// error_callback
//
// Delivers runtime error that are not a direct effect of an API call
//////////////////////////////////////////////////////////////////////
class VOICEENGINE_DLLEXPORT error_callback
{
public:
virtual void error_handler(int errCode, int channel) = 0;
// Destructor
virtual ~error_callback();
};
// VQmon alert notification handler function prototype.
typedef void (*vqmon_alert)(int channel,void* pAlertDesc);
// RTCP APP callback function
class VOICEENGINE_DLLEXPORT RTCP_APP_handler
{
public:
virtual void received_RTCP_APP(int channel,char *data, int lengthInWord32) = 0;
virtual ~RTCP_APP_handler();
};
//////////////////////////////////////////////////////////////////////
// GipsVoiceEngineLib
//
// Public interface to the GIPS Voice Engine for PC platforms
//////////////////////////////////////////////////////////////////////
#ifndef NULL
#define NULL 0L
#endif
class VOICEENGINE_DLLEXPORT GipsVoiceEngineLib
{
public:
virtual int GIPSVE_Init(bool recordAEC =false, bool multiCore = false,int month = 0,int day = 0,int year = 0, int audiolib=1 ) = 0;
virtual int GIPSVE_SetNetworkStatus(int networktype) = 0;
virtual int GIPSVE_GetNetworkStatus() = 0;
virtual int GIPSVE_SetVADStatus(int channel, int enable, int mode = 0, bool disableDTX = 0) = 0;
virtual int GIPSVE_GetVADStatus(int channel) = 0;
virtual int GIPSVE_SetECStatus(int mode) = 0;
virtual int GIPSVE_GetECStatus() = 0;
virtual int GIPSVE_GetECActivity() = 0;
virtual int GIPSVE_CreateChannel() = 0;
virtual int GIPSVE_DeleteChannel(int channel) = 0;
virtual int GIPSVE_GetCodec(short listnr, GIPS_CodecInst *codec_inst) = 0;
virtual int GIPSVE_GetNofCodecs() = 0;
virtual int GIPSVE_SetSendCodec(int channel, GIPS_CodecInst *codec_inst) = 0;
virtual int GIPSVE_SetSendCodecAuto(int channel, bool enable, int isacPT, int speexPT) = 0;
virtual int GIPSVE_GetCurrentSendCodec(short channel, GIPS_CodecInst *gipsve_inst) = 0;
virtual int GIPSVE_GetRecCodec(int channel, GIPS_CodecInst *recCodec) = 0;
virtual int GIPSVE_SetRecPort(int channel, int portnr, char * multiCastAddr = NULL, char * ip = NULL) = 0;
virtual int GIPSVE_GetRecPort(int channel) = 0;
virtual int GIPSVE_SetSendPort(int channel, int portnr) = 0;
virtual int GIPSVE_SetSrcPort(int channel, int portnr) = 0;
virtual int GIPSVE_GetSendPort(int channel) = 0;
virtual int GIPSVE_SetSendIP(int channel, char *ipadr) = 0;
virtual int GIPSVE_GetSendIP(int channel, char *ipadr, int bufsize) = 0;
virtual int GIPSVE_StartListen(int channel) = 0;
virtual int GIPSVE_StartPlayout(int channel) = 0;
virtual int GIPSVE_StartSend(int channel) = 0;
virtual int GIPSVE_StopListen(int channel) = 0;
virtual int GIPSVE_StopPlayout(int channel) = 0;
virtual int GIPSVE_StopSend(int channel) = 0;
virtual int GIPSVE_GetLastError() = 0;
virtual int GIPSVE_SetSpeakerVolume(unsigned int level) = 0;
virtual int GIPSVE_GetSpeakerVolume() = 0;
virtual int GIPSVE_SetMicVolume(unsigned int level) = 0;
virtual int GIPSVE_GetMicVolume() = 0;
virtual int GIPSVE_SetChannelOutputVolumeScale(int channel, float level) = 0;
virtual float GIPSVE_GetChannelOutputVolumeScale(int channel) = 0;
virtual int GIPSVE_SetAGCStatus(int mode) = 0;
virtual int GIPSVE_GetAGCStatus() = 0;
virtual int GIPSVE_SetNRStatus(int mode) = 0;
virtual int GIPSVE_GetNRStatus() = 0;
//virtual int GIPSVE_SetNRframes(int frames) = 0;
virtual int GIPSVE_SetNRpolicy(int mode) = 0;
virtual int GIPSVE_GetVersion(char *version, int buflen) = 0;
virtual int GIPSVE_Terminate() = 0;
virtual int GIPSVE_SetDTMFPayloadType(int channel, int payloadType) = 0;
virtual int GIPSVE_SendDTMF(int channel, int eventnr, int inBand) = 0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -