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

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

?? main.c

?? BLUETOOTH Stereo Headset Source Code,含CVC(噪音消除,回聲抵消),可用于開發藍牙立體聲耳機,藍牙車載,經過測試.
?? C
?? 第 1 頁 / 共 4 頁
字號:
					}
					else if (current_avrcp_state == avHeadsetAvrcpConnected)
                    {                            
                        if (app.play_state && (app.a2dp_state == avHeadsetA2dpStreaming))
						{
                                avHeadsetSendPause(&app);
						}
						else
						{
                                avHeadsetSendPlay(&app);
						}
						playButtonTone = TRUE;
					}
                    else if (app.active_profile == av_active)
                    {

                       if (app.play_state)
                            {
                                avHeadsetUpdateAvrcpPlayState(&app, 0);
                                avHeadsetAvStreamStop(&app, TRUE);
                            }
                            else
                            {
                                avHeadsetUpdateAvrcpPlayState(&app, 1);
                                avHeadsetAvStreamStart(&app);
                            }
                            playButtonTone = TRUE;
                        
                    }        

                    else
                    {
                        playButtonTone = TRUE ;
                        avHeadsetHandleAvConnectRequest(&app);
                    }
                }
                break;
            }
            break;

            default:
            break ;

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

/*************************************************************************
NAME    
    app_handler
    
DESCRIPTION
    This is the main message handler for the AV Headset Application.  All
    messages pass through this handler.

RETURNS

*/
static void app_handler(Task task, MessageId id, Message message)
{    
    /*DEBUG(("In App_handler\n"));*/
    /* Handle incoming message identified by its message ID */
    if ((AVRCP_MESSAGE_BASE <= id) && (id <= AVRCP_MESSAGE_TOP))
    {
        avrcp_msg_handler(id, message);
    }
    else if ((A2DP_MESSAGE_BASE <= id) && (id <= A2DP_MESSAGE_TOP))
    {
        a2dp_msg_handler(id, message);
    }
    else if ((HFP_MESSAGE_BASE <= id) && (id <= HFP_MESSAGE_TOP))
    {
        hfp_msg_handler(id, message);
    }
    else if ((CL_MESSAGE_BASE <= id) && (id <= CL_MESSAGE_TOP))
    {
        cl_msg_handler(id, message);
    }
    else if ((HEADSET_MSG_BASE <= id) && (id <= HEADSET_MSG_TOP))
    {
        app_msg_handler (id , message ) ;
    }
    else    
    {
    switch(id)
    {
 
    case CODEC_INIT_CFM:
        MAIN_DEBUG(("CODEC_INIT_CFM\n"));
        if(((CODEC_INIT_CFM_T*)message)->status == codec_success)
        {  
            app.codec_task = ((CODEC_INIT_CFM_T*)message)->codecTask;
            /* Initialise the headset volume */
            initialiseVolume(&app);
            /* Initialise the Connection Library */
            ConnectionInit(&app.task);
        }
        else
        {
            Panic();
        }
    break;
    
    case BUTTON_VOL_UP:
        BUTTON_DEBUG(("BUTTON_VOL_UP\n"));
        button_handle_vol_up(&app) ;
    break;
            
    case BUTTON_VOL_DOWN:
        BUTTON_DEBUG(("BUTTON_VOL_DOWN\n"));
        button_handle_vol_down(&app) ;
    break;
    
    case BUTTON_FORWARD_PRESS:
        BUTTON_DEBUG(("BUTTON_FORWARD_PRESS\n"));
    break;
    
    case BUTTON_FORWARD_RELEASE:
        MAIN_DEBUG(("BUTTON_FORWARD_RELEASE\n"));
        button_handle_forward_release(&app) ;
    break;
        
    case BUTTON_FORWARD_LONG:
        BUTTON_DEBUG(("BUTTON_FORWARD_LONG\n"));
        button_handle_forward_long(&app) ;
    break ;

    case BUTTON_FORWARD_LONG_REPEAT:
        BUTTON_DEBUG(("BUTTON_FORWARD_LONG_REPEAT\n"));
	    button_handle_forward_long(&app) ;        
    break;
    
    case BUTTON_FORWARD_LONG_RELEASE:
        BUTTON_DEBUG(("BUTTON_FORWARD_LONG_RELEASE\n"));
        button_handle_forward_long_release(&app) ;
    break ;
        
    case BUTTON_FORWARD_LONG_REPEAT_RELEASE:
        BUTTON_DEBUG(("BUTTON_FORWARD_LONG_REPEAT_RELEASE\n"));
        button_handle_forward_long_release(&app) ;
	break;

    case BUTTON_BACKWARD_PRESS:
        BUTTON_DEBUG(("BUTTON_BACKWARD_PRESS\n")); 
    break;

    case BUTTON_BACKWARD_RELEASE:
        BUTTON_DEBUG(("BUTTON_BACKWARD_RELEASE\n"));
        button_handle_backward_release(&app) ;    
    break;
            
    case BUTTON_BACKWARD_LONG:
        BUTTON_DEBUG(("BUTTON_BACKWARD_LONG\n"));
        button_handle_backward_long(&app) ;
    break ;
    
    case BUTTON_BACKWARD_LONG_REPEAT:
		BUTTON_DEBUG(("BUTTON_BACKWARD_LONG_REPEAT\n"));
        button_handle_backward_long(&app) ;
    break ;         
        
    case BUTTON_BACKWARD_LONG_RELEASE:
        BUTTON_DEBUG(("BUTTON_BACKWARD_LONG_RELEASE\n"));
        button_handle_backward_long_release(&app) ;
    break ;
        
    case BUTTON_BACKWARD_LONG_REPEAT_RELEASE:
        BUTTON_DEBUG(("BUTTON_BACKWARD_LONG_REPEAT_RELEASE\n"));
        button_handle_backward_long_release(&app) ;
    break;
            
    case BUTTON_MFB_PRESS:
        BUTTON_DEBUG(("BUTTON_MFB_PRESS\n"));
        button_handle_mfb_press(&app) ;
    break;

    case BUTTON_MFB_SHORT:
        BUTTON_DEBUG(("BUTTON_MFB_SHORT\n"));            
        button_handle_mfb_short(&app) ;
    break;

    case BUTTON_MFB_LONG_HELD:
        BUTTON_DEBUG(("BUTTON_MFB_LONG_HELD\n"));
        button_handle_mfb_long_held(&app) ;
    break;

    case BUTTON_MFB_LONG_RELEASE:
        BUTTON_DEBUG(("BUTTON_MFB_LONG_RELEASE\n"));
        button_handle_mfb_long_release(&app) ;
    break;

    case BUTTON_MFB_VERY_LONG:
        BUTTON_DEBUG(("BUTTON_MFB_VERY_LONG\n"));
        button_handle_mfb_very_long(&app) ;
    break;
    
    case BUTTON_PLAY_PAUSE_PRESS:
        BUTTON_DEBUG(("BUTTON_PLAY_PAUSE_PRESS\n"));
        button_handle_play_pause_press(&app) ;
    break;

    case BUTTON_PLAY_PAUSE_SHORT:
        BUTTON_DEBUG(("BUTTON_PLAY_PAUSE_SHORT\n"));
        button_handle_play_pause_short(&app) ;
    break;

    case BUTTON_PLAY_PAUSE_LONG:
        BUTTON_DEBUG(("BUTTON_PLAY_PAUSE_LONG\n"));
        button_handle_play_pause_long(&app) ;
    break;


    case BUTTON_FORWARD_BACKWARD_HELD:
        BUTTON_DEBUG(("BUTTON_FORWARD_BACKWARD_HELD\n"));
        button_handle_forward_backward_held(&app) ;
    break;
#ifdef DEV_1645	
	case CHARGER_RAW:
            MAIN_DEBUG(("CHARGER 0x%x\n",((CHARGER_RAW_T*)message)->chg));
			if (((CHARGER_RAW_T*)message)->chg)
			{
            MessageSend(getAppTask(), APP_CHARGER_CONNECTED_IND, 0);
			}
			else
			{
            MessageSend(getAppTask(), APP_CHARGER_DISCONNECTED_IND, 0);
			}	
	break;
#endif
#ifdef DEV_1508
	case PIO_RAW:
            MAIN_DEBUG(("PIO_RAW 0x%x\n",((PIO_RAW_T*)message)->pio));

		if (((PIO_RAW_T*)message)->pio & PIO_AIO3)
		{
            MessageSend(getAppTask(), APP_CHARGER_CONNECTED_IND, 0);
		}
		else
		{
            MessageSend(getAppTask(), APP_CHARGER_DISCONNECTED_IND, 0);
		}
  	break;
#endif

    default:
        MAIN_DEBUG(("AV Headset - Unhandled msg 0x%x\n",id));
    break;
    }
    }
    
#ifdef TEST_HARNESS
    if (((HFP_MESSAGE_BASE <= id) && (id <= HFP_MESSAGE_TOP))||
        ((CL_MESSAGE_BASE <= id) && (id <= CL_MESSAGE_TOP))||
        ((A2DP_MESSAGE_BASE <= id) && (id <= A2DP_MESSAGE_TOP)))
    {
        test_handle_lib_message(task, id,  message);
    }
#endif
}

