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

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

?? controller.cpp

?? 《SymbianOSC手機應用開發》源碼
?? CPP
字號:
// controller.cpp
//
// Copyright (c) 2000 Symbian Ltd.  All rights reserved.
//

#include "controller.h"
#include "appview.h"

#include <eikenv.h>
#include <eiklabel.h>
#include <gdp.h>

enum TPanic {
	ESetupMeNotBlank,
	EInitiateNotBlank,
	EListenNotBlank,
	EReceiveWhenBlank,
	ESendNotBound,
	};

void Panic(TInt aPanic)
	{
	_LIT(KPanicCategory,"GSDPCHAT control");
	User::Panic(KPanicCategory, aPanic);
	}

// Controller

void CGameController::ConstructL(CGameEngine* aEngine, CEikAppUi* aAppUi)
	{
	// store cached pointers
	iEngine=aEngine;
	iAppUi=aAppUi;
	iGsdp.ConnectL(*this);
	iEnv=CEikonEnv::Static();
	// construct app view
    iAppView=new(ELeave) CGameAppView;
    iAppView->ConstructL(iEngine, iAppUi->ClientRect());
	iAppUi->AddToStackL(iAppView);
	}

CGameController::~CGameController()
	{
	iGsdp.Close();
	iAppUi->RemoveFromStack(iAppView);
    delete iAppView;
	}

// session control

void CGameController::Reset() // set to blank, loopback, my-address from document
	{
	if (iEngine->State()==CGameEngine::EBlank)
		return;
	iGsdp.StopListening();
	iEngine->Reset();
	iEngine->SetGdpProtocol(KGdpLoopbackUid);
	SetEngineL(iEngine);
	}

void CGameController::SetupMeL(TUid aProtocol)
	{
	__ASSERT_ALWAYS(iEngine->IsBlank(), Panic(ESetupMeNotBlank));
	iGsdp.SetGdpProtocol(aProtocol);
	iEngine->SetGdpProtocol(aProtocol);
	}

// The underlying protocol uses 8 bit descriptors. We exchange ascii text messages
// and ascii text network addresses, so we use a simple scheme to convert between the
// two sizes. Within the app & engine we keep cached copies of info in the native size
HBufC16* NewHBufC16LC(const TDesC8& aDataBuffer)
	{
	HBufC16* buffer = HBufC16::NewLC(aDataBuffer.Length());
	TPtr16 buffer_ptr(buffer->Des());
	buffer_ptr.Copy(aDataBuffer);
	return buffer;
	}


HBufC8* NewHBufC8LC(const TDesC16& aDataBuffer)
	{
	HBufC8* buffer = HBufC8::NewLC(aDataBuffer.Length());
	TPtr8 buffer_ptr(buffer->Des());
	buffer_ptr.Copy(aDataBuffer);
	return buffer;
	}

void CGameController::InitiateL(const TDesC& aOtherAddress, const TDesC& aSentString)
	{
	__ASSERT_ALWAYS(iEngine->IsBlank(), Panic(EInitiateNotBlank));
	TUint32 myPort=iGsdp.AllocMyNextPort();

	// the app UI and engine works with 16bit descriptors
	HBufC8* sent8 = NewHBufC8LC(aSentString);
	HBufC8* addr8 = NewHBufC8LC(aOtherAddress);
	
	iGsdp.SetOtherAddress(*addr8);
	iGsdp.Send(*sent8);
	iGsdp.Listen();

	iEngine->SetInitiatingL(myPort, aOtherAddress, aSentString);
	iAppView->iLastSentLabel->SetTextL(aSentString);
	iAppView->DrawNow();

	CleanupStack::PopAndDestroy(2);
	}

void CGameController::Listen()
	{
	__ASSERT_ALWAYS(iEngine->IsBlank(), Panic(EListenNotBlank));
	iGsdp.Listen();
	iEngine->SetListeningL();
	}

void CGameController::ReceiveAll()
	{
	iGsdp.ReceiveAll();
	}

// model update

void CGameController::SetEngineL(CGameEngine* aEngine)
	{
	iEngine=aEngine;
	iGsdp.StopListening();
	iGsdp.SetGdpProtocol(iEngine->GetGdpProtocol());
	iGsdp.SetMyPort(iEngine->MyPort());

	HBufC8* other_address = NewHBufC8LC(iEngine->OtherAddress());
	
	iGsdp.SetOtherAddress(*other_address);
	iGsdp.SetOtherPort(iEngine->OtherPort());
	if (!iEngine->IsBlank())
		iGsdp.Listen();
	iAppView->SetEngineL(iEngine);

	CleanupStack::PopAndDestroy();
	}

