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

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

?? headset_common.c

?? bluelab 3.52 里面的立體聲程序源代碼
?? C
字號(hào):
/****************************************************************************
Copyright (C) Cambridge Silicon Radio Ltd. 2004-2006
Part of BlueLab 3.5.2-release

FILE NAME
    headset_common.c

DESCRIPTION
    Deals with general headset functionality.

NOTES

*/


/****************************************************************************
    Header files
*/
#include "headset_private.h"
#include "a2dp_handler.h"
#include "cvc_headset.h"
#include "headset_common.h"
#include "headset_power.h"
#include "headset_volume.h"
#include "hfp_slc.h"

#include <connection.h>
#include <hfp.h>
#include <kalimba.h>
#include <ps.h>


#ifdef DEBUG_COMMON
#define COMMON_DEBUG(x) DEBUG(x)
#else
#define COMMON_DEBUG(x) 
#endif


#define SCAN_INTERVAL_NORMAL    (0x800)
#define SCAN_WINDOW_NORMAL      (0x12)
#define SCAN_INTERVAL_PAIRING   (0x400)
#define SCAN_WINDOW_PAIRING     (0x200)


/*****************************************************************************/
void updateHeadsetScanning(headsetTaskData *app)
{
    hci_scan_enable scan = hci_scan_enable_off;

    if (isHeadsetIdle(app))
    {
        /* If headset is ilde be discoverable and connectable */
        scan = hci_scan_enable_inq_and_page;
    }
    else if (((app->a2dp_state == avHeadsetA2dpConnected) || 
            (app->a2dp_state == avHeadsetA2dpStreaming)) &&
            (app->hfp_state >= headsetConnected))
    {
        /* If AV and HFP connected disable all scanning */
        scan = hci_scan_enable_off;
    }
    else if ((app->a2dp_state == avHeadsetA2dpConnected) || 
        (app->a2dp_state == avHeadsetA2dpStreaming))
    {
        /* If only AV connected disable inquiry scan */
        scan = hci_scan_enable_page;
    }
    else
    {
        /* Enable both page and inquiry scan */
        scan = hci_scan_enable_inq_and_page;
    }
	/*Disable all scanning if the headset is off*/
	if ((app->headset_power_state != power_state_on)&(app->headset_power_state != power_state_on_charging))
		scan = hci_scan_enable_off;
    
    COMMON_DEBUG(("COMMON: scan = %d\n",scan));
	
    if ((app->a2dp_state != avHeadsetA2dpInitialising) &&
        (app->avrcp_state != avHeadsetAvrcpInitialising) && 
        (app->hfp_state != headsetInitialising))
    {
        /* If headset is initialising don't attempt to enter any scan mode */			
        ConnectionWriteScanEnable(scan);
        COMMON_DEBUG(("COMMON: Write scan enable\n"));
    }
}


/**************************************************************************/
void setA2dpState(headsetTaskData *app, const headsetA2dpState state)
{
    COMMON_DEBUG(("COMMON: AV Headset A2DP State - C=%d N=%d\n", app->a2dp_state, state));

    app->a2dp_state = state;
      
    /* Check if we should be setting the idle timer running */
    headsetPowerCheckAutoOff(app);

    /* Check to see if we need to update out page/ inquiry scan settings */
    updateHeadsetScanning(app);
}


/**************************************************************************/
void setAvrcpState(headsetTaskData *app, const headsetAvrcpState state)
{
    COMMON_DEBUG(("COMMON: AV Headset AVRCP State - C=%d N=%d\n", app->avrcp_state, state));
 
    app->avrcp_state = state;

    /* Check to see if we need to update out page/ inquiry scan settings */
    updateHeadsetScanning(app);
}


/**************************************************************************/
void setHfpState(headsetTaskData *app, const headsetHfpState state)
{
    COMMON_DEBUG(("COMMON: AV Headset HFP State - C=%d N=%d\n", app->hfp_state, state));

    app->hfp_state = state;
    
    /* Check if we should be setting the idle timer running */
    headsetPowerCheckAutoOff(app);

    /* Check to see if we need to update out page/ inquiry scan settings */
    updateHeadsetScanning(app);
}

/**************************************************************************/
void setPcmState(headsetTaskData *app, const pcmAudioState state)
{
    COMMON_DEBUG(("COMMON: AV Headset PCM State - C=%d N=%d\n", app->pcm_audio_state, state));
    
    app->pcm_audio_state = state;
}

