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

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

?? bluetoothadvertiser.cpp

?? 一個學習Symbian很好的例子
?? CPP
字號:
/**
*
* @brief Definition of CBluetoothAdvertiser
*
* Copyright (c) EMCC Software Ltd 2003
* @version 1.0
*/

#include <bt_sock.h>
#include "BluetoothAdvertiser.h"
#include "BluetoothDefinitions.h"


// Constants
const TUint KStateFullyUnused = 0xFF;
const TUint KStateFullyUsed   = 0x00;

/**
* Constructor.
* Private constructor.
* @see NewL
* @see NewLC
* @param none
* @return none
**/
CBluetoothAdvertiser::CBluetoothAdvertiser()
: iRecord(0),
  iIsConnected(EFalse)
	{
	}

/**
* Destructor.
* Stop Advertising and cleanup sessions to Service Discovery Database
* @param none
* @return none
**/
CBluetoothAdvertiser::~CBluetoothAdvertiser()
	{
	if (IsAdvertising())
		{
		TRAPD(err,StopAdvertisingL());
		}

	iSdpDatabase.Close();
	iSdpSession.Close();
	}

/**
* Factory Constructor.
* Only available way to construct class.
* This function can leave L
* @param none
* @return new instance of the CBluetoothAdvertiser
*/
CBluetoothAdvertiser* CBluetoothAdvertiser::NewL()
	{
	CBluetoothAdvertiser* self = CBluetoothAdvertiser::NewLC();
	CleanupStack::Pop(self);
	return self;
	}
/**
* Factory Constructor.
* Only available way to construct class.
* This function can leave L.
* @param none
* @return new instance of the CBluetoothAdvertiser, this is also left on the cleanup stack C
*/
CBluetoothAdvertiser* CBluetoothAdvertiser::NewLC()
	{
	CBluetoothAdvertiser* self = new (ELeave) CBluetoothAdvertiser();
	CleanupStack::PushL(self);
	self->ConstructL();
	return self;
	}

/**
* Second Stage Constructor.
* This function can leave L
* @param none
* @see NewL
* @see NewLC
* @param none
* @return none
*/
void CBluetoothAdvertiser::ConstructL()
	{
	}

/**
* Connect Method
* If not presently connected open a session on the Service Discovery Database
**/
void CBluetoothAdvertiser::ConnectL()
	{
	if (!iIsConnected)
		{
		User::LeaveIfError(iSdpSession.Connect());
		User::LeaveIfError(iSdpDatabase.Open(iSdpSession));
		iIsConnected = ETrue;
		}
	}

/**
* Start Advertising.
* Create Service Record, add attributes, and enter into the Service Discovery Database
* @param aPort the port number to advertise
* @return none
**/
void CBluetoothAdvertiser::StartAdvertisingL(TInt aPort)
	{
	if (IsAdvertising())
		{
		// could be advertising on a different port
		StopAdvertisingL();
		}
	if (! iIsConnected)
		{
		ConnectL();
		}

	iSdpDatabase.CreateServiceRecordL(KServiceClass, iRecord);

	// add a Protocol to the record
	CSdpAttrValueDES* vProtocolDescriptor = CSdpAttrValueDES::NewDESL(NULL);
	CleanupStack::PushL(vProtocolDescriptor);

	BuildProtocolDescriptionL(vProtocolDescriptor,aPort);

	iSdpDatabase.UpdateAttributeL(iRecord, KSdpAttrIdProtocolDescriptorList, *vProtocolDescriptor);

	CleanupStack::PopAndDestroy(vProtocolDescriptor);

	// Add a name to the record
	iSdpDatabase.UpdateAttributeL(iRecord,
								  KSdpAttrIdBasePrimaryLanguage+KSdpAttrIdOffsetServiceName,
								  KServiceName);

	// Add a description to the record
	iSdpDatabase.UpdateAttributeL(iRecord,
								  KSdpAttrIdBasePrimaryLanguage+KSdpAttrIdOffsetServiceDescription,
								  KServiceDescription);
	}

