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

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

?? ag_data.c

?? bluetooth audio gateway
?? C
字號:
#include "ag_private.h"
#include "ag_parse.h"
#include "ag.h"

#include <message.h>
#include <print.h>
#include <sched.h>
#include <string.h>


/*
    agSendATmessage

    Send an AT command to the remote device 
*/
uint16 agSendATmessage(const char *at_cmd, uint16 length)
{    
    uint16 sink_slack = SinkSlack(AGState.rfcDataOutgoing);

    {
        uint16 i=0;
        PRINT(("sendATmessage: len 0x%x", length));
        for (i=0; i<length; i++)
        {
            PRINT(("%c", at_cmd[i]));
        }
        PRINT(("\n"));
    }

    if (sink_slack >= length)
    {
        uint16 flush_result = 0;
        uint16 sink_offset = SinkClaim(AGState.rfcDataOutgoing, length);
        uint8 *data_out = SinkMap(AGState.rfcDataOutgoing);
        if (data_out != NULL)
        {

#ifdef BE_EVIL
            uint16 ix=0;
            for(ix=0; ix<length; ix++)
            {
                memcpy(data_out+sink_offset, at_cmd+ix, 1);
                flush_result = SinkFlush(AGState.rfcDataOutgoing, 1);            
                if (!flush_result)                                           
                    break;
            }
            PRINT(("flush result %d\n", flush_result));
            return flush_result;
#else
            memcpy(data_out+sink_offset, at_cmd, length);
            flush_result = SinkFlush(AGState.rfcDataOutgoing, length);            
            PRINT(("flush result %d\n", flush_result));            
            return flush_result;                                                                
#endif                            
        }
        else
        {
            PRINT(("SinkMap returned invalid data ptr\n"));            
            return 0;
        }                    
    }       
    else
    {
        PRINT(("Insufficient bytes available sink slack: 0x%x bytes\n", 
            sink_slack));        
        return 0;
    }   
}


/*
    handleSourceEvent

    Called by the scheduler when a source event occurs indicating there
    is incoming data available
*/
void handleSourceEvent(void)
{
	/* Check we think we're connected before handling RFCOMM data */
	if (agRfcommConnectedQuery() || agIsCurrentlyHandsFree())
	{
		uint16 length = SourceSize(AGState.rfcDataIncoming);
		
		{
			/* Used for debug only */
			uint16 i;
			const uint8 *data = SourceMap(AGState.rfcDataIncoming);
			data = data; /* keep the compiler happy */
			PRINT(("data to parse len 0x%x\n", length));
			for(i=0; i<length; i++)
			{
				PRINT(("%c ", data[i]));
			}
			PRINT(("\n"));
		}
        
		/* Only bother parsing if there's something to parse */
		while (length > 0)
		{    
			if (!parseSource(AGState.rfcDataIncoming, &AGState.remote_addr))
				break;
			
			length = SourceSize(AGState.rfcDataIncoming);
		}
	}
}


/*
    agDataReqAction

    This message (as received from the headset) does not contain any
    recognisable AT command so assume it contains application specific
    data and pass it as it is to the client.
*/
void agDataReqAction(uint16 length, const uint8 *data)
{
    /* Make sure we have a connection up */
    if (agRfcommConnectedQuery())
    {
        (void) agSendATmessage((char *)data, length);
    }
    else
    {
        /* otherwise send an error message */
        agSendErrorToClient(AgErrorUnexpectedPrimitive, 0);
    }
}