/*****************************************************************************/
void headsetHandleRemoteSuppFeatures(headsetTaskData *app, const CL_DM_REMOTE_FEATURES_CFM_T *cfm)
{
    /* 
        If the read request succeeded then store the first work of the supported features 
        We should in theory store all four words but currently we only need the info in 
        the first word so for the sake of efficiency for the moment only store that.
    */
    if (cfm->status == hci_success)
        app->supp_features_0 = cfm->features[0];
}


/*****************************************************************************/
bool isHeadsetIdle(const headsetTaskData *app)
{
    if ((app->a2dp_state == avHeadsetA2dpReady) &&
        (app->avrcp_state == avHeadsetAvrcpReady) &&
        (app->hfp_state == headsetReady))
        return TRUE;
    else
        return FALSE;
}


/*****************************************************************************/
bool isHeadsetPairing(const headsetTaskData *app)
{
    return app->pairing_enabled;
}


/*****************************************************************************/
void headsetConnectToLastDevices(headsetTaskData *app)
{
    if (app->features.auto_reconnect == 1)
    {
        COMMON_DEBUG(("COMMON: Connect to last devices\n"));
        hfpHeadsetHandleSlcConnectRequest(app, hfp_handsfree_profile);
        avHeadsetHandleAvConnectRequest(app);
    }
}


