bluetoothappprofiles/avrcp/mediabrowseapi/public/remconmediabrowsetargetbase.h
changeset 70 f5508c13dfe0
parent 67 16e4b9007960
child 71 083fd884d7dd
--- a/bluetoothappprofiles/avrcp/mediabrowseapi/public/remconmediabrowsetargetbase.h	Wed Oct 13 13:15:31 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,217 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-
-/**
- @file
- @publishedAll
- @released
-*/
-
-#ifndef REMCONMEDIABROWSETARGETBASE_H
-#define REMCONMEDIABROWSETARGETBASE_H
-
-#include <remcondatabaseawaremedialibrarybrowseobserver.h>
-#include <remcondatabaseawarenowplayingbrowseobserver.h>
-#include <remcondatabaseunawaremedialibrarybrowseobserver.h>
-#include <remcondatabaseunawarenowplayingbrowseobserver.h>
-#include <remconmediabrowsetypes.h>
-#include <remcon/remconinterfacebase.h>
-#include <remcon/remconinterfaceif.h>
-
-class RRemConGetFolderItemsResponse;
-class RRemConGetItemAttributesResponse;
-class RRemConGetPathResponse;
-class TRemConMessageQueue;
-/**
-This interface enables the client to present a heirarchical view
-of the local media library for browsing by a remote entity.
-
-The view is a virtual filesystem and does not need to correspond
-directly to any structure on local storage.  It could for example
-map onto a database of media content.
-
-Each item in the media library is identified by a UID.  At a 
-minimum this must uniquely identify an element within a folder.
-For clients that support it the UID can be persistant accross
-the entire virtual filesystem.  In this case a media library
-state cookie is used to ensure that that state is consistent
-between the client and the remote device. 
-
-This interface does not have NewL()/NewLC, so the client should 
-use the object CRemConDatabaseAwareMediaBrowseTarget or 
-CRemConDatabaseUnawareMediaBrowseTarget to use its exported functions.
-
-This class is only to be used by classes currently derived from it.
-
-@see CRemConDatabaseAwareMediaBrowseTarget
-@see CRemConDatabaseUnawareMediaBrowseTarget
-*/
-NONSHARABLE_CLASS(CRemConMediaBrowseTargetBase) : public CRemConInterfaceBase, public MRemConInterfaceIf
-	{
-protected:
-	CRemConMediaBrowseTargetBase(CRemConInterfaceSelector& aInterfaceSelector, 
-			MRemConDatabaseAwareMediaLibraryBrowseObserver& aMlObserver, 
-			MRemConDatabaseAwareNowPlayingBrowseObserver& aNpObserver,
-			TUint16 aMediaLibraryStateCookie);
-
-	CRemConMediaBrowseTargetBase(CRemConInterfaceSelector& aInterfaceSelector, 
-			MRemConDatabaseUnawareMediaLibraryBrowseObserver& aMlObserver, 
-			MRemConDatabaseUnawareNowPlayingBrowseObserver& aNpObserver);
-	
-	virtual ~CRemConMediaBrowseTargetBase();
-	
-	virtual void BaseConstructL(TBool aSearchSupported);
-	
-	void DoFolderListing(const TArray<TRemConItem>& aFolderListing, 
-			TUint16 aMediaLibraryStateCookie, 
-			TInt aResult);
-	
-	void DoFolderUpResult(TUint aItemCount, TInt aResult);
-	void DoFolderDownResult(TUint aItemCount, TInt aResult);
-	
-	void DoGetPathResult(TUint aItemCount, 
-			TUint16 aMediaLibraryStateCookie, 
-			TInt aResult);
-	
-	void DoSearchResult(TUint aNumberItemsFound,
-			TUint16 aMediaLibraryStateCookie, 
-			TInt aResult);
-	
-	void DoMediaLibraryStateChange(TUint16 aMediaLibraryStateCookie);
-	
-	void DoFolderItemResult(const TRemConItemUid& aFolderID,
-			const TDesC8& aFolderName, 
-			TFolderItemType aFolderType, 
-			TFolderItemPlayable aPlayable,
-			const TArray<TMediaElementAttribute>& aAttributes,
-			TInt aResult);
-	
-	void DoMediaElementItemResult(const TRemConItemUid& aMediaID, 
-			const TDesC8& aMediaName, 
-			TMediaItemType aMediaType, 
-			const TArray<TMediaElementAttribute>& aAttributes,
-			TInt aResult);
-	
-private: // From CRemConInterfaceBase
-	TAny* GetInterfaceIf(TUid aUid);
-
-private: // From MRemConInterfaceIf
-	void MrcibNewMessage(TUint aOperationId,
-			const TDesC8& aData);
-	
-private: // Utility
-	void ProcessGetFolderItems(const TDesC8& aData);
-	void ProcessChangePath(const TDesC8& aData);
-	void ProcessGetItemAttributes(const TDesC8& aData);
-	void ProcessSearch(const TDesC8& aData);
-	void ProcessGetPath(const TDesC8& aData);
-	void ProcessMediaLibraryStateCookieUpdate(const TDesC8& aData);
-	
-	void SendGetItemAttributesResponse(TInt aResult, const TDesC8& aData);
-	void SendGetFolderItemsResponse(TInt aResult, const TDesC8& aData);
-	void SendChangePathResponse(TUint aItemCount, TInt aResult);
-	void SendInternalNotificationResponse(TRemConMessageSubType aMsgSubType);
-	void SendNotificationResponse(TRemConMessageSubType aMsgSubType);
-	void SendSearchResponse(TInt aResult, TUint aNumberItemsFound, TUint16 aMediaLibraryStateCookie);
-	void SendMediaLibraryStateCookieUpdateResponse(TUint16 aMediaLibraryStateCookie);
-	
-	static TInt NextMessageCb(TAny* aThis);
-	void DoNextMessage();
-	
-	static TInt NextItemCallBack(TAny* aThis);
-	void RequestNextItem();
-	void DoItemComplete(TInt aResult);
-	
-	void SendError(TUint8 aPduId, 
-			TUint aOperationId, 
-			TInt aError);
-	
-	// Used for Gia
-	TInt ItemAttributesResult(const TArray<TMediaElementAttribute>& aAttributes);
-	TInt DoAttributeValue(TMediaAttributeId aAttributeId, const TDesC8& aAttributeData);
-	void DoAllAttributesCompleted(TInt aResult);
-	
-	void AddToOperationQueue(TUint8 aPduId, 
-			TInt aOperationId, 
-			const TDesC8& aData);
-	TInt ParseGetItemAttributesRequest(const TDesC8& aData,
-			TRemConFolderScope& aScope,
-			TRemConItemUid& aItemUid,
-			TUint16& aMediaLibraryStateCookie);
-	void ProcessMediaElementItemResult(const TRemConItemUid& aMediaID,
-			const TDesC8& aMediaName, 
-			TMediaItemType aMediaType, 
-			const TArray<TMediaElementAttribute>& aAttributes,
-			TInt aResult);
-	void ProcessFolderItemResult(const TRemConItemUid& aFolderID,
-			const TDesC8& aFolderName, 
-			TFolderItemType aFolderType, 
-			TFolderItemPlayable aPlayable,
-			TInt aResult);
-	void ProcessGetItemAttributesResult(
-			const TArray<TMediaElementAttribute>& aAttributes,
-			TInt aResult);
-
-	inline TBool DatabaseAware() const;
-
-private:
-	// Unowned
-	CRemConInterfaceSelector& 							iInterfaceSelector;
-	
-	MRemConDatabaseAwareMediaLibraryBrowseObserver*		iRcdamlbo;
-	MRemConDatabaseUnawareMediaLibraryBrowseObserver*	iRcdumlbo;
-	
-	MRemConDatabaseAwareNowPlayingBrowseObserver*		iRcdanpbo;
-	MRemConDatabaseUnawareNowPlayingBrowseObserver*		iRcdunpbo;
-	
-	// Owned
-	CAsyncCallBack*										iNextMessageCallBack;
-	CAsyncCallBack*										iNextItemCallBack;
-	
-	RBuf8												iOutBuf;
-	
-	TUint16												iMediaLibraryStateCookie;
-	
-	TBool												iInProgress; // used internally to see if any operation is in progress
-	TRemConMessageQueue*                     			iMsgQueue; // used to queue messages if another operation is in progress
-	
-	RArray<TMediaAttributeId>							iMediaAttributeIds; // used for Gfl and Gia to store requested attributes
-	TMediaAttributeIter									iAttributeIterator; // provided to the client on requesting item attributes for Gfl and Gia
-	
-	RArray<TMediaAttributeId>							iNullArray; 
-	TMediaAttributeIter									iNullIterator; // Used for getting a folder item to perform a folder listing
-	
-	TBool												iGetFolderListing; // used to check Gfl is in progress 
-	RRemConGetFolderItemsResponse*						iGflResponse; // used to build up Gfl response from client
-	TRemConFolderScope									iScope; // stored for use in async callbacks to get folder items
-
-	TBool												iGetItemAttributes;	// used to check Gia is in progress
-	TBool												iSetAttributeValue; // used to check that client has set response if it returns KErrNone
-	RRemConGetItemAttributesResponse*					iGiaResponse; // used to build up Gia response from client
-	
-	TBool												iSearchSupported;
-	TBool												iSearchInProgress; // used to check Search is in progress
-	RBuf8												iSearchString; // used to store search string until request is complete
-	
-	RRemConGetPathResponse*      						iGetPathResponse; // used to build up get path response 
-	
-	TBool												iMlscUpdatePending;
-	TUint16												iLastMlscUpdate;
-	};
-
-#endif // REMCONMEDIABROWSETARGETBASE_H
-