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

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

?? klcinterface.c

?? 基于h323協(xié)議的軟phone
?? C
?? 第 1 頁 / 共 2 頁
字號:
				case klcKeySPEED6:
					msg->event = speed_dial_key_event;
					msg->digit = 6;
					break;

				case klcKeySPEED7:
					msg->event = speed_dial_key_event;
					msg->digit = 7;
					break;

				case klcKeySPEED8:
					msg->event = speed_dial_key_event;
					msg->digit = 8;
					break;

				case klcKeySPEED9:
					msg->event = speed_dial_key_event;
					msg->digit = 9;
					break;

				case klcKeySPEED10:
					msg->event = speed_dial_key_event;
					msg->digit = 10;
					break;

				default:
					/* Uncomment to determine key matrix values: 
					if(keypress == klcKeyNDEF)
						printf("Undefined Key pressed, need to modify klcLkpTbl in klc.c to define it\n");
					else
						printf("Key pressed, value = %d\n",keypress);
					*/
					break;
			}

			keyLongPressEvent=msg->event;
			keyLongPress=msg->digit;
			keyPressFlag=1;
			wait_time = 150;
#ifndef BOOT_ROM_ONLY
			if(( tone != null_dtmf_tone ) && ( handset_up || on_speakerphone))
			{
				/* dial-digit-tone-disconnect */
				/* If the tone is playing and it has to be resumed, 
				after the DTMF digits are played, 
				resume the tone.
				*/
				if(tone_playing != null_tone)
					tone_tobe_resumed = tone_playing;
				else
					tone_tobe_resumed = null_tone;

				StopTone(); 
				PlayDTMF( tone );				
			}
#endif
		} 
		else
		{
#ifndef BOOT_ROM_ONLY
			if( (handset_up || on_speakerphone) && (!tone_enabled) ) 
				StopTone();

			/* dial-digit-tone-disconnect */
			/* resume the tone */
			if (tone_tobe_resumed == ringback_tone)
			{
				tone_playing = tone_tobe_resumed;
				PlayTone (tone_tobe_resumed);
				tone_tobe_resumed = null_tone;
			}
#endif
		}

		if( msg->event != null_event )
		{
			loopCounter = 0;
			if (MQSend ((char*)msg, NO_WAIT) == -1)
			{
				while (loopCounter++ < 10)
				{
					taskDelay(10);
					if (MQSend ((char*)msg, NO_WAIT) != -1) /* resend message */
					{
						break;
					}
				}				
				if (loopCounter >= 10)
				{
					fprintf(stderr, "KeyLampMonitor: Could not get buffer after 10 tries.\n");
					MQBufFree((char*)msg);
				}
			}
			loopCounter = 0;
			while (((msg = (NonWrapperMsg *) MQBufGet()) == NULL) && loopCounter++ < 10)
			{
				taskDelay(10);
			}
#ifndef INTERFACE_TERSE	
			if (loopCounter >= 10)
				fprintf(stderr, "KeyLampMonitor: Could not get buffer after 10 tries.\n");
#endif
		}
	}
}

/***************************************************************************
 *
 *  SetLed( int led, led_blink_type blink )
 *
 *  Arguments
 *      Input: Nothing
 *
 *  Returns:   Nothing
 *
 *  Description:
 *  1. Open keylamp driver if not already open
 *  2. Write new blink type to led
 *
 **************************************************************************/ 

void SetLed( int led, led_blink_type blink )
{
    char    cadence_val;

    switch( blink ){
        case led_off:
            cadence_val = 0;
            break;
        case led_wink:
            cadence_val = 1;
            break;
        case led_inverse_wink:
            cadence_val = 2;
            break;
        case led_flash:
            cadence_val = 4;
            break;
        case led_inverse_flash:
            cadence_val = 3;
            break;
        case led_flutter:
            cadence_val = 5;
            break;
        case led_broken_flutter:
            cadence_val = 6;
            break;
        case led_steady_on:
            cadence_val = 7;
            break;
        default:
            break;
    }

    if( klcWriteLed( led, cadence_val ) == ERROR ){
#ifndef INTERFACE_TERSE
        fprintf( stderr, "SetLed: Failure writing led cadence value.\n" );
#else
		;
#endif /* INTERFACE_TERSE */
    }
} 

/* offhook-reboot-ringing*/
/* This method is called from the Application layer. It calls the klcCheckOffHook() of the KLC module to get the status of the switch. If the off-hook condition is detected, post a message to the application with event as "off-hook".
 */

void ScanForOffHook(void)
{

	NonWrapperMsg   *msg;
	int loopCounter;

	/* check for the off-hook condition at the time of boot up. 
	* this will be enquired from the klc 
	*/
	if (TRUE == klcCheckOffHook())
	{
		/*
		* Get a buffer for sending data to the Application.
		*/
		if ((msg = (NonWrapperMsg *) MQBufGet()) == NULL)
		{
			return;
		}

		msg->event = local_off_hook_event;
		
		loopCounter = 0;
		if (MQSend ((char*)msg, NO_WAIT) == -1)
		{
			while (loopCounter++ < 10)
			{
				taskDelay(10);
				if (MQSend ((char*)msg, NO_WAIT) != -1) /* resend message */
				{
					break;
				}
			}			
			if (loopCounter >= 10)
			{
				fprintf(stderr, "KeyLampMonitor: Could not get buffer after 10 tries.\n");
				MQBufFree((char*)msg);
			}
		}
	}
}


#ifdef PPA
/*===========================================================================*
 * function.... PPAInterfaceInit()
 * author(s)... msingh
 * date........ 4.10.2003
 * purpose..... This function is used to initialize the PPA Interface application
 *               
 *
 * parameter... None
 * returns..... None
 * comment..... This function spawns a daemon task, 
 *===========================================================================*/
static void PPAInterfaceInit()
{
   int   PPAInterfaceTID;

   /* Spawn a task that will run the Daemon */
   PPAInterfaceTID = taskSpawn ("PPAInterfaceDaemon ", 171, 0, 6004,  (FUNCPTR)PPAInterfaceDaemon, 0,0,0,0,0,0,0,0,0,0);

   if (PPAInterfaceTID < 0)
   {
	  printf("\n !!! ERROR: PPAInterfaceInit - Could not spawn task PPAInterfaceDaemon !!!\n\r");
   }

}
/*===========================================================================*
 * function.... PPAInterfaceDaemon()
 * author(s)... msingh
 * date........ 04.09.2003
 * purpose..... Provide reading cpability from the port and initiate
 *              the processing of it.At a time read one line
 *              and initiate its processing
 *
 * parameter... None
 * returns..... Nothing
 * comment..... None
 *===========================================================================*/
static void PPAInterfaceDaemon (void)
{
   int nextDigit = 0;
   int digitCnt;
   int value = 0;
   int i;
   int j;
   for(;;)
   {
      taskDelay(10);
	  /* code has been written this way because offHook - */
	  /* - and onHook values can be set from the vxWorks shell only  */
      if(offHook)
	  {	      			   
		  PPAInterfacePut("offHook");
		  offHook = 0;
		  taskDelay(5);
		   dtmfDigitEnable = 1; 
	  }
	  else if (onHook)
	  {	      			   
		  PPAInterfacePut("onHook");     		               
		  onHook = 0;
	  }
      else if (dtmfDigitEnable)
	  {
		   ppaDtmfEnable();

		  for(digitCnt=0;  digitCnt<MAX_NUM_DIGIT; digitCnt++)
		  {
			  if(digitCnt == 1)
			  {
                StopTone();
			  }

			  do{
		          value = getDtmfDigit(dtmfDigitTbl); 
			  }while(value != 1);

             value = 0;

             for(i=0; i<4;i++)
			 {
				 dtmfDigitCollectTbl[i+nextDigit] = dtmfDigitTbl[i];
			 }			 
			 nextDigit +=4;
		  }	
	
		  dtmfDigitTable();
		  switch(ppaChannelNum)
		  {
			   case 0x0000:
	              PPAInterfacePut(&dstinationAddrTbl[0][0]);				  
	              break;
	           case 0x0001:
	              PPAInterfacePut(&dstinationAddrTbl[1][0]);				  
	              break;
	           case 0x0002:
	              PPAInterfacePut(&dstinationAddrTbl[2][0]);				  
	              break;
	           case 0x0003:
	              PPAInterfacePut(&dstinationAddrTbl[3][0]);				  				 
	              break;
			   default:
				   break;
		  } 
		  dtmfDigitEnable = 0;
	      dtmfDigitDisable = 1;
          nextDigit = 0;		 
	  }
	  else if (dtmfDigitDisable)
	  {    
		   ppaDtmfDisable () ;
		  dtmfDigitDisable = 0;
	  }
	} /* for */
}

