亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? xms_confdemo_event.cpp

?? 基于東進(jìn)Keygoe交換機(jī)的會(huì)議應(yīng)用演示程序
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
				AllDeviceRes[s8DspModID].pVoice[i].deviceID = pDev[i];
				AllDeviceRes[s8DspModID].pVoice[i].State = VOC_WAITOPEN;
			}
		}
	}
	else if ( (AllDeviceRes[s8DspModID].lVocNum > 0) && (s32Num == 0) )		// 刪除該資源
	{
		// 如果有設(shè)備沒(méi)有關(guān)閉,則等同于關(guān)閉事件
		for ( i = 0; i < AllDeviceRes[s8DspModID].lVocNum; i ++ )
		{
			if ( AllDeviceRes[s8DspModID].pVoice[i].State != VOC_WAITOPEN )
				CloseDeviceOK ( &AllDeviceRes[s8DspModID].pVoice[i].deviceID );
		}

		AllDeviceRes[s8DspModID].lVocNum = 0;
		AllDeviceRes[s8DspModID].lVocOpened = 0;
		AllDeviceRes[s8DspModID].lVocFreeNum = 0;

		delete [] AllDeviceRes[s8DspModID].pVoice;
		AllDeviceRes[s8DspModID].pVoice = NULL;
	}

}

void	AddDeviceRes_Pcm ( DJ_S8 s8DspModID, Acs_Dev_List_Head_t *pAcsDevList )
{
	DJ_S32	s32Num;
	int		i;
	char	TmpStr[256];

	s32Num = pAcsDevList->m_s32DeviceNum;

	if ( (AllDeviceRes[s8DspModID].lPcmNum == 0) && (s32Num > 0) )		// 新增加的資源
	{
		// 
		AllDeviceRes[s8DspModID].pPcm = new PCM_STRUCT[s32Num];
		if( !AllDeviceRes[s8DspModID].pPcm )
		{
			AllDeviceRes[s8DspModID].lPcmNum = 0;
			AllDeviceRes[s8DspModID].lPcmOpened = 0;

			// alloc fail, maybe disp this error in your log
			sprintf ( TmpStr, "new PCM_STRUCT[%d] fail in AddDeviceRes_Pcm()" );
			AddMsg ( TmpStr );
		}
		else
		{
			memset ( AllDeviceRes[s8DspModID].pPcm, 0, sizeof(PCM_STRUCT)*s32Num );
			AllDeviceRes[s8DspModID].lPcmNum = s32Num;
			AllDeviceRes[s8DspModID].lPcmOpened = 0;
			
			DeviceID_t	 *pDev;
			pDev = (DeviceID_t *)((BYTE *)pAcsDevList + sizeof(Acs_Dev_List_Head_t));
			for ( i = 0; i < s32Num; i ++ )
			{
				AllDeviceRes[s8DspModID].pPcm[i].deviceID = pDev[i];
				AllDeviceRes[s8DspModID].pPcm[i].bOpenFlag = false;
			}
		}
	}
	else if ( (AllDeviceRes[s8DspModID].lPcmNum > 0) && (s32Num == 0) )		// 刪除該資源
	{
		// 如果有設(shè)備沒(méi)有關(guān)閉,則等同于關(guān)閉事件
		for ( i = 0; i < AllDeviceRes[s8DspModID].lPcmNum; i ++ )
		{
			if ( AllDeviceRes[s8DspModID].pPcm[i].bOpenFlag != false )
				CloseDeviceOK ( &AllDeviceRes[s8DspModID].pPcm[i].deviceID );
		}

		AllDeviceRes[s8DspModID].lPcmNum = 0;
		AllDeviceRes[s8DspModID].lPcmOpened = 0;
	
		delete [] AllDeviceRes[s8DspModID].pPcm;
		AllDeviceRes[s8DspModID].pPcm = NULL;
	}

}

