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

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

?? hid_mouse_sm.c

?? 藍牙鼠標的例程
?? C
字號:
/****************************************************************************
Copyright (C) Cambridge Silicon Radio Ltd. 2005-2006
Part of BlueLab 3.5.2-release

FILE NAME
    hid_mouse_sm.c        
DESCRIPTION
    This file contains the state machine functions.
NOTES

*/

/****************************************************************************
    Header files
*/
#include "hid_mouse.h"
#include "hid_mouse_sm.h"

/*************************************************************************
NAME    
    appHandleDeferedAction
DESCRIPTION
    This function is called to check if there is a defered actions.
RETURNS
    void     
*/
static void appHandleDeferedAction(appTaskData *theApp)
{
    /* Check if we have an unplug pending */
    if (theApp->unplug_pending)
    {
        /* Clear flag */
        theApp->unplug_pending = FALSE;

        /* Resend unplug message to ourselves */
        MessageSend(&theApp->task, APP_INTERNAL_UNPLUG_IND, 0);
    }

    /* Check if we have an shutdown pending */
    if (theApp->shutdown_pending)
    {
        /* Clear flag */
        theApp->shutdown_pending = FALSE;

        /* Resend unplug message to ourselves */
        MessageSend(&theApp->task, APP_INTERNAL_SHUTDOWN_IND, 0);
    }
}

/*************************************************************************
NAME    
    appExitInitialising   
DESCRIPTION
    This function is called on exit to the initialising state.
    Enables power hold.
RETURNS
    void     
*/
static void appExitInitialising(appTaskData *theApp)
{
#ifdef HID_MASK_POWER_HOLD
    /* Turn power supply on */
    PioSet(HID_MASK_POWER_HOLD, HID_MASK_POWER_HOLD);
#endif
}

/*************************************************************************
NAME    
    appEnterDiscoverable   
DESCRIPTION
    This function is called on entry to the discoverable state.
    Enables inquiry scan, and flashes LED.
RETURNS
    void     
*/
static void appEnterDiscoverable(appTaskData *theApp)
{
	MAIN_PRINT(("appEnterDiscoverable\n"));

    /* Delete all trusted devices */
    ConnectionSmDeleteAllAuthDevices(APP_MOUSE_ATTR_PS_BASE);
    
	/* Make this device discoverable (inquiry scan), and connectable (page scan) */
	ConnectionWriteScanEnable(hci_scan_enable_inq_and_page);

    /* Clear host and authorised addresses */
    BdaddrSetZero(&theApp->host_bd_addr);
    BdaddrSetZero(&theApp->auth_bd_addr);

     /* Start discoverable timeout */
    MessageSendLater(&theApp->task, APP_INTERNAL_DISCOVERABLE_TIMEOUT_IND, 0, D_SEC(APP_DISCOVERABLE_TIMEOUT));    

    /* Configure HID transform */    
   	SourceConfigure(StreamHidSource(), VM_SOURCE_HID_IDLE_MODE, 0);
	SourceConfigure(StreamHidSource(), VM_SOURCE_HID_SAMPLE_RATE, 0);

    /* Flash status LED */
    appLedUpdate(&theApp->led, 500, 500, 0);
}

/*************************************************************************
NAME    
    appExitDiscoverable   
DESCRIPTION
    Called on exit of discoverable state.  Disables inquiry and page scan.
RETURNS
    void     
*/
static void appExitDiscoverable(appTaskData *theApp)
{
	MAIN_PRINT(("appExitDiscoverable\n"));
    
    /* Make this device not connectable */
  	ConnectionWriteScanEnable(hci_scan_enable_off);

   /* Cancel discoverable timeout message */
    MessageCancelAll(&theApp->task, APP_INTERNAL_DISCOVERABLE_TIMEOUT_IND);

    /* Turn off status LED */
    appLedUpdate(&theApp->led, 0, -1, 0);
}

/*************************************************************************
NAME    
    appEnterCabledConnecting   
DESCRIPTION
    Called on entry to the connecting state.  Attempt to retreive the
    trusted device information.
RETURNS
    void     
*/
static void appEnterCabledConnecting(appTaskData *theApp)
{
    MAIN_PRINT(("appEnterCabledConnecting\n"));
           
    /* Attempt to get most recent host, don't care about associated attribute */
    ConnectionSmGetIndexedAttribute(APP_MOUSE_ATTR_PS_BASE, theApp->trusted_device_index, 0);    

    /* Configure HID transform */    
   	SourceConfigure(StreamHidSource(), VM_SOURCE_HID_IDLE_MODE, 0);
	SourceConfigure(StreamHidSource(), VM_SOURCE_HID_SAMPLE_RATE, 100);

    /* Flash status LED */
    appLedUpdate(&theApp->led, 100, 100, 0);
}