/**************************************************************************/
static void headsetReadPsFeatures(headsetTaskData *app)
{
    uint16 ps_read;
    bool ps_set = FALSE;
    
    /* Read Auto Reconnect Value */
    if (PsRetrieve(AUTO_RECONNECT, &ps_read, 1))
    {
        if (ps_read == 1)
            ps_set = TRUE;
    }
    if (ps_set)
        app->features.auto_reconnect = 0x1;
    else
        app->features.auto_reconnect = 0x0;
    
    MAIN_DEBUG(("Features, auto_reconnect %d\n",app->features.auto_reconnect));
    
    ps_set = FALSE;
    ps_read = 0;
    /* Read Ring Tone Select Value */
    if (PsRetrieve(RING_TONE_SELECT, &ps_read, 1))
    {
        switch (ps_read)
        {
        case 1:
            app->features.ring_tone_select = 0x1;
            ps_set = TRUE;
            break;
        default:
            break;
        }
    }
    if (!ps_set)
        app->features.ring_tone_select = 0x0;
    
    MAIN_DEBUG(("Features, ring_tone_select %d\n",app->features.ring_tone_select));
    
    ps_set = FALSE;
    ps_read = 0;
    /* Read Auto Switch Off Enabled Value */
    if (PsRetrieve(AUTO_SWITCH_OFF_ENABLED, &ps_read, 1))
    {
        if (ps_read == 1)
            ps_set = TRUE;
    }
    if (ps_set)
        app->features.auto_switch_off_enabled = 0x1;
    else
        app->features.auto_switch_off_enabled = 0x0;
    
    MAIN_DEBUG(("Features, auto_switch_off_enabled %d\n",app->features.auto_switch_off_enabled));
    
    ps_read = 0;
    /* Read Auto Switch Off Timeout Value */
    if (PsRetrieve(AUTO_SWITCH_OFF_TIMEOUT, &ps_read, 1))
        app->features.auto_switch_off_timeout = ps_read;
    else
        app->features.auto_switch_off_timeout = 0;
    
    MAIN_DEBUG(("Features, auto_switch_off_timeout %d\n",app->features.auto_switch_off_timeout));
}

