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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hfp_handler.c

?? 藍牙立體聲耳機 firmware
?? C
字號:
/****************************************************************************
Copyright (C) Cambridge Silicon Radio Ltd. 2004-2006
Part of BlueLab 3.6.2-release

FILE NAME
    hfp_handler.c

DESCRIPTION
    HFP handler.

*/


/****************************************************************************
    Header files
*/
#include "headset_private.h"
#include "headset_common.h"
#include "headset_tones.h"
#include "hfp_handler.h"
#include "hfp_audio.h"
#include "headset_volume.h"

#include <hfp.h>
#include <panic.h>

#include <stdlib.h>
#include <audio.h>


#ifdef DEBUG_HFP
#define HFP_DEBUG(x) DEBUG(x)
#else
#define HFP_DEBUG(x) 
#endif


/*****************************************************************************/
void hfpHeadsetAnswerCall(const headsetTaskData *app)
{
    /* 
        Call the HFP lib function, this will determine the AT cmd to send
        depending on whether the profile instance is HSP or HFP compliant.
    */ 
    HfpAnswerCall(app->hfp);
}


/*****************************************************************************/
void hfpHeadsetRejectCall(const headsetTaskData *app)
{
    /* Reject incoming call - only valid for instances of HFP */ 
    HfpRejectCall(app->hfp);
}


/*****************************************************************************/
void hfpHeadsetHangUpCall(const headsetTaskData *app)
{
    /* Terminate the current ongoing call process */
    HfpTerminateCall(app->hfp);
}


/*****************************************************************************/
void hfpHeadsetLastNumberRedial(const headsetTaskData *app)
{
    /* Issue a redial request to the HFP lib */
    HfpLastNumberRedial(app->hfp);
}


/*****************************************************************************/
void hfpHeadsetHandleVoiceRecognitionInd(headsetTaskData *app, const HFP_VOICE_RECOGNITION_IND_T *ind)
{
    /* Update the local flag */
    app->voice_recognition_enabled = ind->enable;    
	
	if (app->voice_recognition_enabled)
	{
		AudioSetMode (AUDIO_MODE_MUTE_SPEAKER , NULL) ;
	}
	else
	{
			AudioSetMode (AUDIO_MODE_CONNECTED, NULL) ;
	}
}


/*****************************************************************************/
void hfpHeadsetVoiceRecognitionEnable(headsetTaskData *app, uint16 enable)
{
		
    if (app->profile_connected == hfp_handsfree_profile) 
    {
    	HfpVoiceRecognitionEnable(app->hfp, enable);
    }
    else
	{
        /* Send an HSP button press */
        HfpSendHsButtonPress(app->hsp);
	}
        
    HFP_DEBUG(("HFP: Sent voice enable %d to AG\n",enable));
	
	if (app->voice_recognition_enabled)
	{
		AudioSetMode (AUDIO_MODE_MUTE_SPEAKER, NULL) ;
	}
	else
	{
		AudioSetMode (AUDIO_MODE_CONNECTED, NULL) ;
	}
}

/*****************************************************************************/
void hfpHeadsetHandleVoiceRecognitionCfm(headsetTaskData *app, const HFP_VOICE_RECOGNITION_ENABLE_CFM_T *cfm)
{
    /* If the cmd succeeds we've got the flag set to the right state anyway */
    if (cfm->status == hfp_fail)
    {
        /* Voice recognition cmd not accepted - change the state to what it was */
        app->voice_recognition_enabled = FALSE ;
		
        headsetPlayTone(app, tone_type_error); 
        headsetRestartAV(app);

		
        AudioSetMode( AUDIO_MODE_CONNECTED, NULL);
    
    }

}


/*****************************************************************************/
void hfpHeadsetHandleCallIndicator(headsetTaskData *app, const HFP_CALL_IND_T *ind)
{
    HFP_DEBUG(("HFP: Call Ind = %d\n",ind->call));
    if (ind->call)
    {
        /* Active call */
        setHfpState(app, headsetActiveCall);
    }
    else
    {
        /* If an active call has been released update state accordingly */
        if (app->hfp_state == headsetActiveCall)
        {
            setHfpState(app, headsetConnected);
            HFP_DEBUG(("HFP: state connected\n"));
			headsetPlayTone(app, tone_type_call_end); 
        }
    }
		
}


