--- /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;
+ }