// MGameCommsCmdHandler stuff

void CGameController::GsdpHandleL(const TDesC8& aString)
	{
	__ASSERT_ALWAYS(!iEngine->IsBlank(), Panic(EReceiveWhenBlank));
	User::Beep(440,250000);
	// complete initiation if necessary
	if (iEngine->IsInitiating())
		{
		// ... ?
		TUint32 otherPort=iGsdp.GetOtherPort();
		iEngine->BindAfterInitiatingL(otherPort);
		}
	// complete listening if necessary
	if (iEngine->IsListening())
		{
		TUint32 myPort=iGsdp.AllocMyNextPort();
		TBuf8<KMaxGsdpAddress> otherAddress;
		iGsdp.GetOtherAddress(otherAddress);
		TUint32 otherPort=iGsdp.GetOtherPort();
		HBufC16* addr16 = NewHBufC16LC(otherAddress);
		iEngine->BindAfterListeningL(myPort, *addr16, otherPort);
		CleanupStack::PopAndDestroy();
		}
	// in any case, handle receive

	HBufC* buffer=HBufC::NewLC(aString.Length());
	TPtr buffer_ptr(buffer->Des());
	buffer_ptr.Copy(aString);

	iEngine->SetLastReceivedL(buffer_ptr);
	iAppView->iLastReceivedLabel->SetTextL(buffer_ptr);
	iAppView->DrawNow();

	CleanupStack::PopAndDestroy();
	}

// app UI commands