/**************************************************************************/
static void headsetInitialiseStates(headsetTaskData *app)
{
    /* Set up the Application task handler */
    app->task.handler = app_handler;
    
    /* Reset the codec task ptr. */
    app->codec_task = 0;
    
    /* Set up common states */    
    app->speaker_volume.hfp_volume = 0;
    app->speaker_volume.av_volume = 0;
    app->pairing_enabled = 0;
    app->active_profile = hfp_active;
	app->mic_volume = 8;
    
    /* Init the AV state */
    app->a2dp = 0;
    app->avrcp = 0;
    setA2dpState(app, avHeadsetA2dpInitialising);
    setAvrcpState(app, avHeadsetAvrcpInitialising);
    app->sig_sink = 0;
	app->media_sink = 0;
    app->channel_mode = a2dp_mono;
    app->rate = 8000;
    app->avrcp_pending = FALSE;
    app->av_stream_stopped = TRUE;
    app->sent_suspend = FALSE;
    app->play_state = 0;
    app->headset_connecting_av = FALSE;
	avHeadsetUpdateAvrcpPlayState(app, 0);
		    
    
    /* Init the HFP state */
    setHfpState(app, headsetInitialising);
    app->in_band_ring_enabled = 0;
	app->voice_recognition_enabled = FALSE;
    app->headset_connecting_hfp = 0;
    app->slc_sink = 0;
    app->sco_sink = 0;
    app->supp_features_0 = 0;
    app->profile_connected = hfp_no_profile;
    app->hfp = 0;
    app->hsp = 0;
	app->mic_mute_on = FALSE;
	app->charger_connected = 0;
	app->battery_full = 0;
	app->connect_av = 0;
	app->av_stream_connected = FALSE;
}