/*************************************************************************
NAME    
    appExitCabledConnecting   
DESCRIPTION
    Called on exit of the connecting state.
RETURNS
    void     
*/
static void appExitCabledConnecting(appTaskData *theApp)
{
	MAIN_PRINT(("appExitCabledConnecting\n"));
    
    /* Turn off status LED */
    appLedUpdate(&theApp->led, 0, -1, 0);
}

/*************************************************************************
NAME    
    appEnterCabledConnected  
DESCRIPTION
    Called on entry to the connected state.
    Initialises the keyboard state and configures and connects the HID
    transform.
RETURNS
    void     
*/
static void appEnterCabledConnected(appTaskData *theApp)
{
	MAIN_PRINT(("appEnterCabledConnected\n"));
    
    /* Set default led, idle rate and protocol */
    theApp->mouse_idle_rate = 0;
    theApp->mouse_protocol = hid_protocol_report;
    
    /* Configure HID transform */    
   	SourceConfigure(StreamHidSource(), VM_SOURCE_HID_IDLE_MODE, 0);
	SourceConfigure(StreamHidSource(), VM_SOURCE_HID_SAMPLE_RATE, 0xFFFF);

    /* Connect HID transform in interrupt sink */
    PanicFalse(StreamConnect(StreamHidSource(), theApp->interrupt_sink));

    /* Get clock offset */        
    ConnectionReadClockOffset(&theApp->task, theApp->interrupt_sink);
}

/*************************************************************************
NAME   
    appExitCabledConnected
DESCRIPTION
    This function is called when exiting the connected state, reconfigures
    the HID source to idle, and disconnects it from the interrupt sink.
RETURNS
    void     
*/
static void appExitCabledConnected(appTaskData *theApp)
{
	MAIN_PRINT(("appExitCabledConnected\n"));

    /* Disconnect HID tranform from interrupt sink */
   	StreamDisconnect(StreamHidSource(), theApp->interrupt_sink);
        
    /* Cancel unplug timeout message */
    MessageCancelAll(&theApp->task, APP_INTERNAL_UNPLUG_TIMEOUT_IND);
}

/*************************************************************************
NAME    
    appEnterCabledDisconnecting
DESCRIPTION
    This function is called on entry to the local disconnecting state.
    Initiates disconnection if HID connection.
RETURNS
    void     
*/
static void appEnterCabledDisconnecting(appTaskData *theApp)
{
    MAIN_PRINT(("appEnterCabledDisconnecting\n"));
    
    /* Disconnect HID connection */
    HidDisconnect(theApp->hid);
}

/*************************************************************************
NAME    
    appEnterCabledDisconnected
DESCRIPTION
    This function is called on entry to the connected state.  Make
    the device connectable.
RETURNS
    void     
*/
static void appEnterCabledDisconnected(appTaskData *theApp)
{
    MAIN_PRINT(("appEnterCabledDisconnected\n"));

    /* Configure HID transform */    
   	SourceConfigure(StreamHidSource(), VM_SOURCE_HID_IDLE_MODE, 0);
	SourceConfigure(StreamHidSource(), VM_SOURCE_HID_SAMPLE_RATE, 1000);

    /* Make this device not connectable */
  	ConnectionWriteScanEnable(hci_scan_enable_off);
}

/*************************************************************************
NAME    
    appEnterIdle
DESCRIPTION
    This function is called on entry to the idle state.
    Turn off power supply.
RETURNS
    void     
*/
static void appEnterIdle(appTaskData *theApp)
{
    MAIN_PRINT(("appEnterIdle\n"));

#ifdef HID_MASK_POWER_HOLD
  	/* Turn off power supply */
    PioSet(HID_MASK_POWER_HOLD, 0);
#endif

    /* Configure HID transform */    
   	SourceConfigure(StreamHidSource(), VM_SOURCE_HID_IDLE_MODE, 0);
	SourceConfigure(StreamHidSource(), VM_SOURCE_HID_SAMPLE_RATE, 0);
}