/*****************************************************************************/
void hfpHeadsetHandleCallSetupIndicator(headsetTaskData *app, const HFP_CALL_SETUP_IND_T *ind)
{
    headsetHfpState old_hfp_state = app->hfp_state;
    headsetHfpState new_hfp_state;
    
    /* Update the local state according to the value in this indicator */
    HFP_DEBUG(("HFP: Call Setup Ind = %d\n",ind->call_setup));
    HFP_DEBUG(("HFP: old hfp_state = %d\n",app->hfp_state));
    switch (ind->call_setup)
    {
    case hfp_no_call_setup:
        if (app->hfp_state != headsetActiveCall && app->hfp_state != headsetConnecting)
            setHfpState(app, headsetConnected);
        break;

    case hfp_incoming_call_setup:
        if (app->hfp_state != headsetActiveCall)
        {
            setHfpState(app, headsetIncomingCallEstablish);
            app->active_profile = hfp_active;
        }
        break;

    case hfp_outgoing_call_setup:
    case hfp_outgoing_call_alerting_setup:
        setHfpState(app, headsetOutgoingCallEstablish);
        break;

    default:
        /* Invalid call setup indicator value received. */
        HFP_DEBUG(("HFP: PANIC!\n"));
        Panic();
    }
    
    HFP_DEBUG(("HFP: new hfp_state = %d\n",app->hfp_state));
    new_hfp_state = app->hfp_state;
    
    if ((old_hfp_state == headsetIncomingCallEstablish) && (new_hfp_state == headsetConnected))
    {
		headsetPlayTone(app, tone_type_call_end); 
        /* Noone answered a locally generated ring tone so restart AV if necessary */
        headsetRestartAV(app);
    }
	if ((old_hfp_state == headsetOutgoingCallEstablish) && (new_hfp_state == headsetConnected))
	{
		headsetRestartAV(app);
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线不卡视频| 在线免费一区三区| 亚洲国产欧美日韩另类综合 | 成人免费视频app| 午夜久久久久久久久久一区二区| 国产欧美日韩久久| 日韩欧美一区在线观看| 色偷偷久久一区二区三区| 国产在线播放一区二区三区| 亚洲成人激情av| 亚洲人午夜精品天堂一二香蕉| 亚洲精品在线电影| 欧美日本在线视频| 色婷婷激情综合| av午夜精品一区二区三区| 国产一区久久久| 麻豆91免费观看| 日韩激情av在线| 亚洲成人一区二区在线观看| 中文字幕一区日韩精品欧美| 国产三区在线成人av| 欧美mv和日韩mv国产网站| 91精品国产全国免费观看| 欧美艳星brazzers| 一本在线高清不卡dvd| 粉嫩av一区二区三区在线播放| 老司机免费视频一区二区三区| 亚洲成年人影院| 亚洲一区二区中文在线| 亚洲精品高清在线观看| 亚洲欧美日本韩国| 亚洲免费成人av| 亚洲精品乱码久久久久久 | 国产日韩高清在线| 26uuuu精品一区二区| 精品欧美一区二区久久| 日韩女优制服丝袜电影| 精品国产第一区二区三区观看体验| 欧美精品 日韩| 91精品国产91久久久久久最新毛片| 91国模大尺度私拍在线视频| 色婷婷综合久久久久中文 | 亚洲成av人**亚洲成av**| 亚洲国产精品天堂| 午夜激情一区二区| 五月婷婷激情综合| 毛片不卡一区二区| 国产在线观看免费一区| 国产在线不卡一区| 99视频精品在线| 色av成人天堂桃色av| 欧美色精品天天在线观看视频| 欧美福利一区二区| 欧美大白屁股肥臀xxxxxx| 久久综合狠狠综合久久综合88| 国产午夜精品久久久久久久 | 亚洲黄色免费电影| 性做久久久久久免费观看欧美| 午夜欧美大尺度福利影院在线看| 日韩二区三区四区| 国产真实精品久久二三区| 成人免费视频一区| 欧美优质美女网站| 日韩精品最新网址| 国产精品伦一区二区三级视频| 中文字幕中文字幕一区二区| 一区二区三区不卡视频| 日韩1区2区3区| 岛国av在线一区| 欧美亚洲综合另类| 精品国产a毛片| 国产女人18水真多18精品一级做 | 久草中文综合在线| gogogo免费视频观看亚洲一| 欧美午夜免费电影| 欧美大黄免费观看| 伊人夜夜躁av伊人久久| 蜜桃av一区二区| 成人app在线| 69堂亚洲精品首页| 日本一区二区三区四区| 午夜视频在线观看一区二区 | 91精品欧美久久久久久动漫| 欧美va天堂va视频va在线| 精品少妇一区二区三区免费观看 | 日本不卡视频在线观看| 波波电影院一区二区三区| 7777精品久久久大香线蕉| 国产精品国产精品国产专区不蜜| 日韩国产精品久久久久久亚洲| 成人av先锋影音| 欧美一区二区三区免费在线看| 国产精品情趣视频| 开心九九激情九九欧美日韩精美视频电影 | 国产乱一区二区| 欧美日本韩国一区| 国产欧美日本一区视频| 青青青爽久久午夜综合久久午夜| 成人avav在线| 久久综合网色—综合色88| 午夜婷婷国产麻豆精品| 99re热这里只有精品视频| 精品国产乱码久久久久久老虎 | 中文字幕一区二区三区不卡| 另类综合日韩欧美亚洲| 欧美日韩免费不卡视频一区二区三区 | 成人aa视频在线观看| 精品久久久久久综合日本欧美| 午夜精品一区二区三区三上悠亚| 99久久国产综合色|国产精品| 久久色在线观看| 免费看欧美女人艹b| 精品视频在线免费看| 亚洲欧美日韩久久精品| 成人av资源下载| 国产精品美女一区二区| 国产成人在线视频网址| 精品久久久久久久久久久久久久久久久| 亚洲电影激情视频网站| 91蝌蚪porny成人天涯| 国产精品家庭影院| 成人午夜精品在线| 久久久久国色av免费看影院| 蜜臀av一区二区在线免费观看 | av中文字幕在线不卡| 国产婷婷一区二区| 国产综合久久久久久久久久久久| 欧美一级一区二区| 毛片不卡一区二区| 日韩精品一区国产麻豆| 青青草97国产精品免费观看无弹窗版 | 国产精品一区二区三区99| 欧美精品一区二区三区四区| 国内精品第一页| 久久蜜桃一区二区| 丁香激情综合国产| 中文字幕一区二区三中文字幕| 不卡av在线免费观看| 中文字幕日本不卡| 色综合天天天天做夜夜夜夜做| 亚洲图片你懂的| 欧美在线一区二区三区| 偷窥国产亚洲免费视频| 欧美一区二区三区视频免费| 免费精品99久久国产综合精品| 精品嫩草影院久久| 狠狠色狠狠色综合日日91app| 久久精品视频免费| 成人av资源站| 亚洲综合在线第一页| 欧美高清一级片在线| 激情都市一区二区| 国产精品系列在线| 色菇凉天天综合网| 男人的天堂亚洲一区| 久久精品视频在线免费观看 | 精品视频资源站| 老司机一区二区| 欧美韩日一区二区三区| 91污片在线观看| 首页欧美精品中文字幕| 久久亚洲影视婷婷| 色综合视频一区二区三区高清| 偷拍一区二区三区| 国产亚洲欧美一区在线观看| 色欧美乱欧美15图片| 日韩高清在线观看| 国产精品美女久久久久久久网站| 在线观看国产91| 国产又粗又猛又爽又黄91精品| 日韩理论片在线| 日韩欧美的一区二区| av一二三不卡影片| 青青草视频一区| 国产精品国产成人国产三级| 在线播放亚洲一区| 国产成人免费视频网站高清观看视频 | 欧美mv和日韩mv的网站| 99久久精品免费精品国产| 日本不卡1234视频| 亚洲男同性视频| 精品99999| 欧美精品在线观看播放| 国产成人av电影在线播放| 亚洲成人av免费| 国产精品国产三级国产有无不卡| 91精品国产综合久久福利软件| 国产福利一区二区| 婷婷一区二区三区| 国产精品美女久久久久久| 日韩丝袜美女视频| 91美女片黄在线观看91美女| 国精产品一区一区三区mba视频| 亚洲激情第一区| 中文字幕不卡三区| 精品国产乱子伦一区| 欧美顶级少妇做爰| 色8久久精品久久久久久蜜| 国产又黄又大久久| 蜜臀久久99精品久久久久久9 |