bluetoothengine/btsac/btrcc/inc/btrccBrowsingAdapter.h
changeset 0 f63038272f30
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bluetoothengine/btsac/btrcc/inc/btrccBrowsingAdapter.h	Mon Jan 18 20:28:57 2010 +0200
@@ -0,0 +1,118 @@
+/*
+* Copyright (c) 2005-2006 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:  Browsing adapter between RemCon an MPX Framework. 
+*
+*/
+
+
+#ifndef BTRCCBROWSINGADAPTER_H_
+#define BTRCCBROWSINGADAPTER_H_
+
+//  INCLUDES
+#include <remcondatabaseawaremedialibrarybrowseobserver.h>
+#include <remcondatabaseawarenowplayingbrowseobserver.h>
+#include <remcondatabaseawaremediabrowsetarget.h>
+#include <mpxcollectionutility.h>
+#include <mpxcollectionpath.h>
+
+// DATA TYPES
+
+// FORWARD DECLARATIONS
+class CRemConInterfaceSelector; 
+
+// CLASS DECLARATION
+
+
+NONSHARABLE_CLASS(CBTRCCBrowsingAdapter) :
+        public MRemConDatabaseAwareMediaLibraryBrowseObserver,
+        public MRemConDatabaseAwareNowPlayingBrowseObserver,
+        public MMPXCollectionObserver
+    {
+    public:  // Constructors and destructor
+        /**
+        * Two-phased constructor.
+        *      
+        */
+        static CBTRCCBrowsingAdapter* NewL(CRemConInterfaceSelector& aInterfaceSelector);
+    
+        /**
+        * Destructor.
+        */
+        virtual ~CBTRCCBrowsingAdapter();
+
+
+    private:
+        /**
+        * C++ default constructor.
+        */
+        CBTRCCBrowsingAdapter();
+        
+        /**
+        * Symbian 2nd phase constructor.
+        */
+        void ConstructL(CRemConInterfaceSelector& aInterfaceSelector);
+    
+    private: // From MRemConDatabaseAwareMediaLibraryBrowseObserver
+        void MrcdamlboGetFolderListing(TRemConFolderScope aScope, TUint aStartItem, TUint aEndItem);
+        TInt MrcdamlboGetItem(TRemConFolderScope aScope,
+                              const TRemConItemUid& aItemId, 
+                              TMediaAttributeIter& aIter, 
+                              TUint16 aMediaLibraryStateCookie);
+        void MrcdamlboFolderUp(TUint16 aMediaLibraryStateCookie);
+        void MrcdamlboFolderDown(const TRemConItemUid& aFolder, TUint16 aMediaLibraryStateCookie);
+        void MrcdamlboGetPath(RPointerArray<HBufC8>& aPath);
+        void MrcdamlboSearch(const TDesC8& aSearch);
+        
+    private: // From MRemConDatabaseAwareNowPlayingBrowseObserver
+        void MrcdanpboGetFolderListing(TUint aStartItem, TUint aEndItem);
+        TInt MrcdanpboGetItem(const TRemConItemUid& aItemId, TMediaAttributeIter& aIter, TUint16 aMediaLibraryStateCookie);
+    
+    private: // From MMPXCollectionObserver
+        void HandleCollectionMessage(CMPXMessage* aMsg, TInt /*aErr*/);
+        void HandleOpenL(const CMPXMedia& aEntries, TInt aIndex,TBool aComplete,TInt aError);
+        void HandleOpenL(const CMPXCollectionPlaylist& aPlaylist,TInt aError);
+        void HandleCommandComplete(CMPXCommand* /*aCommandResult*/, TInt /*aError*/);
+        
+    private: // From MMPXCollectionMediaObserver
+        void HandleCollectionMediaL(const CMPXMedia& aMedia, TInt aError);
+        
+    private:
+        void SubscribeL();
+        
+    private:
+        enum TMediaLOpcode
+            {
+            EMediaLOpIdle,
+            EMediaLOpFolderListing
+            };
+        
+        enum TOpenLOpcode
+            {
+            EOpenLOpIdle,
+            EOpenLOpOpen
+            };
+        
+    private: // Data
+        CRemConDatabaseAwareMediaBrowseTarget* iMediaBrowseTarget;
+        MRemConDatabaseAwareMediaLibraryBrowse* iMlInterface; 
+        MRemConDatabaseAwareNowPlayingBrowse* iNpInterface;
+        
+        MMPXCollectionUtility* iCollectionUtility;
+        
+        TUint16 iCookie;
+        TMediaLOpcode iCurrentMediaLOp;     // current MediaL operation
+        TOpenLOpcode iCurrentOpenLOp;       // current OpenL operation
+    };
+    
+#endif /* BTRCCBROWSINGADAPTER_H_ */