/**
* Update Availability.
* Toggle function for the availability of Bluetooth Service
* @param aIsAvailable a boolean representing the availablity of the service
* @return none
**/
void CBluetoothAdvertiser::UpdateAvailabilityL(TBool aIsAvailable)
	{
	TUint state;
	if (aIsAvailable)
		{
		state = KStateFullyUnused;
		}
	else
		{
		state = KStateFullyUsed;	// Fully used -> can't connect
		}

	// Update the availibility attribute field
	iSdpDatabase.UpdateAttributeL(iRecord, KSdpAttrIdServiceAvailability, state);

	// Mark the record as changed - by increasing its state number (version)
	iSdpDatabase.UpdateAttributeL(iRecord, KSdpAttrIdServiceRecordState, ++iRecordState);
	}

/**
* Stop Advertising.
* Used when a connection is made (to avoid multiple connections) or when closing down advertiser
* @param none
* @return none
**/
void CBluetoothAdvertiser::StopAdvertisingL()
	{
	if (IsAdvertising())
		{
		iSdpDatabase.DeleteRecordL(iRecord);
		iRecord = 0;
		}
	}


/**
* Build Protocol Description.
* Builds the Data Element Sequence for the KSdpAttrIdProtocolDescriptorList attribute of Bluetooth Service record
* @param aProtocolDescriptor a pointer to the protocol descriptor to be populated with data
* @param aPort the port number to advertise
* @return none
**/
void CBluetoothAdvertiser::BuildProtocolDescriptionL(CSdpAttrValueDES* aProtocolDescriptor, TInt aPort)
	{
	TBuf8<1> channel;
	channel.Append((TChar)aPort);

	aProtocolDescriptor
	->StartListL()	// List of protocols required for this method
		->BuildDESL()
		->StartListL()	// Details of lowest level protocol
			->BuildUUIDL(KL2CAP)
		->EndListL()

		->BuildDESL()
		->StartListL()
			->BuildUUIDL(KRFCOMM)
			->BuildUintL(channel)
		->EndListL()
	->EndListL();
	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美成人午夜| 成人欧美一区二区三区小说| 丁香婷婷综合激情五月色| 亚洲人成网站影音先锋播放| 91精品国产色综合久久ai换脸| 成人性视频免费网站| 免费av成人在线| 亚洲精选视频免费看| 久久免费午夜影院| 在线播放日韩导航| 91女厕偷拍女厕偷拍高清| 国产精品2024| 另类小说图片综合网| 亚洲一级不卡视频| 亚洲色图清纯唯美| 欧美激情在线看| 久久综合久久99| 日韩欧美你懂的| 日韩一区二区在线观看视频 | 国产欧美精品一区二区三区四区| 欧美日韩在线观看一区二区| 不卡av免费在线观看| 国产一区二区三区黄视频| 日本不卡一区二区三区高清视频| 亚洲午夜久久久久久久久久久| 亚洲欧洲无码一区二区三区| 国产婷婷色一区二区三区| 欧美白人最猛性xxxxx69交| 欧美福利一区二区| 欧美日韩免费不卡视频一区二区三区| 91视频一区二区三区| 波多野结衣中文一区| 成人av午夜影院| 成人高清视频在线| 国产成人免费视频精品含羞草妖精| 精一区二区三区| 黑人精品欧美一区二区蜜桃| 国内不卡的二区三区中文字幕| 久久国产精品色| 韩国精品一区二区| 国产一二三精品| 国产不卡在线一区| 99久久99久久久精品齐齐 | 91麻豆精品国产91久久久使用方法 | 老司机精品视频在线| 免费精品视频在线| 久久99国内精品| 国产精品一区二区无线| 国产成人精品亚洲777人妖| 成人永久免费视频| 99热精品国产| 在线免费观看日本一区| 欧美日韩高清在线| 欧美成人高清电影在线| 久久久久九九视频| 自拍偷在线精品自拍偷无码专区| 一区二区三区日韩在线观看| 亚洲丶国产丶欧美一区二区三区| 日韩二区三区四区| 国产呦萝稀缺另类资源| 97久久超碰国产精品电影| 91久久国产最好的精华液| 欧美日韩一级片在线观看| 日韩亚洲欧美中文三级| 国产欧美一区二区三区在线老狼| 综合久久久久综合| 秋霞电影一区二区| 国产成人亚洲精品青草天美| 色噜噜狠狠色综合欧洲selulu| 欧美精品国产精品| 久久久亚洲精品石原莉奈| 亚洲日本va在线观看| 日韩在线a电影| 成人午夜视频网站| 欧美三级欧美一级| 久久精品视频网| 亚洲一区二区三区四区的| 伦理电影国产精品| 99精品欧美一区二区三区小说| 555夜色666亚洲国产免| 国产亚洲精品免费| 亚洲va欧美va人人爽午夜| 国产一区二区在线视频| 欧美亚洲一区二区在线观看| 久久免费看少妇高潮| 一区二区在线电影| 韩国女主播成人在线| 欧美亚洲丝袜传媒另类| 久久久精品日韩欧美| 午夜精品在线视频一区| 成人黄色免费短视频| 欧美一级理论片| 一区二区免费在线播放| 国产一本一道久久香蕉| 欧美精品免费视频| 亚洲欧美激情一区二区| 精品一区二区在线免费观看| 欧美三电影在线| 中文字幕一区二区三区视频| 久久机这里只有精品| 欧美亚洲国产一区二区三区| 国产日产精品一区| 久久精品久久综合| 欧美日韩国产影片| 综合激情成人伊人| 国产成人精品网址| 精品国产一区二区三区久久影院| 亚洲在线视频一区| eeuss鲁一区二区三区| 精品99一区二区三区| 三级精品在线观看| 欧美中文字幕一区| 亚洲日本在线天堂| 99久久精品国产毛片| 国产亚洲欧美日韩俺去了| 人人超碰91尤物精品国产| 欧美亚洲综合网| 又紧又大又爽精品一区二区| 成人自拍视频在线| 欧美激情一区不卡| 国产一区二区精品久久99| 91精品国产综合久久久久久久久久| 亚洲另类在线一区| 97精品国产露脸对白| 中文字幕永久在线不卡| 成人午夜视频网站| 国产午夜一区二区三区| 狠狠色综合色综合网络| 精品国产91乱码一区二区三区 | 欧美唯美清纯偷拍| 亚洲综合色婷婷| 欧美中文字幕一区二区三区亚洲 | 亚洲乱码国产乱码精品精小说| 成人av在线网站| 亚洲天堂福利av| 92国产精品观看| 亚洲欧美另类久久久精品| 色综合久久久久综合| 中文字幕一区二区在线播放| 91在线视频在线| 亚洲精品一二三四区| 91行情网站电视在线观看高清版| 一区二区三区精品视频在线| 欧美日精品一区视频| 日精品一区二区三区| 日韩精品一区二| 国产精品一区在线观看你懂的| 日本一区二区三区久久久久久久久不| 成人一区在线看| 一区二区三区四区在线免费观看| 色诱视频网站一区| 亚洲二区在线视频| 日韩一区二区三| 高清不卡在线观看| 亚洲免费观看高清在线观看| 欧美丝袜丝nylons| 日本视频一区二区| 久久久久免费观看| 91在线视频观看| 香蕉加勒比综合久久| 欧美精品一区二区三区蜜臀| 成人免费视频一区| 亚洲国产精品天堂| 久久综合一区二区| 91免费观看视频| 日韩高清不卡一区| 国产精品无码永久免费888| 色综合天天综合网国产成人综合天| 亚洲妇熟xx妇色黄| 久久奇米777| 91电影在线观看| 麻豆久久久久久久| 亚洲欧洲精品一区二区三区不卡| 欧美日韩高清一区二区三区| 国产精品综合二区| 亚洲国产一区视频| 久久先锋资源网| 欧美性生活影院| 国产精品资源网站| 亚洲国产日韩一区二区| 国产日韩三级在线| 91精品国产综合久久福利软件| 国产成人精品亚洲777人妖| 亚洲v中文字幕| 国产精品色一区二区三区| 欧美日本一区二区三区四区 | 成人精品视频.| 亚洲国产日韩精品| 中文字幕乱码亚洲精品一区| 欧美日韩aaaaa| 91小视频免费观看| 国产一区二区三区久久悠悠色av| 亚洲一区二区在线视频| 国产亚洲一区字幕| 欧美高清视频一二三区| jvid福利写真一区二区三区| 毛片不卡一区二区| 亚洲精品第一国产综合野| 久久久亚洲精品一区二区三区| 91精品国产色综合久久不卡蜜臀|