📄 routine.cpp
字号:
#include "routine.h"
DWORD NMSSTDCALL ErrorHandler(CTAHD ctahd, DWORD errorcode,char *errortext, char *func)
{
if ( errorcode == CTAERR_FILE_NOT_FOUND )
return errorcode;
if (ctahd == NULL_CTAHD)
printf("error in %s [ctahd=null]: %s (%#x)\n", func, errortext, errorcode );
else
printf("error in %s [ctahd=%#x]: %s (%#x)\n",func, ctahd, errortext, errorcode );
return errorcode;
}
bool InitCTA()
{
CTA_SERVICE_NAME servicelist[] =
{
{ "adi", "adimgr" },
{ "swi", "swimgr" },
{ "msp", "mspmgr" },
{ "oam", "oammgr" },
};
CTA_INIT_PARMS initparms = {0};
ctaSetErrorHandler(ErrorHandler, NULL );
initparms.size = sizeof(CTA_INIT_PARMS);
initparms.ctacompatlevel = CTA_COMPATLEVEL;
initparms.traceflags = CTA_TRACE_ENABLE;
initparms.parmflags = CTA_PARM_MGMT_SHARED;
if(ctaInitialize(servicelist, 4/*ARRAY_DIM(servicelist)*/, &initparms))
return false;
ctaLoadParameterFile(NULL_CTAHD, "cta.cfg");
return true;
}
static void ShowH324Event(CTA_EVENT *eventp)
{
char buffer[200];
switch(eventp->id)
{
case H324EVN_START_DONE:
strcpy(buffer, "H324EVN_START_DONE");
break;
case H324EVN_MEDIA_SETUP_DONE:
strcpy(buffer, "H324EVN_MEDIA_SETUP_DONE");
break;
case H324EVN_REMOTE_CAPABILITIES:
strcpy(buffer, "H324EVN_REMOTE_CAPABILITIES");
break;
case H324EVN_LCD:
strcpy(buffer, "H324EVN_LCD");
break;
default:
sprintf(buffer, "0x%x, 0x%x\n", eventp->id, eventp->value);
}
printf("[%d]\t%s, value = 0x%x\n", eventp->userid, buffer, eventp->value);
}
void ShowEvent(CTA_EVENT *eventp)
{
#define FORMAT_BUFFER_SIZE 1000
char format_buffer[FORMAT_BUFFER_SIZE];
char *lineprefix = "\t";
format_buffer[0] = '\0';
if ( CTA_IS_USER_EVENT( eventp->id ) )
{
//Application specific event
sprintf( format_buffer, "%sEvent: Application 0x%08X, value: 0x%08x\n",
lineprefix, eventp->id, eventp->value );
}
else if(CTA_PARM_SVCID(eventp->id) == H324_SVCID)
{
//sprintf(format_buffer, "H324EVN\t0x%x, 0x%x\n", eventp->id, eventp->value);
ShowH324Event(eventp);
return;
}
else
{
ctaFormatEvent(lineprefix, eventp, format_buffer, FORMAT_BUFFER_SIZE);
}
printf( "[%d]%s", eventp->userid, format_buffer );
}
static void ReleaseMSPEvent( CTA_EVENT *pevent )
{
if( pevent->id >= MSPEVN_BASE &&
pevent->id <= MSPEVN_UNSOL_MAX &&
pevent->size != 0 &&
pevent->buffer != NULL )
{
mspReleaseBuffer( pevent->objHd, pevent->buffer);
}
}
void ReleaseNMSEvent( CTA_EVENT *pevent )
{
if( pevent->id >= MSPEVN_BASE &&
pevent->id <= MSPEVN_UNSOL_MAX)
{
ReleaseMSPEvent( pevent );
}
else
{
if(pevent->buffer != NULL)
{
ctaFreeBuffer ( pevent->buffer );
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -