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

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

?? headset_button_handler.c

?? BLUETOOTH Stereo Headset Source Code,含CVC(噪音消除,回聲抵消),可用于開發(fā)藍(lán)牙立體聲耳機(jī),藍(lán)牙車載,經(jīng)過測試.
?? C
?? 第 1 頁 / 共 2 頁
字號:
                        {
                        	if (app->profile_connected == hfp_handsfree_profile)
                        	{
                                hfpHeadsetHangUpCall(app);
                            }
                            else
                            {
                                /* Send an HSP button press */
                                HfpSendHsButtonPress(app->hsp);
							}
                            playButtonTone = TRUE;
                        }
                        break;

                        case headsetActiveCall:
                        {
                            if (app->profile_connected == hfp_handsfree_profile)
                            {
                                hfpHeadsetHangUpCall(app);
                            }
                            else
                            {    /* Send an HSP button press */
                                HfpSendHsButtonPress(app->hsp);
							}
                            playButtonTone = TRUE;
                    	}
						break;


                        case headsetConnecting:
						case headsetInitialising:
                        default:
                        break ;
					}
                    
					if (!playButtonTone && (current_hfp_state != headsetReady))
                            playErrorTone = TRUE;
                }
            }
   		}         
        break;

        default:
        break;                
    }
    
    if (playErrorTone)
       headsetPlayTone(app, tone_type_error); 
    if (playButtonTone)
        headsetPlayTone(app, tone_type_button_press);         

}

/****************************************************************************
*/
void button_handle_mfb_long_held(  headsetTaskData *app  ) 
{   

	switch (app->headset_power_state)
	{
		case power_state_off:
		case power_state_off_charging:
		    headsetPowerOn(app);
		break;
			
		case power_state_on:
		case power_state_on_charging:
		default:
		    /* We act on the button release - play tone to indicate button has been 
		        held for required time.*/
			headsetPlayTone(app, tone_type_button_press);  
	    break;
	}
}

/****************************************************************************
*/
void button_handle_mfb_long_release(  headsetTaskData *app  ) 
{
    bool playErrorTone = FALSE ;
    bool playButtonTone = FALSE ;
    
    headsetHfpState current_hfp_state = app->hfp_state;   
    
            switch (app->headset_power_state)
            {
            case power_state_off:
                /* Update the local state to show we're now powered on */
                headsetSetPowerState(app, power_state_on);
                /* Check to see if page scanning should be enabled */
  				updateHeadsetScanning(app);
                /* Auto connect to the last used devices if functionality is enabled */
                headsetConnectToLastDevices(app);
                break;
            case power_state_off_charging:
                /* Update the local state to show we're now powered on */
                headsetSetPowerState(app, power_state_on_charging);
                /* Check to see if page scanning should be enabled */
  				updateHeadsetScanning(app);
                /* Auto connect to the last used devices if functionality is enabled */
                headsetConnectToLastDevices(app);
                break;

            case power_state_on:
            case power_state_on_charging:
                if (!app->headset_connecting_hfp)
                {
                    if (isHeadsetPairing(app))
                    {
                        playErrorTone = TRUE;
                    }
                    else
                    {
                        /* Headset not idle, must have some connection active */
                        switch(current_hfp_state)
                        {
                            case headsetReady:
                                /* If we're already streaming music pause it. */
                                if (app->a2dp_state == avHeadsetA2dpStreaming)
                                {
                                    avHeadsetAvStreamStop(app, TRUE);
                                    (void) MessageCancelAll(getAppTask(), APP_MUSIC_RESTART_IND);
                                }

                                /* Headset is idle initiate Last number redial */
                                app->headset_connecting_hfp = 1;
                        
                                /* Requeue the message so we can act on it on SLC connect */
                                MessageSendConditionally(&app->task, BUTTON_MFB_LONG_RELEASE, 0, &app->headset_connecting_hfp);
                        
                                /* Initiate the HFP SLC */
                                hfpHeadsetHandleSlcConnectRequest(app, hfp_handsfree_profile);
                                break;

                            case headsetConnecting:
                                break;

                            case headsetConnected:
                                if (app->profile_connected == hfp_handsfree_profile) 
                                {
                                    hfpHeadsetLastNumberRedial(app);
                                }
                                else
                                {
                                    playErrorTone = TRUE;
                                }
                                break;
                
                            case headsetIncomingCallEstablish:
                                if (app->profile_connected == hfp_handsfree_profile)
                                {
                                    hfpHeadsetRejectCall(app);
                                }
                                else
                                {
                                    playErrorTone = TRUE;
                                }
                                break;

                            case headsetOutgoingCallEstablish:
                                if (app->profile_connected == hfp_handsfree_profile)
                                {
                                    /* Transfer the audio */
                                    if (!app->sco_sink)
                                        hfpHeadsetTransferAudio(app, hfp_audio_to_hfp);
                                    else
                                        hfpHeadsetTransferAudio(app, hfp_audio_to_ag);
                                }
                                else
                                {
                                    playErrorTone = TRUE;
                                }
                                break;

                            case headsetActiveCall:
                                if (app->profile_connected == hfp_handsfree_profile)
                                {
                                    /* Transfer the audio */
                                    if (!app->sco_sink)
                                        hfpHeadsetTransferAudio(app, hfp_audio_to_hfp);
                                    else
                                        hfpHeadsetTransferAudio(app, hfp_audio_to_ag);
                                }              
                                else
                                {
                                    playErrorTone = TRUE;
                                }
                                break;

                            case headsetInitialising:
                            default:
/*                                unhandledHfpState(current_hfp_state, id);*/
                            break ;
                        }
                    }
                }
                break;
            default:
                break;
            }
            

    if (playErrorTone)
       headsetPlayTone(app, tone_type_error); 
    if (playButtonTone)
        headsetPlayTone(app, tone_type_button_press);  
}

/****************************************************************************
*/
void button_handle_mfb_very_long(  headsetTaskData *app  ) 
{
	uint16 prevent_power_on = 0;
                
	if ((app->headset_power_state == power_state_off) ||
        (app->headset_power_state == power_state_off_charging )) 
	{
		prevent_power_on = MessageCancelAll(getAppTask(), APP_PREVENT_POWER_ON);
        
		if (prevent_power_on==0)
		{
            	/* Update the loacl state to show we're now powered on */
			if (app->headset_power_state == power_state_off)
            {
	        	headsetSetPowerState(app, power_state_on);
			}
			else
			{
				headsetSetPowerState(app, power_state_on_charging);
			}
            	/*Check to see if page scanning should be enabled*/
			updateHeadsetScanning(app);
            	/* Go into pairing mode. */
            headsetEnterPairingMode(app);
        }
	}
    else 
    {
    	headsetPowerOff(app);
    }
}

/****************************************************************************
*/
void button_handle_play_pause_press(  headsetTaskData *app  ) 
{
	headsetPowerAmp (app , TRUE);
}

/****************************************************************************
*/
void button_handle_play_pause_short(  headsetTaskData *app  ) 
{
	MessageSendLater(&app->task, APP_PLAY_PAUSE_SHORT, 0, 200);
}

/****************************************************************************
*/
void button_handle_play_pause_long(  headsetTaskData *app  ) 
{
    bool playErrorTone = FALSE ;
    bool playButtonTone = FALSE ;

    headsetAvrcpState current_avrcp_state = app->avrcp_state;
    headsetHfpState current_hfp_state = app->hfp_state;  
    
	switch (app->headset_power_state)
    {
	    case power_state_off:
	    case power_state_off_charging: 
        break;

	    case power_state_on:
    	case power_state_on_charging:
    	{
			if (isHeadsetPairing(app))
        	{
            	playErrorTone = TRUE;
				break;
       	 	}
        	if (isHeadsetIdle(app))
        	{
            		/* Connect the AV. */                    
				playButtonTone = TRUE;
            	avHeadsetHandleAvConnectRequest(app);
        	}
        	else
			{
				if (current_hfp_state == headsetActiveCall)
            	{
					/* Mute or un-mute the microphone */
					headsetMicrophoneMuteToggle(app);
            	}
				else if ((current_hfp_state == headsetIncomingCallEstablish) ||
				         (current_hfp_state == headsetOutgoingCallEstablish) || 
				         (app->voice_recognition_enabled))
				{
					playErrorTone = TRUE;
				}
            	else if (current_avrcp_state == avHeadsetAvrcpConnected)
            	{
                	avHeadsetSendStop(app);                     
					playButtonTone = TRUE;
            	}
            	else if (app->active_profile == av_active)
            	{
                	avHeadsetAvStreamStop(app, TRUE);
                	playButtonTone = TRUE;
            	}
            	else
            	{                    
					playButtonTone = TRUE;
                	avHeadsetHandleAvConnectRequest(app);
            	}                        
        	}
        	break;
    	}
    
    	default:
    	break ;
	}
        
    if (playErrorTone)
       headsetPlayTone(app, tone_type_error); 
    if (playButtonTone)
        headsetPlayTone(app, tone_type_button_press);  
}

/****************************************************************************
*/
void button_handle_forward_backward_held(  headsetTaskData *app  ) 
{
	if ( (app->headset_power_state == power_state_on) ||
	     (app->headset_power_state == power_state_on_charging))
	{
		headsetPlayTone(app, tone_type_pairing);
		ledsPlay(BLUE_FOUR_FLASHES_FAST);				
		headsetClearPairedDevices(app);
	}	
}


            

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
男女视频一区二区| 欧美一级日韩免费不卡| 国产精品久久久久久久第一福利| 国产成人一级电影| 国产精品欧美精品| 色88888久久久久久影院野外 | 欧美成人乱码一区二区三区| 久久91精品久久久久久秒播| 久久久久久久精| 99re亚洲国产精品| 图片区小说区区亚洲影院| 日韩你懂的在线观看| 福利一区二区在线| 一区二区国产盗摄色噜噜| 91精品国产一区二区三区香蕉| 激情久久久久久久久久久久久久久久| 国产欧美精品日韩区二区麻豆天美| 91在线观看地址| 日本在线不卡视频| 国产欧美一区二区在线| 欧美综合在线视频| 国产尤物一区二区在线| 一区二区在线观看视频在线观看| 欧美精品第1页| 成人avav在线| 青青草视频一区| 国产精品久久久久影院亚瑟| 欧美视频一区二区在线观看| 久久99久久99小草精品免视看| 一区精品在线播放| 欧美刺激午夜性久久久久久久| 国产xxx精品视频大全| 视频一区视频二区中文| 中文字幕乱码日本亚洲一区二区| 欧美片在线播放| 99在线精品视频| 国产毛片精品一区| 天天色天天操综合| 亚洲日穴在线视频| 久久综合久久综合九色| 欧美日韩成人综合天天影院| 成人久久久精品乱码一区二区三区| 婷婷综合久久一区二区三区| 中文字幕日韩一区| 久久网这里都是精品| 777奇米成人网| 91丝袜美腿高跟国产极品老师| 国产老肥熟一区二区三区| 日韩影院在线观看| 亚洲精品午夜久久久| 中文欧美字幕免费| wwwwww.欧美系列| 欧美一级高清大全免费观看| 欧美在线观看一二区| av电影在线观看完整版一区二区| 国内精品伊人久久久久影院对白| 天天操天天色综合| 亚洲综合一区二区精品导航| 中文字幕在线视频一区| 久久久91精品国产一区二区精品 | 不卡在线观看av| 韩国精品主播一区二区在线观看 | 日本女优在线视频一区二区| 亚洲视频网在线直播| 亚洲免费观看在线视频| 国产精品视频免费| 国产精品网曝门| 欧美激情综合五月色丁香小说| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 日韩精品亚洲专区| 天天影视色香欲综合网老头| 无码av中文一区二区三区桃花岛| 一区二区三区成人在线视频| 一区二区三区中文字幕在线观看| 亚洲婷婷在线视频| 亚洲精品中文在线观看| 一区二区三区在线播放| 亚洲精品乱码久久久久久久久| 综合久久综合久久| 亚洲精品va在线观看| 一级做a爱片久久| 亚洲国产日韩在线一区模特| 亚洲h在线观看| 日韩和欧美一区二区| 裸体在线国模精品偷拍| 精一区二区三区| 国产ts人妖一区二区| 91在线无精精品入口| 一本一道综合狠狠老| 欧美伦理影视网| 日韩三级视频在线看| 久久久久久久久久久黄色 | 久久亚洲一区二区三区四区| 久久久www成人免费毛片麻豆 | 欧美日精品一区视频| 69久久夜色精品国产69蝌蚪网| 欧美一区二区免费| 国产欧美日韩综合| 亚洲黄色片在线观看| 日产国产欧美视频一区精品| 欧美日免费三级在线| 精品久久久久久久久久久久包黑料 | 337p粉嫩大胆色噜噜噜噜亚洲| 国产日韩综合av| 亚洲男人的天堂一区二区| 日本免费新一区视频| 成人黄色一级视频| 欧美高清www午色夜在线视频| 欧美www视频| 亚洲欧美另类小说视频| 日本aⅴ精品一区二区三区| 国产成人高清在线| 欧美三级日韩三级国产三级| 久久久久亚洲蜜桃| 亚洲综合在线免费观看| 韩国成人在线视频| 欧美在线一区二区三区| 久久嫩草精品久久久久| 亚洲图片欧美激情| 黑人精品欧美一区二区蜜桃| 91免费观看在线| 久久综合久色欧美综合狠狠| 亚洲成人你懂的| 成人黄色电影在线| 日韩午夜激情免费电影| 亚洲女同女同女同女同女同69| 欧美四级电影网| 国产午夜精品久久久久久久 | 午夜视频一区二区三区| 粉嫩av一区二区三区粉嫩| 91超碰这里只有精品国产| 中文字幕亚洲精品在线观看| 精品一区二区成人精品| 精品视频在线看| 成人免费视频在线观看| 国产很黄免费观看久久| 91精品免费观看| 樱花影视一区二区| 不卡欧美aaaaa| 2024国产精品| 久久精品国产亚洲一区二区三区| 色94色欧美sute亚洲线路一久| 欧美国产欧美亚州国产日韩mv天天看完整| 视频一区二区不卡| 欧美亚洲一区二区在线观看| 国产精品午夜电影| 国产69精品久久久久777| 欧美电视剧免费全集观看| 视频在线观看一区二区三区| 欧美性受xxxx黑人xyx| 亚洲婷婷国产精品电影人久久| 懂色av噜噜一区二区三区av| 久久精品一区二区| 国产九色精品成人porny | 成人黄色大片在线观看| 国产午夜一区二区三区| 国内精品写真在线观看| 欧美一区二区视频观看视频| 视频一区二区三区在线| 91精品国产综合久久久久久| 亚洲第一久久影院| 欧美精品一二三区| 日本欧洲一区二区| 日韩一区二区免费电影| 久久精品国产99久久6| 精品动漫一区二区三区在线观看| 美女mm1313爽爽久久久蜜臀| 精品乱码亚洲一区二区不卡| 国产一区二区三区在线观看精品 | 成人午夜视频免费看| 国产日韩欧美不卡在线| 春色校园综合激情亚洲| 国产精品久久久久7777按摩| 91亚洲精品久久久蜜桃| 亚洲在线成人精品| 91精品在线麻豆| 国内外精品视频| 国产精品久久久一本精品 | 午夜欧美在线一二页| 在线成人免费观看| 激情欧美日韩一区二区| 国产欧美一区二区三区沐欲| 99天天综合性| 午夜日韩在线观看| 久久综合中文字幕| 不卡一区中文字幕| 五月开心婷婷久久| 亚洲精品一区二区三区影院| 国产盗摄一区二区| 亚洲激情六月丁香| 日韩一区二区三区免费观看| 国产精品456露脸| 亚洲综合色视频| 欧美电影免费观看完整版| 成人一区二区三区在线观看| 一区二区三区四区激情| 日韩女优av电影在线观看| av亚洲精华国产精华精| 日韩成人免费看| 国产精品国产精品国产专区不蜜|