diff -r 5b153be919d4 -r e9b924a62a66 bluetooth/gavdp/test/activecallbackconsole.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bluetooth/gavdp/test/activecallbackconsole.cpp Wed Sep 01 12:38:54 2010 +0100 @@ -0,0 +1,74 @@ +// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +#include "activecallbackconsole.h" + +CActiveCallBackConsole::CActiveCallBackConsole(TInt(*aFunction)(TAny *aPtr, TChar aKey), TAny* aPtr) + : CActive(EPriorityStandard), iFunction(aFunction), iPtr(aPtr) + { + CActiveScheduler::Add(this); + } + + +CActiveCallBackConsole::~CActiveCallBackConsole() + { + Cancel(); + delete iConsole; + } + +CActiveCallBackConsole* CActiveCallBackConsole::NewL(TInt(*aFunction)(TAny *aPtr, TChar aKey), TAny* aPtr, const TDesC& aTitle,const TSize& aSize) + { + CActiveCallBackConsole* console = new (ELeave) CActiveCallBackConsole(aFunction, aPtr); + CleanupStack::PushL(console); + console->ConstructL(aTitle,aSize); + CleanupStack::Pop(); + return console; + } + +void CActiveCallBackConsole::ConstructL(const TDesC& aTitle,const TSize& aSize) + { + iConsole = Console::NewL(aTitle,aSize); + } + +void CActiveCallBackConsole::DoCancel() + { + iConsole->ReadCancel(); + } + +void CActiveCallBackConsole::RequestKey() + { + DrawCursor(); + iConsole->Read(iStatus); + SetActive(); + } + +void CActiveCallBackConsole::DrawCursor() + { + iConsole->Printf(_L(">>")); + } + +void CActiveCallBackConsole::RunL() + { + // key has been pressed + TChar ch = iConsole->KeyCode(); + (*iFunction)(iPtr, ch); + } + +TInt CActiveCallBackConsole::RunError(TInt aError) + { + iConsole->Printf(_L("Console error %d\nTrying again...\n"), aError); + RequestKey(); + return KErrNone; + }