diff -r 000000000000 -r 29b1cd4cb562 bluetooth/gavdp/test/tavsrcConsole.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bluetooth/gavdp/test/tavsrcConsole.cpp Fri Jan 15 08:13:17 2010 +0200 @@ -0,0 +1,191 @@ +// Copyright (c) 2007-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 "tavsrcConsole.h" +#include "tavsrc.h" + +#include + +#if defined (__WINS__) +#define PDD_NAME _L("ECDRV") +#define LDD_NAME _L("ECOMM") +#else // __GCC32__ +#define PDD_NAME _L("EUART1") +#define LDD_NAME _L("ECOMM") +#endif + +static RTest testOutcome(_L("Test results")); + +CActiveConsole::CActiveConsole(MActiveConsoleNotify& aNotify) + : CActive(EPriorityStandard), iNotify(aNotify) + { + CActiveScheduler::Add(this); + } + + +CActiveConsole::~CActiveConsole() + { + Cancel(); + delete iConsole; + } + +CActiveConsole* CActiveConsole::NewL(MActiveConsoleNotify& aNotify,const TDesC& aTitle,const TSize& aSize) + { + CActiveConsole* console = new (ELeave) CActiveConsole(aNotify); + CleanupStack::PushL(console); + console->ConstructL(aTitle,aSize); + CleanupStack::Pop(); + return console; + } + +void CActiveConsole::ConstructL(const TDesC& aTitle,const TSize& aSize) + { + iConsole = Console::NewL(aTitle,aSize); + } + +void CActiveConsole::DoCancel() + { + iConsole->ReadCancel(); + } + +void CActiveConsole::RequestKey() + { + DrawCursor(); + iConsole->Read(iStatus); + SetActive(); + } + +void CActiveConsole::DrawCursor() + { + iConsole->Printf(_L(">>")); + } + +void CActiveConsole::RunL() + { + // key has been pressed + TChar ch = iConsole->KeyCode(); + iNotify.KeyPressed(ch); + } + +TInt CActiveConsole::RunError(TInt aError) + { + iConsole->Printf(_L("Console error %d\nTrying again...\n"), aError); + RequestKey(); + return KErrNone; + } + +TInt CActiveConsole::GetIntFromUser() + { + TBool requeRead = EFalse; + if(IsActive()) + { + Cancel(); + requeRead = ETrue; + } + + TKeyCode key; + + TBuf<10> intBuf; + + while((key = iConsole->Getch())!=EKeyEnter) + { + if(key == EKeyBackspace&&intBuf.Length()!=0) + { + intBuf.SetLength(intBuf.Length()-1); + iConsole->Printf(_L("%c"), key); + } + else if ( intBuf.Length() < intBuf.MaxLength()) + { + intBuf.Append(key); + iConsole->Printf(_L("%c"), key); + } + } + + iConsole->Printf(_L("\n")); + + TLex lex(intBuf); + TInt value = 0; + + TInt err = lex.Val(value); + if(err) + { + iConsole->Printf(_L("Error %d reading value from console\n"), err); + } + + if(requeRead) + { + RequestKey(); + } + return value; + } + +void LoadLDD_PDDL() + { + TInt err = KErrNone; + testOutcome.Printf(_L("Loading PDD... ")); + err = User::LoadPhysicalDevice(PDD_NAME); + if(err != KErrNone && err != KErrAlreadyExists) + { + User::Leave(err); + } + testOutcome.Printf(_L("Loading LDD... ")); + err = User::LoadLogicalDevice(LDD_NAME); + if(err != KErrNone && err != KErrAlreadyExists) + { + User::Leave(err); + } + } + +void StartL() + { + LoadLDD_PDDL(); + + CAVTestApp* app = CAVTestApp::NewL(); + app->StartL(); + + delete app; + } + + +TInt E32Main() + { + __UHEAP_MARK; + + CTrapCleanup* cleanupStack=CTrapCleanup::New(); // Get CleanupStack + + CActiveScheduler* activescheduler=new CActiveScheduler; + CActiveScheduler::Install(activescheduler); + + testOutcome.Printf(_L("Starting tests... ")); + + TRAPD(err, StartL()); + + delete activescheduler; + delete cleanupStack; + + testOutcome.Printf(_L("Test completed result %d"), err); + if(err != KErrNone) + { + testOutcome.Getch(); + } + testOutcome.Close(); + + + __UHEAP_MARKEND; + + return err ; + } + +