/*****************************************************************************/
void headsetRestartAV(headsetTaskData *app)
{
#ifdef INCLUDE_CVC
    /* Indicate that the CVC DSP has stopped */
    if (((app->a2dp_state == avHeadsetA2dpConnected) || (app->a2dp_state == avHeadsetA2dpStreaming))
        && app->cvc.hfkdspready)
    {
        headsetUpdateVolume(app->codec_task, 0);
        CvcHeadsetUnloaded(app);
        KalimbaPowerOff();
    }
#endif
    (void) MessageCancelAll(&app->task, APP_MUSIC_RESTART_IND);
    MessageSendLater(&app->task, APP_MUSIC_RESTART_IND, 0, (uint32) MUSIC_RESTART_DELAY);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区视频在线| 韩国精品在线观看| 欧美成人精品福利| 国产一区二区三区电影在线观看| 日本一区二区高清| 在线观看www91| 国产成人夜色高潮福利影视| 亚洲第一主播视频| 欧美成人性战久久| 日本韩国一区二区三区| 国产成人精品综合在线观看| 亚洲自拍偷拍九九九| 久久免费视频色| 欧美麻豆精品久久久久久| 国产成人精品一区二区三区四区| 亚洲国产日韩a在线播放性色| 欧美激情一区二区在线| 日韩三级中文字幕| 成人性生交大片免费看在线播放| 男女男精品网站| 亚洲综合小说图片| **欧美大码日韩| 国产欧美一区二区精品秋霞影院| 日韩精品一区在线| 在线成人av影院| 91国偷自产一区二区开放时间| 成人激情视频网站| 国产精品77777| 韩国女主播一区二区三区| 午夜免费久久看| 首页国产丝袜综合| 亚洲国产aⅴ成人精品无吗| 一区二区三区欧美久久| 亚洲欧美激情小说另类| 亚洲美女视频在线观看| 亚洲动漫第一页| 午夜一区二区三区视频| 亚洲欧洲日韩一区二区三区| 国产精品免费网站在线观看| 自拍偷拍亚洲综合| 亚洲码国产岛国毛片在线| 亚洲乱码中文字幕| 洋洋成人永久网站入口| 日欧美一区二区| 蜜乳av一区二区| 国产成a人亚洲| 色综合天天视频在线观看| 欧美日韩夫妻久久| 国产日韩成人精品| 亚洲一区二区在线播放相泽| 久久国产综合精品| 成人蜜臀av电影| 欧美精品日韩综合在线| 国产女人aaa级久久久级| 亚洲一区在线视频| 麻豆成人免费电影| 91麻豆成人久久精品二区三区| 欧美日韩国产电影| 中文字幕在线不卡一区二区三区 | 国产一区二区电影| 日韩亚洲欧美高清| 国产清纯在线一区二区www| 午夜欧美2019年伦理| 不卡高清视频专区| 精品久久久久久久一区二区蜜臀| 亚洲精品久久久蜜桃| 国产成人精品午夜视频免费| 在线91免费看| 视频一区欧美精品| 欧美日韩久久久久久| 亚洲天堂免费看| 99riav久久精品riav| 亚洲国产精品黑人久久久| 美女国产一区二区三区| 欧美日韩中文字幕一区| 亚洲综合在线免费观看| 播五月开心婷婷综合| 久久精品亚洲精品国产欧美| 国产曰批免费观看久久久| 在线播放中文一区| 亚洲福利视频导航| 欧美日本一区二区三区| 日韩精品免费视频人成| 欧美美女直播网站| 亚洲图片另类小说| 欧美午夜影院一区| 性欧美疯狂xxxxbbbb| 精品福利在线导航| 天天做天天摸天天爽国产一区| 7777精品伊人久久久大香线蕉| 亚洲第一会所有码转帖| 欧美剧情片在线观看| 一区二区成人在线视频| zzijzzij亚洲日本少妇熟睡| 国产精品久久久久久亚洲伦 | 国产乱子轮精品视频| 亚洲国产精品成人综合| 91国偷自产一区二区三区观看| 亚洲一级二级三级| 欧美mv和日韩mv的网站| 国产一区二区三区精品视频| 国产肉丝袜一区二区| 97久久精品人人做人人爽50路| 亚洲电影在线播放| 国产午夜精品福利| 国产成人精品午夜视频免费| 一区二区三区加勒比av| 久久久电影一区二区三区| 成人性视频免费网站| 免费高清在线一区| 亚洲欧美国产三级| 国产精品女同一区二区三区| 欧美巨大另类极品videosbest | 26uuuu精品一区二区| 91欧美激情一区二区三区成人| 极品少妇xxxx偷拍精品少妇| 中文字幕一区二区日韩精品绯色| 51精品视频一区二区三区| 色哟哟国产精品| 狠狠色丁香久久婷婷综合丁香| 亚洲激情男女视频| 国产精品青草久久| 91精品久久久久久久久99蜜臂| av电影天堂一区二区在线| 国产一区欧美二区| 久久99蜜桃精品| 日本成人在线网站| 蜜臀av亚洲一区中文字幕| 一区二区成人在线观看| 洋洋av久久久久久久一区| 伊人夜夜躁av伊人久久| 亚洲青青青在线视频| 久久久久久久综合狠狠综合| www成人在线观看| 精品日韩成人av| 国产日韩欧美精品综合| 国产精品久久福利| 国产精品黄色在线观看| 国产欧美日韩久久| 日韩精品一区二区三区视频播放 | 91麻豆精品国产91久久久久久久久 | 播五月开心婷婷综合| 国产黄色91视频| 成人福利视频网站| 欧美亚洲国产一区在线观看网站| 色婷婷激情综合| 欧美精品v国产精品v日韩精品| 欧美日韩一区成人| 日韩欧美一区二区久久婷婷| 国产欧美一区二区精品性色| 精品免费99久久| 伊人一区二区三区| 蜜桃久久av一区| 国产sm精品调教视频网站| 日本久久电影网| 精品久久久久久亚洲综合网 | 国产在线精品不卡| 波多野洁衣一区| 91 com成人网| 亚洲日本va在线观看| 大胆亚洲人体视频| 欧美日韩国产不卡| 亚洲欧洲精品一区二区三区不卡| 亚洲成人激情综合网| 成人丝袜视频网| 国产女主播一区| 精品中文av资源站在线观看| 精品视频在线免费看| 欧美激情艳妇裸体舞| 国产一区二区三区最好精华液| 欧美午夜影院一区| 亚洲视频图片小说| 成人美女视频在线观看| 久久久午夜电影| 国产精品中文欧美| 欧美一区二区三区的| 亚洲va欧美va人人爽午夜| 99精品偷自拍| 久久人人超碰精品| 粉嫩aⅴ一区二区三区四区| 日韩欧美在线一区二区三区| 日韩高清一区在线| 日韩欧美自拍偷拍| 国产精品99久久久久久久vr| 久久久91精品国产一区二区精品| 日本午夜一本久久久综合| 欧美精品三级日韩久久| 五月天激情综合| 精品国产一区二区三区久久影院| 美女视频第一区二区三区免费观看网站| 欧美色国产精品| 日韩精品欧美精品| 日韩精品一区二区三区老鸭窝| 国产成人自拍在线| 国产精品视频线看| 色综合视频在线观看| 视频一区视频二区中文字幕| 精品国产乱码久久久久久老虎| 久久99久久99小草精品免视看| 久久免费午夜影院|