/*
    agButtonPressInd

    Button press message received, send it up to the client.
*/
void agButtonPressInd(BD_ADDR_T addr)
{   
    /* stop sending ring alerts */
    agStopRings();
    
    /* Inform the interface that a button press has been received */
    handleButtonPressInd(agGetConnectionHandle(&addr));
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人91在线观看| 色综合久久久久综合体| 精一区二区三区| 成人av在线电影| 337p亚洲精品色噜噜| 国产日韩成人精品| 亚洲成人动漫在线免费观看| 久久www免费人成看片高清| 成人黄色大片在线观看| 日韩一区二区三区观看| 亚洲国产精品二十页| 天堂资源在线中文精品| 国产ts人妖一区二区| 欧美一区二区三区日韩视频| 中文文精品字幕一区二区| 久久97超碰国产精品超碰| 欧美在线免费观看亚洲| 欧美国产一区二区在线观看| 美女精品一区二区| 在线视频一区二区免费| 有码一区二区三区| av一区二区不卡| 亚洲天堂精品在线观看| 亚洲mv大片欧洲mv大片精品| 秋霞电影一区二区| 久久69国产一区二区蜜臀| 日韩欧美一区二区三区在线| 国产成人免费av在线| 亚洲va欧美va天堂v国产综合| 99久久99久久精品免费观看| 久久久久青草大香线综合精品| 久久99国产精品久久99果冻传媒| 欧美视频在线播放| 亚洲va欧美va天堂v国产综合| 在线免费观看视频一区| 午夜精品久久久久久久蜜桃app| 97久久精品人人做人人爽50路| 中文字幕欧美激情| 丁香天五香天堂综合| 亚洲精选在线视频| 欧美亚洲日本国产| 国产麻豆一精品一av一免费| 69久久99精品久久久久婷婷 | 麻豆视频一区二区| 精品久久久久香蕉网| 免费在线观看精品| 国产亚洲一本大道中文在线| 国产精品中文字幕一区二区三区| wwww国产精品欧美| 99国产精品视频免费观看| 一卡二卡三卡日韩欧美| 日韩精品一区二区三区三区免费 | 久久久精品2019中文字幕之3| 国产制服丝袜一区| 亚洲午夜私人影院| 国产精品网站一区| 欧美一级电影网站| 欧美精品在线观看一区二区| 99久久亚洲一区二区三区青草| 老司机免费视频一区二区| 亚洲国产日韩a在线播放性色| √…a在线天堂一区| 欧美探花视频资源| 97久久精品人人做人人爽| 国产精品亚洲а∨天堂免在线| 亚洲国产精品天堂| 一区二区在线电影| 亚洲欧美另类久久久精品| 久久精品男人天堂av| 91精品国产综合久久小美女 | 国产精品久久久久三级| 日韩一级片在线观看| 在线观看91精品国产麻豆| 欧洲亚洲国产日韩| 欧美性猛片aaaaaaa做受| 91丨九色丨蝌蚪丨老版| 成人国产一区二区三区精品| 国产精品1区二区.| 国产一区二区网址| 日韩主播视频在线| 视频一区二区三区入口| 日本aⅴ亚洲精品中文乱码| 免费在线一区观看| 国产高清久久久久| av一区二区久久| 欧美巨大另类极品videosbest | 欧美成人官网二区| 久久精子c满五个校花| 综合色中文字幕| 亚洲国产精品久久久久婷婷884| 亚洲国产日韩av| av电影在线观看不卡| 成av人片一区二区| 亚洲国产欧美日韩另类综合 | 日韩欧美一区电影| 久久精品99久久久| 日韩精品一区二区三区中文不卡| 日韩精品一区第一页| 欧美日本在线一区| 日韩黄色在线观看| 91精品国产高清一区二区三区| 99精品在线观看视频| 亚洲精品视频在线| 欧美日韩久久不卡| 日韩成人av影视| 国产亚洲欧美日韩在线一区| 在线视频一区二区三| 一级女性全黄久久生活片免费| 欧美日韩视频第一区| 秋霞电影网一区二区| 中文字幕精品综合| 欧美日韩黄色影视| 国产在线视频精品一区| 久久久久久久久97黄色工厂| aa级大片欧美| 亚洲高清视频在线| 日韩精品一区二区三区四区| 国产成人自拍网| 亚洲国产精品人人做人人爽| 日韩免费高清av| 91免费视频观看| 日本色综合中文字幕| 国产亚洲精品中文字幕| 精品视频999| 99久久精品情趣| 精品一二三四在线| 亚洲午夜视频在线| 久久久久久97三级| 欧美日本免费一区二区三区| 国产成人在线影院| 久久99久久久欧美国产| 亚洲va欧美va人人爽午夜| 国产亚洲欧美日韩俺去了| 91精品国产手机| 欧美日韩国产首页| 91精品办公室少妇高潮对白| 国产成人日日夜夜| 久久超碰97人人做人人爱| 亚洲一区二区三区在线播放| 亚洲色图另类专区| 国产精品成人网| 国产亚洲精品aa| 2023国产精品自拍| 免费精品视频最新在线| 亚洲免费在线看| 亚洲线精品一区二区三区| 午夜亚洲国产au精品一区二区| 亚洲午夜久久久久久久久电影网 | 亚洲精品国产品国语在线app| 亚洲婷婷综合色高清在线| 亚洲美女少妇撒尿| 午夜国产不卡在线观看视频| 亚洲成av人影院| 久久精品国产精品亚洲综合| 久久99久久99小草精品免视看| 成人av网址在线| 欧美色倩网站大全免费| 日韩午夜在线观看| 国产日韩欧美精品在线| 怡红院av一区二区三区| 亚洲123区在线观看| 国产一区二区免费在线| 一本到不卡精品视频在线观看| 欧美日韩视频在线观看一区二区三区| 91麻豆精品国产综合久久久久久| 精品国精品国产尤物美女| 中国色在线观看另类| 亚洲素人一区二区| 久久精品国产免费| 色婷婷国产精品综合在线观看| 欧美日韩一区二区不卡| 国产欧美日产一区| eeuss鲁片一区二区三区| 欧美日韩国产精选| 国产精品不卡一区| 久久精品国产久精国产爱| 在线观看网站黄不卡| 国产喂奶挤奶一区二区三区| 五月天亚洲精品| 99麻豆久久久国产精品免费优播| 在线电影一区二区三区| 成人欧美一区二区三区在线播放| 国产自产v一区二区三区c| 欧美挠脚心视频网站| 最新不卡av在线| 懂色av中文一区二区三区 | 欧美午夜精品一区二区三区| 亚洲欧洲日韩在线| 成人激情文学综合网| 国产欧美一区二区三区鸳鸯浴 | 亚洲女同女同女同女同女同69| 另类中文字幕网| 91精品国产高清一区二区三区| 香蕉乱码成人久久天堂爱免费| 色婷婷亚洲一区二区三区| 亚洲人成网站色在线观看| 一本到不卡免费一区二区| 亚洲一区二区三区精品在线| 欧美日本在线观看| 极品美女销魂一区二区三区免费 |