/*===================================================================*
* function.... PPAInterfacePut
*
* author(s)... msingh
* date........ 04.09.2003
* purpose..... To process the incomming cmd.
*
* parameter...
* Parameter... None
* Returns..... None
* Comments.... None
*====================================================================*/
static void  PPAInterfacePut(char *readBuff)
{
      
    int  count;
	int  ipCnt;
	char ipVal = '1';
	char keyVal;
	int  callSetUp = 0;
	klcdatatype      klcdata;
    char ipAddr[12];


	/* set the flag */

    if(!(strcmp("offHook", readBuff)))
    {
       if(PPAKlcInterfaceQId)
       {
		  klcdata.keypress = klcKeyHOOK_UP;
          klcdata.tag = KLC_PRESSED;
          msgQSend(PPAKlcInterfaceQId, (char*) &klcdata, sizeof(klcdata), NO_WAIT, MSG_PRI_NORMAL);	  
       }  
    }
	else if(!(strcmp("onHook", readBuff)))
    {
       if(PPAKlcInterfaceQId)
       {
		  klcdata.keypress = klcKeyHOOK_DOWN;
          klcdata.tag = KLC_PRESSED;
          msgQSend(PPAKlcInterfaceQId, (char*) &klcdata, sizeof(klcdata), NO_WAIT, MSG_PRI_NORMAL);		  		 
       }  
    }
	else if(!(strcmp("redial", readBuff)))
    {
       if(PPAKlcInterfaceQId)
       {
		  klcdata.keypress = klcKeyREDIAL;
          klcdata.tag = KLC_PRESSED;
          msgQSend(PPAKlcInterfaceQId, (char*) &klcdata, sizeof(klcdata), NO_WAIT, MSG_PRI_NORMAL);		  		 
       }  
    }
	else if (ipVal == *readBuff)
	{
		  for (ipCnt=0; ipCnt<12; ipCnt++)
		  {
             ipAddr[ipCnt] = *readBuff++;
		  }
	      klcdata.tag = KLC_PRESSED; 
		  klcdata.keypress =  klcKeySTAR;
          msgQSend(PPAKlcInterfaceQId, (char*) &klcdata, sizeof(klcdata), NO_WAIT, MSG_PRI_NORMAL);

		  for (count=0; count<12; count++)
		  {
               klcdata.tag = KLC_PRESSED; 
			   keyVal =  ipAddr[count];               
			   switch(keyVal)
			   {
	              case '0':
	              klcdata.keypress  = klcKey0;				  
	              break;
	              case '1':
	              klcdata.keypress  = klcKey1;				 
	              break;
	              case '2':
	              klcdata.keypress  = klcKey2;				
	              break;
	              case '3':
	              klcdata.keypress  = klcKey3;				 
	              break;
	              case '4':
	              klcdata.keypress  = klcKey4;				 
	              break;
	              case '5':
	              klcdata.keypress  = klcKey5;				 
	              break;
	              case '6':
	              klcdata.keypress  = klcKey6;				
	              break;
	              case '7':
	              klcdata.keypress  = klcKey7;		
	              break;
	              case '8':
	              klcdata.keypress  = klcKey8;		
	              break;
	              case '9':
	              klcdata.keypress  = klcKey9;			
	              break;
			   }  /* switch */
			   printf("\nkeyVal = %x \n\r", keyVal);
			 msgQSend(PPAKlcInterfaceQId, (char*) &klcdata, sizeof(klcdata), NO_WAIT, MSG_PRI_NORMAL);			
		  } /* for */  
	}  /* ip */ 
}