/* The Stereo Headset Application starts here...*/
int main(void)
{
    /* Initialise the app states */
    headsetInitialiseStates(&app); 
     
    /*Power on and send a message to check that a power-on event has been seen*/  
#ifdef SOFT_POWER
	PioSetDir(POWER_HOLD, POWER_HOLD);
    PioSet(POWER_HOLD, POWER_HOLD);
#endif
        /*Send a message to check if we have seen a power on event, if this isn't seen
	      the headset will power down*/
	MessageSendLater(getAppTask(), APP_POWER_ON_EVENT_SEEN, 0, (uint32) 15000);
     
#ifdef TEST_HARNESS
    test_register(getAppTask());
#endif   
    

#ifdef WOLFSON_CODEC_WM8731
    /* Init the Wolfson codec with default params. */
    CodecInitWolfson(&app.task, 0);
#else
    /* Initialise the Codec Library */
    CodecInitCsrInternal(&app.task);
#endif

    /* Read feature values from the PS */
    headsetReadPsFeatures(&app);
#ifdef DEV_1645
	
	/*Disable the built-in charger indications*/
	ChargerSupressLed0(TRUE);
	
#endif	
 
    /* Initialise the battery voltage polling */
    batteryInit(&app.power_source);
    
		/* Initialise PIO */
    pioInit(&app.pio_state, &app.task);

    /* Start the message scheduler loop */
    MessageLoop();
    
    /* Never get here...*/
    return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
337p粉嫩大胆噜噜噜噜噜91av| 色综合天天在线| 91麻豆精品国产综合久久久久久| 亚洲欧美一区二区三区久本道91| av中文字幕一区| 一二三四社区欧美黄| 欧美三区在线观看| 青青草视频一区| 久久九九久精品国产免费直播| 国产精品一区一区三区| 中文字幕在线免费不卡| 91社区在线播放| 视频一区二区欧美| 久久人人97超碰com| 97国产精品videossex| 五月激情六月综合| 久久嫩草精品久久久久| 99久久综合精品| 日本伊人色综合网| 国产欧美1区2区3区| 欧亚一区二区三区| 国产一区二区在线电影| 亚洲美女淫视频| 日韩一级在线观看| 99久久精品免费看国产免费软件| 亚洲v中文字幕| 日本一区二区在线不卡| 欧美日韩一区精品| 国产福利91精品一区| 一区二区高清免费观看影视大全 | 婷婷开心激情综合| 久久久噜噜噜久久人人看| 色呦呦日韩精品| 国产一区二区91| 亚洲高清在线精品| 国产精品二三区| 亚洲精品在线网站| 欧美无砖专区一中文字| 国产91精品免费| 日韩高清在线一区| 亚洲品质自拍视频| 国产欧美精品日韩区二区麻豆天美| 欧美剧情电影在线观看完整版免费励志电影 | 美女一区二区久久| 亚洲三级电影网站| 久久综合九色综合欧美98| 色天天综合色天天久久| 国产成a人亚洲精品| 日本视频一区二区| 亚洲一区二区在线免费看| 中文天堂在线一区| 精品国产99国产精品| 欧美日韩mp4| 91小视频在线免费看| 国产99久久精品| 蜜桃免费网站一区二区三区| 亚洲图片欧美视频| 亚洲日本丝袜连裤袜办公室| www成人在线观看| 制服丝袜亚洲播放| 欧美麻豆精品久久久久久| 色综合久久中文综合久久97| 懂色av一区二区三区免费观看| 久久爱www久久做| 麻豆精品在线播放| 免费观看在线综合色| 亚洲国产综合视频在线观看| 亚洲男人天堂av网| 一区在线播放视频| 2欧美一区二区三区在线观看视频| 欧美精品欧美精品系列| 欧美日韩一区二区三区在线看| 欧美午夜在线一二页| 欧亚洲嫩模精品一区三区| 欧美亚洲动漫另类| 欧美日韩高清在线播放| 7777精品伊人久久久大香线蕉超级流畅 | 欧美激情一区二区三区在线| 久久夜色精品一区| 久久日韩精品一区二区五区| 国产日韩一级二级三级| 亚洲国产成人午夜在线一区| 国产免费久久精品| 国产精品久久久爽爽爽麻豆色哟哟| 欧美一级片在线看| 精品理论电影在线观看| 久久美女艺术照精彩视频福利播放 | 亚洲在线视频免费观看| 一区二区三区在线影院| 香蕉影视欧美成人| 麻豆成人91精品二区三区| 国内精品免费在线观看| 国产成人8x视频一区二区| 99久久国产综合精品女不卡| 欧美系列一区二区| 日韩午夜在线观看| 久久这里只有精品6| 国产三级三级三级精品8ⅰ区| 国产精品久久久久影院色老大| 亚洲精品国产精华液| 免费一级欧美片在线观看| 精品一区二区三区的国产在线播放| 国内精品不卡在线| 成人激情免费视频| 欧美色综合影院| 日韩视频一区二区三区在线播放 | 久久亚洲私人国产精品va媚药| 日本一区二区电影| 亚洲精品成人悠悠色影视| 午夜视频久久久久久| 久久精品99久久久| 91在线一区二区三区| 91.成人天堂一区| 国产午夜亚洲精品不卡| 一区二区三区在线高清| 美国十次了思思久久精品导航| 国产丶欧美丶日本不卡视频| 在线视频国内一区二区| 精品国产乱码久久久久久老虎 | 欧美一区二区三级| 亚洲国产成人午夜在线一区| 无吗不卡中文字幕| 成人夜色视频网站在线观看| 欧美精品久久99久久在免费线 | 亚洲精品欧美综合四区| 日本女人一区二区三区| 99视频一区二区三区| 日韩精品一区在线| 亚洲影院久久精品| 成人综合在线观看| 日韩午夜激情免费电影| 亚洲在线观看免费| 懂色av一区二区三区免费观看| 欧美久久久久免费| 中文字幕在线不卡视频| 国产尤物一区二区| 91精品国产一区二区人妖| 亚洲男帅同性gay1069| 成人在线综合网| 精品国产一区二区在线观看| 日韩在线观看一区二区| 色久优优欧美色久优优| 国产精品乱码人人做人人爱| 蜜桃av一区二区在线观看| 欧美日韩成人综合| 一个色综合av| 在线亚洲人成电影网站色www| 国产区在线观看成人精品| 久久er精品视频| 日韩一区二区三区高清免费看看| 一区二区三区在线观看国产| 91日韩一区二区三区| 日韩理论片网站| 99久久99久久综合| 国产精品情趣视频| 成人性生交大片免费看中文网站| 精品乱人伦小说| 国内精品国产成人| 久久综合精品国产一区二区三区| 理论电影国产精品| 欧美大片在线观看一区二区| 日本不卡视频一二三区| 欧美麻豆精品久久久久久| 亚洲成人手机在线| 欧美欧美欧美欧美首页| 亚洲成av人综合在线观看| 欧美四级电影在线观看| 天天综合天天综合色| 678五月天丁香亚洲综合网| 亚州成人在线电影| 日韩午夜三级在线| 国产九九视频一区二区三区| 国产亚洲va综合人人澡精品| 成人av资源在线| 亚洲色图.com| 欧美性猛交xxxxxx富婆| 天堂成人国产精品一区| 欧美一级淫片007| 国产精品一级二级三级| 欧美国产欧美综合| 91网站黄www| 婷婷中文字幕一区三区| 精品国产免费一区二区三区香蕉| 国产综合久久久久影院| 中文字幕第一区| 色婷婷av一区二区三区gif| 日日夜夜精品免费视频| 欧美精品一区二区高清在线观看| 成人自拍视频在线| 亚洲国产精品欧美一二99| 欧美一区二区日韩一区二区| 国产黄色精品网站| 一区二区三区中文在线观看| 欧美一区二区三区免费| 国产精品资源在线| 亚洲黄一区二区三区| 日韩一区二区在线免费观看| 丰满白嫩尤物一区二区| 亚洲一区二区四区蜜桃| 精品国产91亚洲一区二区三区婷婷|