void	AddDeviceRes_Conf ( DJ_S8 s8DspModID, Acs_Dev_List_Head_t *pAcsDevList )
{
	DJ_S32	s32Num;
	int		i;
	char	TmpStr[256];

	s32Num = pAcsDevList->m_s32DeviceNum;

	if ( (AllDeviceRes[s8DspModID].lConfNum == 0) && (s32Num > 0) )		// 新增加的資源
	{
		AllDeviceRes[s8DspModID].pConf = new CONF_STRUCT[s32Num];
		if( !AllDeviceRes[s8DspModID].pConf )
		{
			AllDeviceRes[s8DspModID].lConfNum = 0;
			AllDeviceRes[s8DspModID].lConfOpened = 0;
			AllDeviceRes[s8DspModID].lConfFreeNum = 0;

			// alloc fail, maybe disp this error in your log
			sprintf ( TmpStr, "new CONF_STRUCT[%d] fail in AddDeviceRes_Conf()" );
			AddMsg ( TmpStr );
		}
		else
		{
			AllDeviceRes[s8DspModID].lConfNum = s32Num;
			AllDeviceRes[s8DspModID].lConfOpened = 0;
			AllDeviceRes[s8DspModID].lConfFreeNum = 0;
			memset ( AllDeviceRes[s8DspModID].pConf, 0, sizeof(CONF_STRUCT)*s32Num );

			DeviceID_t	 *pDev;
			pDev = (DeviceID_t *)((BYTE *)pAcsDevList + sizeof(Acs_Dev_List_Head_t));

			for ( i = 0; i < s32Num; i ++ )
			{
				AllDeviceRes[s8DspModID].pConf[i].deviceID = pDev[i];
				AllDeviceRes[s8DspModID].pConf[i].State = CONF_WAITOPEN;
			}
		}
	}
	else if ( (AllDeviceRes[s8DspModID].lConfNum > 0) && (s32Num == 0) )		// 刪除該資源
	{
		// 如果有設(shè)備沒(méi)有關(guān)閉,則等同于關(guān)閉事件
		for ( i = 0; i < AllDeviceRes[s8DspModID].lConfNum; i ++ )
		{
			if ( AllDeviceRes[s8DspModID].pConf[i].State != CONF_WAITOPEN )
				CloseDeviceOK ( &AllDeviceRes[s8DspModID].pConf[i].deviceID );
		}

		AllDeviceRes[s8DspModID].lConfNum = 0;
		AllDeviceRes[s8DspModID].lConfOpened = 0;
		AllDeviceRes[s8DspModID].lConfFreeNum = 0;

		delete [] AllDeviceRes[s8DspModID].pConf;
		AllDeviceRes[s8DspModID].pConf = NULL;
	}

}

void	AddDeviceRes_Board ( DJ_S8 s8DspModID, Acs_Dev_List_Head_t *pAcsDevList )
{
	DJ_S32	s32Num;

	s32Num = pAcsDevList->m_s32DeviceNum;

	if ( (AllDeviceRes[s8DspModID].lFlag == 0) && (s32Num > 0) )		// 新增加的資源
	{
		DeviceID_t	 *pDev;
		pDev = (DeviceID_t *)((BYTE *)pAcsDevList + sizeof(Acs_Dev_List_Head_t));

		AllDeviceRes[s8DspModID].deviceID = pDev[0];			
		AllDeviceRes[s8DspModID].bOpenFlag = false;
		AllDeviceRes[s8DspModID].bErrFlag = false;
		AllDeviceRes[s8DspModID].RemoveState = DSP_REMOVE_STATE_NONE;
	}
	else if ( (AllDeviceRes[s8DspModID].lFlag == 1) && (s32Num == 0) )	// 刪除該資源
	{
		// 如果有設(shè)備沒(méi)有關(guān)閉,則等同于關(guān)閉事件
		if ( AllDeviceRes[s8DspModID].bOpenFlag != false )
			CloseDeviceOK ( &AllDeviceRes[s8DspModID].deviceID );

		memset ( &AllDeviceRes[s8DspModID].deviceID, 0, sizeof(DeviceID_t) );
	}

}