static void dtmfDigitTable(void)
{
	    int digitCnt;
    	int portNumber;
	    int portFactor;
		int channelNumber;
	    int channelFactor = 0;
        int m;
	    int n;
        ushort destDigit;
        ushort digitVal;
	

	for(portNumber = 0; portNumber < (MAX_NUM_DIGIT*PORT_FACTOR); portNumber +=MAX_NUM_DIGIT)
	{
	   portFactor = portNumber;
	   for(digitCnt = 0; digitCnt<MAX_NUM_DIGIT; digitCnt++, portFactor +=4 )
	   {
			destinationDigitTbl[digitCnt+portNumber] = (dtmfDigitCollectTbl[portFactor] >> 16);
	   }
	 }


	for(channelNumber = 0; channelNumber<PORT_FACTOR; channelNumber++, channelFactor +=13)
	{
	   for(digitVal = 0; digitVal<MAX_NUM_DIGIT; digitVal++)
	   {

		   	switch( destinationDigitTbl[channelFactor++])
			{
				case 0x11:
	              dstinationAddrTbl[channelNumber][digitVal]  = '1';				  
	              break;
	            case 0x12:
	              dstinationAddrTbl[channelNumber][digitVal]  = '2';				 
	              break;
	            case 0x14:
	              dstinationAddrTbl[channelNumber][digitVal]  = '3';				
	              break;
	            case 0x21:
	              dstinationAddrTbl[channelNumber][digitVal]  = '4';				 
	              break;
	            case 0x22:
	              dstinationAddrTbl[channelNumber][digitVal]  = '5';				 
	              break;
	            case 0x24:
	              dstinationAddrTbl[channelNumber][digitVal]  = '6';				 
	              break;
	            case 0x41:
	              dstinationAddrTbl[channelNumber][digitVal]  = '7';				
	              break;
	            case 0x42:
	              dstinationAddrTbl[channelNumber][digitVal]  = '8';		
	              break;
	            case 0x44:
	              dstinationAddrTbl[channelNumber][digitVal]  = '9';		
	              break;
	            case 0x82:
	              dstinationAddrTbl[channelNumber][digitVal]  = '0'; 			
	              break;			
			}		       
	   }
	   dstinationAddrTbl[channelNumber][digitCnt] = '\0';
	}
}
#endif /* #ifdef PPA */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
福利一区在线观看| 久久se这里有精品| 国产欧美一区二区精品忘忧草 | 中文天堂在线一区| 亚洲精品成人天堂一二三| 一区二区三区四区不卡在线| 国产日韩欧美制服另类| 久久久久99精品一区| 国产成人福利片| 成人性生交大片| 精品久久久久久久久久久久久久久 | 成人免费看的视频| 日韩写真欧美这视频| 亚洲国产日产av| 91国偷自产一区二区开放时间 | 中文字幕免费不卡| 美女视频网站久久| 欧美一区二区三区婷婷月色| 亚洲一区免费观看| 日本黄色一区二区| 亚洲丝袜制服诱惑| caoporm超碰国产精品| 中文字幕va一区二区三区| 日本午夜精品一区二区三区电影| 在线精品亚洲一区二区不卡| 亚洲婷婷综合色高清在线| 成人丝袜高跟foot| 国产人伦精品一区二区| 福利电影一区二区| 中文字幕免费观看一区| 成人app软件下载大全免费| 国产日韩三级在线| 成人激情电影免费在线观看| 国产精品美女久久福利网站| 成人avav影音| 亚洲精品一二三区| 欧美亚洲一区二区在线| 婷婷综合另类小说色区| 日韩一级免费观看| 国内精品国产成人国产三级粉色 | 亚洲在线视频免费观看| 欧美揉bbbbb揉bbbbb| 性做久久久久久免费观看欧美| 欧美老年两性高潮| 久久精品国产一区二区三| 久久久三级国产网站| 福利视频网站一区二区三区| 亚洲乱码国产乱码精品精98午夜| 欧美视频在线观看一区二区| 青青草国产精品97视觉盛宴| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 亚洲欧美一区二区三区久本道91| 在线一区二区视频| 亚洲午夜激情av| 欧美日精品一区视频| 久久国产欧美日韩精品| 日本一二三四高清不卡| 在线观看网站黄不卡| 麻豆精品新av中文字幕| 国产欧美一区二区精品性| 欧美综合在线视频| 狠狠久久亚洲欧美| 亚洲情趣在线观看| 日韩一级黄色大片| 不卡视频免费播放| 日本午夜一区二区| 亚洲日本一区二区| 精品国产三级a在线观看| 不卡的看片网站| 免费在线观看一区二区三区| 国产精品色哟哟网站| 7777精品伊人久久久大香线蕉经典版下载 | 天天av天天翘天天综合网 | 亚洲影视在线播放| 久久久一区二区三区捆绑**| 91激情在线视频| 国产一区二区剧情av在线| 一区二区三区四区视频精品免费| 欧美大片一区二区| 欧美无人高清视频在线观看| 国产精品资源站在线| 天堂成人免费av电影一区| 国产精品国产a级| 精品国产一二三| 欧美日本一区二区三区| 91日韩精品一区| 国产精品一区二区黑丝| 日本网站在线观看一区二区三区| 亚洲精品五月天| 国产欧美精品区一区二区三区 | 国产亚洲欧美色| 欧美电影在线免费观看| 91丨九色丨蝌蚪丨老版| 国产精品羞羞答答xxdd| 蜜桃视频在线观看一区二区| 亚洲一区二区三区四区在线观看 | 亚洲一区二区欧美日韩| 中文字幕免费不卡| 久久精品综合网| 久久综合九色综合欧美就去吻| 欧美精品色一区二区三区| 91搞黄在线观看| 91片黄在线观看| 99久久精品情趣| 成人白浆超碰人人人人| 国产精品一区二区果冻传媒| 奇米色777欧美一区二区| 亚洲一区二区三区视频在线播放| 亚洲人成网站影音先锋播放| 亚洲视频一区二区免费在线观看| 国产精品成人免费在线| 国产精品情趣视频| 中文字幕一区二区三区在线不卡 | 丁香啪啪综合成人亚洲小说| 国产美女精品在线| 国产美女在线观看一区| 国产一区二区美女诱惑| 日韩在线一区二区| 日本在线不卡视频| 日韩精品一区第一页| 亚洲午夜精品网| 一区二区三区四区乱视频| 亚洲色图清纯唯美| 亚洲一区在线观看网站| 日本欧美一区二区| 美女视频网站久久| 国产精品小仙女| 成人av一区二区三区| 在线亚洲+欧美+日本专区| 一本久道中文字幕精品亚洲嫩| 欧美视频一区二区| 日韩欧美的一区| 中文一区一区三区高中清不卡| 亚洲丝袜美腿综合| 日韩制服丝袜av| 国产一区二区导航在线播放| av不卡免费电影| 欧美日韩国产精品成人| 26uuu久久天堂性欧美| 中文字幕五月欧美| 视频在线在亚洲| 国产成人午夜精品影院观看视频| 91麻豆蜜桃一区二区三区| 欧美日韩国产首页在线观看| 久久亚洲免费视频| 亚洲欧美乱综合| 久久91精品国产91久久小草| www.久久久久久久久| 91精品国产色综合久久不卡蜜臀 | 欧美日韩一区二区三区四区| 日韩欧美不卡一区| 国产精品久久久久久久久免费相片 | 欧美日韩夫妻久久| 久久九九国产精品| 五月婷婷久久丁香| 国产aⅴ综合色| 欧美乱熟臀69xxxxxx| 中文天堂在线一区| 麻豆91精品视频| 欧美综合在线视频| 中文字幕乱码日本亚洲一区二区| 首页欧美精品中文字幕| 97se亚洲国产综合自在线观| 亚洲精品一区二区三区蜜桃下载| 亚洲激情图片小说视频| 国产精品一区二区久久不卡| 欧美日韩电影在线播放| 亚洲色图制服丝袜| 国产精品综合网| 日韩欧美在线123| 亚洲一二三四在线| www.亚洲人| 久久久99精品免费观看不卡| 人人超碰91尤物精品国产| 日本久久一区二区| 综合色天天鬼久久鬼色| 精东粉嫩av免费一区二区三区| 欧美三级日本三级少妇99| 国产精品久久久久久户外露出| 久88久久88久久久| 欧美精品777| 亚洲图片欧美视频| 色哟哟精品一区| 中文字幕日韩av资源站| 成人手机电影网| 国产欧美一区二区三区在线看蜜臀| 热久久久久久久| 日韩三级伦理片妻子的秘密按摩| 亚洲大片免费看| 欧美性感一区二区三区| 一区二区三区久久久| 日本高清成人免费播放| 一区二区三区资源| 91热门视频在线观看| 亚洲精品国产品国语在线app| 99久久精品国产毛片| 亚洲精品高清在线观看| 欧洲一区二区三区在线| 亚洲第一会所有码转帖| 欧美老人xxxx18|