/*************************************************************************
NAME    
    appExitIdle   
DESCRIPTION
    This function is called on exit to the idle state.
    Enables power hold.
RETURNS
    void     
*/
static void appExitIdle(appTaskData *theApp)
{
#ifdef HID_MASK_POWER_HOLD
    /* Turn power supply on */
    PioSet(HID_MASK_POWER_HOLD, HID_MASK_POWER_HOLD);
#endif
}

/*************************************************************************
NAME    
    appSetState   
DESCRIPTION
    Called to change state.
    Handles calling the state entry and exit functions.
RETURNS
    void     
*/
void appSetState(appTaskData *theApp, app_state state)
{
    /* Handle state exit functions */
    switch (theApp->state)
    {
        case appInitialising:
            appExitInitialising(theApp);
            break;
        case appDiscoverable:
           	appExitDiscoverable(theApp);
            break;
        case appCabledConnecting:
            appExitCabledConnecting(theApp);
            break;
        case appCabledConnected:
            appExitCabledConnected(theApp);
            break;
		case appIdle:
			appExitIdle(theApp);
			break;
        default:
            break;
    }               
        
    /* Handle state entry functions */
    switch (state)
    {
	    case appDiscoverable:
          	appEnterDiscoverable(theApp);
            break;
        case appCabledConnecting:
            appEnterCabledConnecting(theApp);
            break;
        case appCabledConnected:
            appEnterCabledConnected(theApp);
            break;
        case appCabledDisconnecting:
            appEnterCabledDisconnecting(theApp);
            break;
        case appCabledDisconnected:
            appEnterCabledDisconnected(theApp);
            break;
        case appIdle:
            appEnterIdle(theApp);
        default:
            break;
    }               
 
    /* Set new state */
	theApp->state = state;

    /* Handle any defered actions */
    appHandleDeferedAction(theApp);
}