void	AddDeviceRes ( Acs_Dev_List_Head_t *pAcsDevList )
{
	DJ_S32	s32Type, s32Num;
	DJ_S8	s8DspModID;

	s32Type = pAcsDevList->m_s32DeviceMain;
	s32Num = pAcsDevList->m_s32DeviceNum;

	s8DspModID = (DJ_S8) pAcsDevList->m_s32ModuleID;
	if ( (s8DspModID < 0) || (s8DspModID >= MAX_DSP_MODULE_NUMBER_OF_XMS) )
		return;				// invalid ModuleID

	switch ( s32Type )
	{
	case XMS_DEVMAIN_VOICE:	
		AddDeviceRes_Voice ( s8DspModID, pAcsDevList );
		break;

	case XMS_DEVMAIN_FAX:				break;

	case XMS_DEVMAIN_DIGITAL_PORT:
		AddDeviceRes_Pcm ( s8DspModID, pAcsDevList );
		break;
	
	case XMS_DEVMAIN_INTERFACE_CH:
		AddDeviceRes_Trunk ( s8DspModID, pAcsDevList );
		break;

	case XMS_DEVMAIN_DSS1_LINK:			break;
	case XMS_DEVMAIN_SS7_LINK:			break;

	case XMS_DEVMAIN_BOARD:				
		AddDeviceRes_Board ( s8DspModID, pAcsDevList );
		break;

	case XMS_DEVMAIN_CTBUS_TS:			break;
	case XMS_DEVMAIN_VOIP:				break;
	
	case XMS_DEVMAIN_CONFERENCE:		
		AddDeviceRes_Conf ( s8DspModID, pAcsDevList );
		break;

	case XMS_DEVMAIN_VIDEO:				break;
		break;
	}
}

// --------------------------------------------------------------------------

