diff -r 000000000000 -r 29b1cd4cb562 bluetooth/btexample/example/regui/regui.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bluetooth/btexample/example/regui/regui.h Fri Jan 15 08:13:17 2010 +0200 @@ -0,0 +1,203 @@ +// 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 "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: +// + +#ifndef REGUI_H +#define REGUI_H + +// forward declarations +#include +#include + +class CLocalDeviceUser; +class CActiveRegistryUser; + +class CRegistryViewObserver; + +class MActiveConsoleNotify + { +public: + virtual void KeyPressedL(TChar aKey) = 0; + }; + +class MViewNotify + { +public: + virtual void ViewChanged() =0; + }; + +class CActiveConsole : public CActive + { + public: + static CActiveConsole* NewL(MActiveConsoleNotify& aNotify); + void RequestKey(); + + inline CConsoleBase& Console() const + { + return *iConsole; + }; + + ~CActiveConsole(); + static CConsoleBase* AutoSizeNewL(const TDesC& aTitle, TSize aSize); + + private: + void RunL(); + TInt RunError(TInt aError); + void DoCancel(); + void DrawCursor(); + CActiveConsole(MActiveConsoleNotify& aNotify); + void ConstructL(); + + private: + CConsoleBase* iConsole; + MActiveConsoleNotify& iNotify; + }; + +class CRegUIApp : public CBase, public MActiveConsoleNotify + { +public: + static CRegUIApp* NewL(); + + void StartL(); + void CreateViewL(const TBTRegistrySearch& aSearch); + void CreateLocalDeviceL(); + void Stop(); + ~CRegUIApp(); + void TestMenu(); + TBTDeviceName GetName(); + CActiveRegistryUser* NewRegUserPleaseL(); + void KindlyRemoveRegUserPleaseL(CActiveRegistryUser* aUser); + void KindlyRemoveLocalDeviceUserPlease(); + void Error(TInt aError); + +public: // From MActiveConsoleNotify + void KeyPressedL(TChar aKey); + +private: + CRegUIApp(); + void ConstructL(); + void StartRegistryServerL(); +private: + RBTRegServ iRegServ; + CActiveConsole* iActiveConsole; + + CLocalDeviceUser* iLocalDeviceUser; + RPointerArray iUsers; + }; + + + +class CActiveRegistryUser : public CActive, public MActiveConsoleNotify, public MViewNotify + { + public: + ~CActiveRegistryUser(); + static CActiveRegistryUser* NewL(CRegUIApp& aApp, + RBTRegServ& aRegServ); + + void Search(const TBTRegistrySearch& aSearch); + void Unpair(); + void UnpairAllDevicesInView(); + void Delete(); + void ChangeFriendlyNameL(); + void RequireAuthorisation(const TBool aAuthorisationRequired); + void SetCookieL(); + + void DestroyIfDone(); + + private: + CActiveRegistryUser(CRegUIApp& aApp, RBTRegServ& aRegServ); + void DoCancel(); + void RunL(); + TInt RunError(TInt aError); + void ConstructL(); + TBool PreProcessKey(TChar aKey); + void DoDisplayDevice(TInt aIndex, const CBTDevice& aDevice); + void LogCoD(TUint aCoD); + void MenuL(); + void ChooseDeviceL(); + void RegisterViewChangeNotifier(); + + private: // From MActiveConsoleNotify + void KeyPressedL(TChar aKey); + + private: // From MViewNotify + void ViewChanged(); + + private: + enum TState + { + ECreatingView, + EUsingResponse, + ESelecting, + EUnpairing, + EDeleting, + EChangingFriendlyName, + EChangingAuthorisation, + ESettingCookie, + EReady, + EDone, + }; + private: + RBTRegistry iView; + RBTRegServ& iRegistryServer; + CRegUIApp& iApp; + CActiveConsole* iActiveConsole; + CBTRegistryResponse* iResponseHandler; + TBTRegistrySearch iSearch; + TBTNamelessDevice iDevice; + TState iState; + CActiveRegistryUser* iChildUser; + CRegistryViewObserver* iViewObserver; + }; + +class CLocalDeviceUser : public CBase, public MActiveConsoleNotify + { + public: + ~CLocalDeviceUser(); + static CLocalDeviceUser* NewL(CRegUIApp& aApp, + RBTRegServ& aRegServ); + + private: + CLocalDeviceUser(CRegUIApp& aApp, RBTRegServ& aRegServ); + void ConstructL(); + void MenuL(); + + private: // From MActiveConsoleNotify + void KeyPressedL(TChar aKey); + + private: + TBTLocalDevice iLocalDeviceSettings; + RBTLocalDevice iLocalDevice; + RBTRegServ& iRegistryServer; + CRegUIApp& iApp; + CActiveConsole* iActiveConsole; + }; + +class CRegistryViewObserver : public CActive + { +public: + static CRegistryViewObserver* New(MViewNotify& aNotifiee, RBTRegistry& aView); + ~CRegistryViewObserver(); +private: + CRegistryViewObserver(MViewNotify& aNotifiee, RBTRegistry& aView); + void Queue(); +private: + virtual void RunL(); + virtual void DoCancel(); +private: + MViewNotify& iNotifiee; + RBTRegistry& iView; + }; + +#endif // REGUI_H