--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/mmp/mmp3/tbm.cpp Wed Jun 23 17:27:59 2010 +0800
@@ -0,0 +1,179 @@
+/*
+* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:
+* BT incoming SCO notification test code
+*
+*/
+
+
+#include <e32test.h>
+#include <es_sock.h>
+#include <f32file.h>
+#include <bt_sock.h>
+#include <btextnotifiers.h>
+#include <c32comm.h>
+#include <btsdp.h>
+#include "exchange.h"
+
+#if defined (__WINS__)
+#define PDD_NAME _L("ECDRV")
+#define LDD_NAME _L("ECOMM")
+#else // __GCC32__
+#define PDD_NAME _L("EUART4") // port 0 on Assabet
+// don't use EUART2 - port 1 is IR
+#define ETNA_PDD_NAME _L("EUART3") // for port 2 on Assabet
+#define LDD_NAME _L("ECOMM")
+#endif
+
+GLDEF_D RTest test(_L("bluemeanie tests"));
+
+const TUint32 KServiceUID1 = 0x6D14AC98;
+const TUint32 KServiceUID2 = 0x7A8249bb;
+const TUint32 KServiceUID3 = 0xB885BE2E;
+const TUint32 KServiceUID4 = 0xF73C909E;
+
+//_LIT(KMenuText1, "A - Listen & Accept F - Connect ACL");
+//_LIT(KMenuText2, "B - Await incoming SCO G - Connect SCO");
+//_LIT(KMenuText3, "C - Await SCO disconnect H - Disconnect SCO");
+//_LIT(KMenuText4, "D - Await ACL disconnect I - Disconnect ACL");
+//_LIT(KMenuText5, "E - Receive Data J - Send Data");
+//_LIT(KMenuText6, "K - Hard disconnect ACL");
+//_LIT(KMenuText7, "X - Exit");
+//_LIT(KNewLine, "\r\n");
+
+//const TBTDevAddr KDevAddr(MAKE_TINT64(0x0002, 0x5bff0a1e));
+
+class CTestBM : public CActive
+ {
+ public:
+ CTestBM();
+ void InitL();
+ void DoTestL();
+ void RunL();
+ void DoCancel();
+ private:
+ private:
+ CBluetoothExchanger* iExch;
+ CActiveScheduler* iSched;
+ };
+
+CTestBM::CTestBM() : CActive(CActive::EPriorityStandard)
+ {}
+
+void CTestBM::InitL()
+ {
+ TUUID uuid(KServiceUID1,KServiceUID2,KServiceUID3,KServiceUID4);
+ iSched = new(ELeave) CActiveScheduler;
+ CActiveScheduler::Install(iSched);
+ iExch = CBluetoothExchanger::NewL(uuid);
+ iSched->Add(this);
+ }
+
+void CTestBM::DoTestL()
+ {
+ test.Printf(_L("Press a key to start search\r\n"));
+ test.Getch();
+ iExch->LookForPeersL(iStatus);
+ SetActive();
+ iSched->Start();
+ test(iStatus == KErrNone);
+ test.Printf(_L("Completed with status %d\r\n"), iStatus.Int());
+ TInt count;
+ TBTSockAddr addr;
+ THostName name;
+ TNameEntry* entry;
+ iExch->First();
+ count = iExch->Count();
+ test.Printf(_L("%d compatible devices found\r\n"), count);
+ while(iExch->Next(entry) == KErrNone)
+ {
+ addr = (*entry)().iAddr;
+ name = (*entry)().iName;
+ test.Printf(_L("Device address 0x%02x%02x%02x%02x%02x%02x\r\n"),
+ addr.BTAddr()[0],
+ addr.BTAddr()[1],
+ addr.BTAddr()[2],
+ addr.BTAddr()[3],
+ addr.BTAddr()[4],
+ addr.BTAddr()[5]);
+ test.Printf(_L("Device name: %S\r\n"), &name);
+ }
+ test.Getch();
+ }
+
+void CTestBM::RunL()
+ {
+ iSched->Stop();
+ }
+
+void CTestBM::DoCancel()
+ {
+ //iExch->Cancel();
+ }
+
+void LoadLDD_PDD()
+ {
+ TInt r;
+#ifdef __EPOC32__
+ r=StartC32();
+ if (r!=KErrNone && r!=KErrAlreadyExists)
+ {
+ test.Printf(_L("Failed %d!\n\r"),r);
+ test(r==KErrNone);
+ }
+ else
+ test.Printf(_L("Started C32\n"));
+#endif
+ test.Printf(_L("Loading PDD\n"));
+ r=User::LoadPhysicalDevice(PDD_NAME);
+ if (r!=KErrNone && r!=KErrAlreadyExists)
+ {
+ test.Printf(_L("Failed %d!\n\r"),r);
+ test(r==KErrNone);
+ }
+ else
+ test.Printf(_L("Loaded LDD\n"));
+ test.Printf(_L("Loading LDD\n"));
+ r=User::LoadLogicalDevice(LDD_NAME);
+ if (r!=KErrNone && r!=KErrAlreadyExists)
+ {
+ test.Printf(_L("Failed %d!\n\r"),r);
+ test(r==KErrNone);
+ }
+ else
+ test.Printf(_L("Loaded PDD\n"));
+ }
+
+
+void RunTestL()
+ {
+ CTestBM *st = new(ELeave) CTestBM;
+ CleanupStack::PushL(st);
+ LoadLDD_PDD();
+ st->InitL();
+ st->DoTestL();
+ CleanupStack::PopAndDestroy(st);
+ }
+
+TInt E32Main()
+ {
+ CTrapCleanup* cleanupStack=CTrapCleanup::New();
+
+ TRAPD(err,RunTestL());
+
+ delete cleanupStack;
+
+ return err;
+ }
+