DJ_Void EvtHandler(DJ_U32 esrParam)
{
	Acs_Evt_t *			    pAcsEvt = NULL;
	Acs_Dev_List_Head_t * pAcsDevList = NULL;

	pAcsEvt = (Acs_Evt_t *) esrParam;
	DispEventInfo ( pAcsEvt );		

	switch ( pAcsEvt->m_s32EventType )
	{
		case XMS_EVT_QUERY_DEVICE:
			if ( ( cfg_iPartWork == 0 ) || (pAcsEvt->m_DeviceID.m_s8ModuleID == cfg_iPartWorkModuleID) )
			{
				pAcsDevList = ( Acs_Dev_List_Head_t *) FetchEventData(pAcsEvt);

				//收到設(shè)備變化的事件,增加/刪除 該設(shè)備資源
				AddDeviceRes ( pAcsDevList );
			}
			break; 
		case XMS_EVT_QUERY_ONE_DSP_END:
		case XMS_EVT_QUERY_REMOVE_ONE_DSP_END:
			if ( ( cfg_iPartWork == 0 ) || (pAcsEvt->m_DeviceID.m_s8ModuleID == cfg_iPartWorkModuleID) )
			{
				if ( pAcsEvt->m_s32EventType == XMS_EVT_QUERY_ONE_DSP_END )
				{
					AllDeviceRes[pAcsEvt->m_DeviceID.m_s8ModuleID].lFlag = 1;		// 該DSP可以用了
					OpenAllDevice_Dsp ( pAcsEvt->m_DeviceID.m_s8ModuleID );
				}
				else
				{
					AllDeviceRes[pAcsEvt->m_DeviceID.m_s8ModuleID].lFlag = 0;		// 該DSP已經(jīng)Remove完畢
				}

				RefreshMapTable ( );

				ReDrawAll ();
			}
			break;

		case XMS_EVT_QUERY_DEVICE_END:	// 獲取設(shè)備列表結(jié)束
			break;

		case XMS_EVT_OPEN_DEVICE:
			OpenDeviceOK ( &pAcsEvt->m_DeviceID );
			break;

		case XMS_EVT_CLOSE_DEVICE:		// 在刪除設(shè)備之前,先發(fā)給應(yīng)用程序CloseDevice事件;調(diào)用函數(shù)XMS_ctsCloseDevicey也會(huì)產(chǎn)生本事件
			CloseDeviceOK ( &pAcsEvt->m_DeviceID );
			break;

		case XMS_EVT_DEVICESTATE:
			HandleDevState ( pAcsEvt );
			break;

		case XMS_EVT_UNIFAILURE:
			// must handle this event in your real System
			break;

		default:
			if ( pAcsEvt->m_DeviceID.m_s16DeviceMain == XMS_DEVMAIN_INTERFACE_CH  )
			{
				TrunkWork ( &M_OneTrunk(pAcsEvt->m_DeviceID), pAcsEvt );
			}
			else if ( pAcsEvt->m_DeviceID.m_s16DeviceMain == XMS_DEVMAIN_VOICE )
			{
				DeviceID_t	*pDevID;

				pDevID = &M_OneVoice(pAcsEvt->m_DeviceID).UsedDevID;

				if ( pDevID->m_s16DeviceMain == XMS_DEVMAIN_INTERFACE_CH )
				{
					TrunkWork ( &M_OneTrunk(*pDevID), pAcsEvt );
				}
			}
			else if ( pAcsEvt->m_DeviceID.m_s16DeviceMain == XMS_DEVMAIN_CONFERENCE )
			{
				DeviceID_t	*pDevID;

				pDevID = &M_OneConf(pAcsEvt->m_DeviceID).UsedDevID;

				if ( pDevID->m_s16DeviceMain == XMS_DEVMAIN_INTERFACE_CH )
				{
					TrunkWork ( &M_OneTrunk(*pDevID), pAcsEvt );
				}
			}
			break;
	}

}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美日韩一区| 午夜激情久久久| 在线播放亚洲一区| 国产ts人妖一区二区| 偷偷要91色婷婷| 亚洲视频电影在线| 国产欧美日韩一区二区三区在线观看| 欧美视频一区二区三区在线观看 | 精品国产一区久久| 欧美性大战久久久久久久蜜臀| 国产剧情一区在线| 美国十次综合导航| 丝袜美腿一区二区三区| 亚洲丝袜自拍清纯另类| 国产日韩欧美激情| 欧美一区二区国产| 欧美日本国产一区| 在线观看亚洲专区| 99国产精品久久久久久久久久| 国产一区二区三区综合| 蜜臀av一区二区在线观看| 午夜欧美一区二区三区在线播放| 自拍偷拍欧美激情| 国产精品麻豆一区二区 | 欧美国产日韩a欧美在线观看| 精品成a人在线观看| 69av一区二区三区| 欧美妇女性影城| 欧美人妖巨大在线| 欧美伊人久久久久久久久影院 | 国产激情视频一区二区在线观看| 久久精品二区亚洲w码| 免费在线视频一区| 日韩精品一级中文字幕精品视频免费观看 | 国产女人aaa级久久久级| 精品国产一区二区国模嫣然| 日韩欧美色综合网站| 欧美一区二区免费视频| 日韩一级黄色片| 欧美精品在线观看播放| 3d动漫精品啪啪1区2区免费 | 欧美国产亚洲另类动漫| 国产精品色在线| 国产精品久久毛片av大全日韩| 国产精品天美传媒| 中文字幕视频一区| 亚洲精品高清在线| 婷婷夜色潮精品综合在线| 视频一区视频二区中文字幕| 亚洲成人综合在线| 日本不卡一区二区三区高清视频| 日韩电影在线一区| 麻豆视频一区二区| 国产99久久久国产精品免费看 | 日韩二区三区四区| 韩日精品视频一区| www..com久久爱| 欧亚一区二区三区| 日韩一区二区在线播放| 国产亚洲综合在线| 亚洲欧美一区二区三区极速播放 | 国产精品麻豆一区二区| 亚洲另类春色校园小说| 日日摸夜夜添夜夜添精品视频| 美国一区二区三区在线播放| 国产高清精品网站| 色综合久久久久综合体桃花网| 欧美婷婷六月丁香综合色| 日韩一区二区三区免费观看| 国产日韩欧美综合在线| 亚洲一区二区在线免费观看视频| 日韩激情av在线| 国产美女av一区二区三区| 97se狠狠狠综合亚洲狠狠| 欧美久久久久久蜜桃| 欧美国产综合色视频| 亚洲成av人片在www色猫咪| 国产一区福利在线| 欧美三级在线播放| 国产偷国产偷精品高清尤物| 亚洲一卡二卡三卡四卡五卡| 国产在线一区观看| 欧美在线观看禁18| 久久久久久久综合日本| 亚洲国产精品久久久久秋霞影院| 国产精品羞羞答答xxdd| 欧美日产在线观看| 日本一区二区三区在线观看| 午夜视频一区在线观看| 成人美女在线观看| 欧美v国产在线一区二区三区| 亚洲人成小说网站色在线| 久久99最新地址| 欧美少妇性性性| 国产精品伦理在线| 精品一区二区影视| 欧美精品在线观看播放| 亚洲色图都市小说| 国产99久久久国产精品免费看| 欧美美女直播网站| 亚洲三级小视频| 国产一区999| 欧美巨大另类极品videosbest | 日韩在线一二三区| 色综合天天在线| 欧美激情一区三区| 国产一区二区视频在线| 欧美妇女性影城| 亚洲一区二区偷拍精品| 91免费视频网| 欧美国产乱子伦| 国产精品一卡二| 日韩精品一区二区三区视频 | 亚洲成人高清在线| 在线亚洲精品福利网址导航| 欧美国产一区在线| 国产91精品久久久久久久网曝门 | 69成人精品免费视频| 亚洲国产一区二区视频| 日本精品视频一区二区三区| 亚洲欧洲精品成人久久奇米网| 国产高清亚洲一区| 久久综合狠狠综合| 国产一区二区三区精品视频| 精品国内片67194| 蜜桃视频一区二区三区在线观看 | 久久久久久久久久电影| 精品无人码麻豆乱码1区2区| 日韩一区国产二区欧美三区| 免费不卡在线视频| 精品欧美一区二区三区精品久久| 图片区日韩欧美亚洲| 欧美老人xxxx18| 日韩1区2区3区| 欧美白人最猛性xxxxx69交| 美国一区二区三区在线播放| 日韩欧美专区在线| 久久91精品国产91久久小草| 日韩视频免费观看高清完整版| 美女任你摸久久| 久久久久久一级片| 成人黄色电影在线| 亚洲女女做受ⅹxx高潮| 欧美午夜视频网站| 美脚の诱脚舐め脚责91| 337p日本欧洲亚洲大胆色噜噜| 国内精品免费**视频| 国产亚洲污的网站| 91在线一区二区| 亚洲成人tv网| 精品久久久久久久人人人人传媒| 国产精一区二区三区| 中文字幕一区二区三区视频| 色94色欧美sute亚洲线路二| 日韩av电影天堂| 久久看人人爽人人| 成+人+亚洲+综合天堂| 亚洲女性喷水在线观看一区| 欧美日韩高清不卡| 精品午夜久久福利影院| 中文字幕电影一区| 欧美日韩精品一区二区| 久久精品99久久久| 中文字幕一区二区三区蜜月| 欧美性生活久久| 狠狠色丁香婷婷综合| 国产精品理论片在线观看| 91精品国产综合久久国产大片| 色综合久久天天综合网| 奇米影视在线99精品| 精品成人私密视频| 色婷婷av一区| 久久国产精品免费| 中文字幕制服丝袜一区二区三区| 欧洲av一区二区嗯嗯嗯啊| 久久电影国产免费久久电影| 一区视频在线播放| 日韩三级伦理片妻子的秘密按摩| 国产成人精品aa毛片| 午夜精品久久久久久久久久久 | 欧美日韩三级视频| 成人中文字幕合集| 三级在线观看一区二区| 中文字幕色av一区二区三区| 制服丝袜激情欧洲亚洲| 成人av综合在线| 日韩vs国产vs欧美| 综合久久久久久久| 久久久蜜桃精品| 欧美一区二区三区视频在线| 97久久超碰国产精品| 九色porny丨国产精品| 亚洲成av人影院| 亚洲品质自拍视频| 久久久99久久| 日韩欧美国产一区二区三区| 在线精品视频免费观看| hitomi一区二区三区精品| 精品一区二区三区在线播放| 午夜精品123|