/*************************************************************************
NAME    
    appGetState   
DESCRIPTION
    Returns the current application state.
RETURNS
    app_state - Current state.   
*/
app_state appGetState(appTaskData *theApp)
{
	return theApp->state;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
制服丝袜一区二区三区| 精品久久久久99| 欧美大白屁股肥臀xxxxxx| 国产色婷婷亚洲99精品小说| 日本最新不卡在线| 国产欧美一区二区精品婷婷| 欧美三区在线视频| 国产精品99久久久久久有的能看| 亚洲三级在线免费| 日本韩国欧美国产| 肉色丝袜一区二区| 日本一区二区视频在线| 日韩欧美成人一区二区| 国产美女娇喘av呻吟久久| 国产精品区一区二区三| 色8久久精品久久久久久蜜| 裸体在线国模精品偷拍| 亚洲国产精品精华液ab| 色吧成人激情小说| 国产精品一区二区黑丝| 欧美三级日韩三级国产三级| 亚洲国产日日夜夜| 91福利社在线观看| 午夜欧美电影在线观看| 亚洲欧美日韩久久| 综合久久综合久久| 亚洲天堂免费看| 中文字幕在线视频一区| 国产精品日日摸夜夜摸av| 亚洲精品在线免费播放| 欧美日韩一区二区三区高清 | 国产欧美日韩在线| 精品午夜久久福利影院| 久久久久99精品国产片| 色综合久久99| 日本高清不卡视频| 亚洲三级电影全部在线观看高清| 成人黄色网址在线观看| 黑人巨大精品欧美黑白配亚洲| 日日摸夜夜添夜夜添精品视频| 一区二区三区资源| 亚洲欧美视频一区| 亚洲免费观看高清| 国产精品电影一区二区三区| 国产欧美日韩麻豆91| 久久久久久久综合日本| 欧美电影免费观看高清完整版 | 国产酒店精品激情| 日韩电影在线免费| 天堂一区二区在线免费观看| 亚洲女同ⅹxx女同tv| 亚洲国产精品传媒在线观看| 欧美精品一区二区三区四区| 欧美一区二区视频观看视频 | 久久国产综合精品| 日韩激情中文字幕| 日本欧美久久久久免费播放网| 亚洲午夜日本在线观看| 悠悠色在线精品| 亚洲美女一区二区三区| 亚洲少妇30p| 亚洲欧洲日产国码二区| 中文字幕一区二区日韩精品绯色| 久久久影视传媒| 久久精品免费在线观看| 中文字幕二三区不卡| 国产亚洲欧美在线| 欧美激情一区二区三区| 国产精品三级视频| 国产精品免费丝袜| 日韩美女视频一区| 亚洲丝袜制服诱惑| 亚洲精品免费在线观看| 综合久久国产九一剧情麻豆| 亚洲视频在线一区观看| 亚洲一区二区三区在线| 洋洋成人永久网站入口| 天天影视网天天综合色在线播放| 日本成人在线电影网| 黄一区二区三区| eeuss鲁片一区二区三区在线观看| 99久久久久免费精品国产| 欧美又粗又大又爽| 欧美三级日韩三级国产三级| 欧美剧情片在线观看| 欧美不卡一区二区三区| 国产日韩欧美一区二区三区综合| 亚洲欧美自拍偷拍色图| 亚瑟在线精品视频| 韩国午夜理伦三级不卡影院| 风间由美一区二区av101| 成人高清视频免费观看| 欧美日韩一区二区三区四区| 精品免费国产二区三区| 国产精品国产三级国产普通话三级 | 亚洲一区在线观看免费观看电影高清 | 色婷婷一区二区三区四区| 欧美午夜在线观看| 欧美成人精品福利| 国产精品国产自产拍在线| 亚洲成人一区在线| 韩国精品在线观看| 91片在线免费观看| 欧美日韩国产中文| 欧美韩日一区二区三区四区| 亚洲综合激情另类小说区| 久久91精品久久久久久秒播| 91年精品国产| 欧美电影免费观看完整版| 中文字幕在线不卡国产视频| 全国精品久久少妇| 福利91精品一区二区三区| 欧美日韩免费高清一区色橹橹 | 丁香激情综合国产| 欧美酷刑日本凌虐凌虐| 久久久久青草大香线综合精品| 性久久久久久久久| 成人黄页在线观看| 日韩欧美色电影| 亚洲精品视频一区| 精品一区免费av| 欧美唯美清纯偷拍| 亚洲国产成人午夜在线一区| 天堂av在线一区| 91视频在线观看免费| 久久伊人蜜桃av一区二区| 亚洲国产日韩av| 9人人澡人人爽人人精品| 欧美一区二区高清| 亚洲精品国产成人久久av盗摄 | 亚洲精品国产无天堂网2021 | 91在线视频观看| 精品国产91亚洲一区二区三区婷婷| 一个色在线综合| 丰满亚洲少妇av| 26uuu欧美日本| 美女国产一区二区三区| 97精品视频在线观看自产线路二| 欧美变态凌虐bdsm| 亚洲精品国产一区二区精华液| 美女网站色91| 在线不卡欧美精品一区二区三区| 国产喷白浆一区二区三区| 狂野欧美性猛交blacked| 欧美日韩高清影院| 亚洲成人你懂的| 91精品1区2区| 亚洲美女区一区| 成人午夜看片网址| 亚洲国产成人午夜在线一区 | 亚洲品质自拍视频网站| 成人激情综合网站| 日韩欧美国产精品一区| 免费成人在线视频观看| 在线电影院国产精品| 亚洲成人一二三| 欧美男人的天堂一二区| 亚洲欧洲日产国码二区| 91在线丨porny丨国产| 日韩毛片精品高清免费| 91啦中文在线观看| 亚洲精品中文在线观看| 日本高清成人免费播放| 夜夜亚洲天天久久| 欧美色欧美亚洲另类二区| 亚洲一区二区免费视频| 色香色香欲天天天影视综合网| 国产精品久久久久永久免费观看| 青青草视频一区| 日韩精品专区在线影院重磅| 精品一区二区三区影院在线午夜| 欧美日韩卡一卡二| 日本不卡的三区四区五区| 日韩一区二区在线看片| 国内久久婷婷综合| 欧美激情在线一区二区三区| 97精品国产露脸对白| 亚洲摸摸操操av| 欧美放荡的少妇| 久草精品在线观看| 亚洲国产高清在线观看视频| 色综合一区二区| 日本伊人色综合网| 精品福利视频一区二区三区| 久久精品国产**网站演员| 精品国产精品一区二区夜夜嗨| 国产一区美女在线| 中文字幕综合网| 欧美丝袜丝交足nylons| 麻豆精品一区二区综合av| 久久精品一区二区| 91国产免费观看| 久久精品国产亚洲a| 国产精品乱人伦一区二区| 欧美在线不卡视频| 激情综合色播激情啊| 欧美精品一区二区久久婷婷| 精品无码三级在线观看视频| 中文字幕免费观看一区| 欧美日韩不卡一区|