void CGameController::CmdSendMessageL(const TDesC& aString)
	{
	__ASSERT_ALWAYS(iEngine->IsBound(), Panic(ESendNotBound));
	iEngine->SetLastSentL(aString);
	iAppView->iLastSentLabel->SetTextL(aString);
	iAppView->DrawNow();
	
	HBufC8* buffer = HBufC8::NewLC(aString.Length());
	TPtr8 buffer_ptr(buffer->Des());
	buffer_ptr.Copy(aString);

	iGsdp.Send(buffer_ptr);

	CleanupStack::PopAndDestroy();
	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品乱码人人做人人爱| 欧美性色综合网| 美女www一区二区| 亚洲另类春色国产| 亚洲日本韩国一区| 亚洲品质自拍视频| 一区二区三区成人| 亚洲第一成人在线| 香蕉加勒比综合久久| 午夜精品久久久| 日本不卡视频在线| 激情五月婷婷综合网| 国产一区福利在线| 成人一级黄色片| av不卡在线观看| 在线视频观看一区| 欧美日韩大陆一区二区| 欧美人妇做爰xxxⅹ性高电影| 欧美精品v国产精品v日韩精品| 欧美日韩国产影片| 欧美哺乳videos| 国产精品视频免费看| 亚洲免费伊人电影| 日韩精品欧美成人高清一区二区| 日韩成人一级片| 国产自产2019最新不卡| 粉嫩欧美一区二区三区高清影视| 色狠狠桃花综合| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲妇女屁股眼交7| 性欧美大战久久久久久久久| 精品无人区卡一卡二卡三乱码免费卡| 国产精品99久久久久久久女警 | 91精品国产乱码| 国产性天天综合网| 一区二区三区在线免费视频| 麻豆国产欧美日韩综合精品二区 | 亚洲人成精品久久久久| 蜜臀av国产精品久久久久| 国产成人在线视频网址| 欧美日韩三级视频| 欧美国产1区2区| 日韩国产精品久久| 波多野结衣在线aⅴ中文字幕不卡| 欧美专区日韩专区| 中文字幕免费一区| 日本成人中文字幕在线视频| 成人的网站免费观看| 制服.丝袜.亚洲.另类.中文| 国产精品免费视频观看| 蜜臀av一区二区三区| 欧美午夜理伦三级在线观看| 中文字幕国产精品一区二区| 爽好久久久欧美精品| 91蜜桃婷婷狠狠久久综合9色| 日韩精品一区二区三区在线| 亚洲国产一区二区视频| 成人开心网精品视频| 欧美成人精品福利| 天堂av在线一区| 在线亚洲+欧美+日本专区| 国产精品午夜春色av| 毛片av中文字幕一区二区| 精品视频免费在线| 一区二区三区欧美亚洲| 91免费版在线看| 国产精品视频免费看| 成人免费黄色在线| 久久新电视剧免费观看| 九色综合国产一区二区三区| 在线电影院国产精品| 亚洲mv大片欧洲mv大片精品| 日本丶国产丶欧美色综合| 亚洲欧美日韩国产另类专区| 成人av手机在线观看| 国产精品理伦片| av不卡在线播放| 一区二区三区中文在线观看| 色狠狠综合天天综合综合| 自拍偷拍亚洲激情| 在线视频一区二区三| 一区二区三区精品视频在线| 色就色 综合激情| 日韩电影一区二区三区四区| 日韩一区二区在线观看视频| 麻豆国产精品官网| 久久久美女毛片| 不卡一区二区三区四区| 亚洲欧美日韩一区二区三区在线观看| 色美美综合视频| 午夜国产不卡在线观看视频| 欧美一级精品大片| 国产精品一线二线三线| 国产精品毛片大码女人| 欧美亚洲综合一区| 蜜桃一区二区三区四区| 亚洲国产精品二十页| 日本韩国精品一区二区在线观看| 亚洲国产精品久久人人爱| 日韩欧美一区二区不卡| 国产91在线观看| 夜夜精品视频一区二区 | 91啪亚洲精品| 日韩中文字幕亚洲一区二区va在线| 欧美一区二区在线视频| 韩国女主播一区二区三区| 国产精品久线在线观看| 777午夜精品视频在线播放| 国产精品白丝av| 亚洲国产精品久久久久秋霞影院| 欧美岛国在线观看| 99综合影院在线| 蜜芽一区二区三区| 中文字幕在线播放不卡一区| 7777精品久久久大香线蕉| 国产精品一区二区不卡| 亚洲超碰精品一区二区| 国产婷婷色一区二区三区| 欧美日韩久久久| 国产不卡视频在线播放| 石原莉奈在线亚洲三区| 国产精品久久久久久妇女6080| 欧美猛男男办公室激情| 99久久精品免费看国产 | 一本到高清视频免费精品| 视频一区在线视频| 自拍偷拍亚洲综合| 国产欧美一区二区精品忘忧草 | 午夜精品久久久久| 亚洲视频小说图片| 久久综合狠狠综合久久综合88| 欧美视频完全免费看| 成人av网站免费观看| 国产剧情一区二区三区| 日韩高清欧美激情| 无吗不卡中文字幕| 亚洲精品国产一区二区三区四区在线| 久久精品水蜜桃av综合天堂| 日韩三级中文字幕| 欧美日韩一级片网站| 色成年激情久久综合| 色综合久久久网| 97久久精品人人做人人爽| 成人中文字幕电影| 国产成人精品午夜视频免费| 国产在线播精品第三| 激情综合五月天| 国产一区二区主播在线| 国产一区在线看| 国产精品69久久久久水密桃| 九九九精品视频| 激情六月婷婷综合| 国产一区二区美女| 丁香六月综合激情| 成人精品一区二区三区四区| 国产99久久久精品| 成人精品免费网站| 色天天综合色天天久久| 一本色道a无线码一区v| 色婷婷综合久久| 欧美日韩一区二区三区在线看 | 日本道在线观看一区二区| 99精品在线免费| 色综合中文字幕国产| 色婷婷综合久色| 欧美日韩免费观看一区三区| 欧美欧美欧美欧美首页| 日韩亚洲欧美综合| 久久综合九色综合97_久久久| 国产欧美视频一区二区| 亚洲免费av在线| 首页国产丝袜综合| 久久国产三级精品| 成人av在线一区二区三区| 91国偷自产一区二区三区成为亚洲经典| 91激情五月电影| 欧美一级艳片视频免费观看| 精品精品欲导航| 国产精品成人一区二区艾草| 午夜成人免费视频| 粉嫩av一区二区三区在线播放 | 日韩欧美一区二区在线视频| 久久久www免费人成精品| 综合自拍亚洲综合图不卡区| 亚洲成人激情社区| 国产精品456露脸| 欧美日本一道本| 国产日韩影视精品| 图片区小说区国产精品视频| 国产精品资源网站| 欧美视频精品在线观看| 久久久五月婷婷| 亚洲午夜成aⅴ人片| 国产成人午夜高潮毛片| 色综合 综合色| 26uuu欧美| 午夜精品成人在线视频| 91丨porny丨国产入口| 精品国产乱码久久久久久老虎 | 欧美视频中文字幕|