📄 voip_prototypes.h
字号:
/*--------------------------------------------------------------------------------------------------------------------------------
|
| Project: VOIP sample
|
| Filename: voip_prototypes.h
|
| Copyright: TelcoBridges 2002-2004, All Rights Reserved
|
| Description: This file contains macros and function prototypes
| of functions called across c files in this project.
|
| Notes: Tabs = 4
|
*-------------------------------------------------------------------------------------------------------------------------------
|
| Revision: $Revision: 1.12 $
|
*------------------------------------------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------------------------------------------
| Define header file
*------------------------------------------------------------------------------------------------------------------------------*/
#ifndef __VOIP_PROTOTYPES_H__
#define __VOIP_PROTOTYPES_H__
/*--------------------------------------------------------------------------------------------------------------------------------
| C++ support
*------------------------------------------------------------------------------------------------------------------------------*/
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
/*--------------------------------------------------------------------------------------------------------------------------------
| Global variables
*------------------------------------------------------------------------------------------------------------------------------*/
/* Variables related to quitting the application */
extern TBX_BOOL g_fContinue;
extern TBX_BOOL g_fRunStateMachine;
extern time_t g_QuitLastPrintTime;
extern TBX_RESULT g_AppResult;
/* Context of this application */
extern PVOIP_CONTEXT g_pContext;
/*--------------------------------------------------------------------------------------------------------------------------------
| Macros
*------------------------------------------------------------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------------------------------------------------------------
|
| VoipFormatPrivateMsg : Format a message that is suitable to send to local state machine,
| as if it was coming from the adapter/host of this state machine.
| Used to force state changes.
|
| in_un32MsgId : Message Id to use
| in_un32MsgSize : Message size to use
| in_hAdapter : Adapter handle to use
| in_un64UserContext : Value that will be passed to the receiver in the user context 1 field of the message header
|
| Note : ~
|
| Return : The handle of the allocated message
| (or TBX_HANDLE_INVALID if out of memory)
|
*------------------------------------------------------------------------------------------------------------------------------*/
static __inline TBX_MSG_HANDLE VoipFormatPrivateMsg(
IN TBX_UINT32 in_un32MsgId,
IN TBX_UINT32 in_un32MsgSize,
IN TBX_ADAPTER_HANDLE in_hAdapter,
IN TBX_UINT64 in_un64UserContext)
{
TBX_RESULT Result;
TBX_MSG_HANDLE hMsg = (TBX_MSG_HANDLE)TBX_HANDLE_INVALID;
/* Get a message buffer */
Result = TBXGetMsg (g_pContext->hTbxLib, in_un32MsgSize, &hMsg);
if( TBX_RESULT_SUCCESS( Result ) )
{
TBX_FORMAT_MSG_HEADER
(
hMsg,
in_un32MsgId,
TBX_MSG_TYPE_EVENT,
in_un32MsgSize,
0,
in_hAdapter,
in_un64UserContext
);
}
return hMsg;
}
/*
| Function to print the adapter state as a string
*/
static __inline PTBX_CHAR VOIP_ADAPTER_STATE_GET_STRING(
IN VOIP_ADAPTER_STATE in_AdapterState)
{
switch( in_AdapterState )
{
case VOIP_ADAPTER_STATE_NOT_USED: return "Not Used";
case VOIP_ADAPTER_STATE_NOT_READY: return "Not Ready";
case VOIP_ADAPTER_STATE_SYNC: return "Sync";
case VOIP_ADAPTER_STATE_CONFIGURING_CLEAR: return "Configuring clear";
case VOIP_ADAPTER_STATE_CONFIGURING_ALLOC: return "Configuring alloc";
case VOIP_ADAPTER_STATE_READY: return "Ready";
case VOIP_ADAPTER_STATE_CLEAR: return "Clear";
default:
break;
}
return "Unknown";
}
/*--------------------------------------------------------------------------------------------------------------------------------
| Function prototypes
*------------------------------------------------------------------------------------------------------------------------------*/
/*
* Application initialization
*/
TBX_RESULT VoipLoadInitialConfig();
TBX_RESULT VoipStartInitialConfig();
TBX_RESULT VoipConfigureNetworkRedundancy( TBX_ADAPTER_HANDLE, TBX_BOOL );
TBX_RESULT VoipCreateTbxLibFilter( TBX_VOID );
/*
* Application's main state machine
*/
TBX_RESULT VoipStateMachineMain( TBX_VOID );
TBX_VOID VoipEnterQuitSequence( TBX_VOID );
TBX_RESULT VoipLogFilesRotation( TBX_VOID );
/*
* Run-time functions
*/
TBX_RESULT VoipHandleAdapterAdded( TBX_MSG_HANDLE );
TBX_RESULT VoipHandleAdapterRemoved( PTBX_EVT_API_NOTIF_ADAPTER_REMOVED );
TBX_RESULT VoipAdapterStopUsing( PVOIP_ADAPTER_CONTEXT );
/*
* Adapter's state machine functions
*/
TBX_RESULT VoipAdapterChangeState( PTBX_VOID, VOIP_ADAPTER_STATE );
TBX_RESULT VoipAdapterPollStateTimeout();
TBX_RESULT VoipAdapterSetStateTimeout( PVOIP_ADAPTER_CONTEXT, TBX_UINT32 );
TBX_VOID VoipAdapterStateUndefined( PTBX_VOID, TBX_MSG_HANDLE );
TBX_VOID VoipAdapterStateNotUsed( PTBX_VOID, TBX_MSG_HANDLE );
TBX_VOID VoipAdapterStateNotReady( PTBX_VOID, TBX_MSG_HANDLE );
TBX_VOID VoipAdapterStateSync( PTBX_VOID, TBX_MSG_HANDLE );
TBX_VOID VoipAdapterStateConfiguringClear( PTBX_VOID, TBX_MSG_HANDLE );
TBX_VOID VoipAdapterStateConfiguringAlloc( PTBX_VOID, TBX_MSG_HANDLE );
TBX_VOID VoipAdapterStateReady( PTBX_VOID, TBX_MSG_HANDLE );
TBX_VOID VoipAdapterStateClear( PTBX_VOID, TBX_MSG_HANDLE );
/*
* Config files parsing
*/
TBX_RESULT VoipParseAndLoadConfiguration();
TBX_VOID VoipToUpper( PTBX_CHAR in_pszLine );
TBX_VOID VoipToLower( PTBX_CHAR in_pszLine );
TBX_VOID VoipRemoveTabs( PTBX_CHAR in_pszLine );
TBX_RESULT VoipParseToken( const PTBX_CHAR, PVOIP_PARSING_TOKEN, PTBX_CHAR *, PTBX_CHAR * );
TBX_RESULT VoipParseShellCmd( const PTBX_CHAR, PVOIP_PARSING_TOKEN, PTBX_CHAR *, PTBX_CHAR * );
TBX_RESULT VoipCompareEntries( const PTBX_CHAR, PVOIP_PARSING_ENTRY, PTBX_UINT32, PTBX_UINT32 );
TBX_RESULT VoipCompareEntriesBuildErrString( const PTBX_CHAR, PVOIP_PARSING_ENTRY, PTBX_UINT32, PTBX_UINT32, PTBX_CHAR );
/*
* Stream server functions
*/
TBX_RESULT VoipStreamServerOpen( PTBX_CHAR, PTBX_CHAR );
TBX_RESULT VoipStreamServerStart();
TBX_RESULT VoipStreamServerClose();
TBX_UINT32 VoipStreamServerPromptAlloc( TBX_UINT16, PTBX_CHAR, PTBX_CHAR, PTBX_UINT32, TBX_UINT32 );
TBX_RESULT VoipStreamServerPromptClear( TBX_UINT32 );
TBX_RESULT VoipStreamServerStartPlay( TBX_UINT32 );
TBX_RESULT VoipStreamServerStopPlay( TBX_UINT32 );
TBX_RESULT VoipStreamServerPromptCleanup();
/*
* Play Raw data file runtime functions
*/
TBX_RESULT VoipStreamLibOpen( PTBX_CHAR, PTBX_CHAR );
TBX_RESULT VoipStreamLibClose();
TBX_UINT32 VoipRawDataFilePlayAlloc( PVOIP_RAW_DATA_FILE_CONTEXT, TBX_UINT16, PTBX_CHAR, PTBX_CHAR, TBX_UINT32 );
TBX_RESULT VoipRawDataFilePlayClear( PVOIP_RAW_DATA_FILE_PLAY_CONTEXT );
TBX_RESULT VoipRawDataFileStartPlay( PVOIP_RAW_DATA_FILE_PLAY_CONTEXT );
TBX_RESULT VoipRawDataFileStopPlay( PVOIP_RAW_DATA_FILE_PLAY_CONTEXT );
TBX_RESULT VoipRawDataFilePlayCleanup();
TBX_UINT32 VoipRawDataFileRecordAlloc( PVOIP_RAW_DATA_FILE_CONTEXT, TBX_UINT16, PTBX_CHAR, PTBX_CHAR);
TBX_RESULT VoipRawDataFileRecordClear( PVOIP_RAW_DATA_FILE_RECORD_CONTEXT );
TBX_RESULT VoipRawDataFileStartRecord( PVOIP_RAW_DATA_FILE_RECORD_CONTEXT );
TBX_RESULT VoipRawDataFileStopRecord( PVOIP_RAW_DATA_FILE_RECORD_CONTEXT );
TBX_RESULT VoipRawDataFileRecordCleanup();
TBX_RESULT VoipStreamLibGetDataAddrCallback(
IN TBX_STREAM_LIB_HANDLE in_hLib,
IN TBX_STREAM_LIB_PLAY_HANDLE in_hPlay,
IN TBX_STREAM_LIB_ACK_HANDLE in_hAcknowledge,
IN TBX_UINT64 in_un64UserContext,
OUT PTBX_VOID* out_ppBuffer);
TBX_RESULT VoipStreamLibSaveDataCallback
(
IN TBX_STREAM_LIB_HANDLE in_hLib,
IN TBX_STREAM_LIB_PLAY_HANDLE in_hRecord,
IN TBX_STREAM_LIB_ACK_HANDLE in_hAcknowledge,
IN TBX_UINT64 in_un64UserContext,
IN PTBX_VOID in_pBuffer,
IN TBX_UINT32 in_un32Length
);
TBX_RESULT VoipStreamLibStopConfirmCallback(
IN TBX_STREAM_LIB_HANDLE in_hLib,
IN TBX_STREAM_LIB_PLAY_HANDLE in_hPlay,
IN TBX_UINT64 in_un64UserContext );
/*--------------------------------------------------------------------------------------------------------------------------------
| C++ support
*------------------------------------------------------------------------------------------------------------------------------*/
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __VOIP_PROTOTYPES_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -