bluetooth/gavdp/test/tavsrcmtupdaterdatabaseaware.h
branchRCL_3
changeset 24 e9b924a62a66
parent 0 29b1cd4cb562
equal deleted inserted replaced
23:5b153be919d4 24:e9b924a62a66
       
     1 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 // tavsrcmtupdater.h
       
    15 //
       
    16 
       
    17 #ifndef TAVSRCMTUPDATER_H
       
    18 #define TAVSRCMTUPDATER_H
       
    19 
       
    20 #include <remconmediainformationtargetobserver.h>
       
    21 #include <playerinformationtargetobserver.h>
       
    22 #include <remcondatabaseawarenowplayingtargetobserver.h>
       
    23 #include <remcondatabaseawarenowplayingbrowseobserver.h>
       
    24 #include <remcondatabaseawaremedialibrarybrowseobserver.h>
       
    25 #include <remcon/avrcpspec.h>
       
    26 #include "mediainformation.h"
       
    27 
       
    28 _LIT(KAVRCPSettingsResourceFilename, "z:\\bluetooth\\avrcp\\avrcp-settings.rsc");
       
    29 const TInt KDefaultLength = 120000;
       
    30 const TInt KPositionIncrement = 5000;
       
    31 
       
    32 class CStopBrowseWatcher
       
    33 	: public CActive
       
    34 	{
       
    35 public:
       
    36 	static CStopBrowseWatcher* NewL();
       
    37 	~CStopBrowseWatcher();
       
    38 	
       
    39 	void Start();
       
    40 	void Complete();
       
    41 	
       
    42 private:
       
    43 	CStopBrowseWatcher();
       
    44 	void ConstructL();
       
    45 	
       
    46 private: // from CActive
       
    47 	void RunL();
       
    48 	void DoCancel();
       
    49 
       
    50 private:
       
    51 	RThread iThread;
       
    52 	};
       
    53 
       
    54 class CActiveCallBackConsole;
       
    55 class CRemConDatabaseAwareNowPlayingTarget;
       
    56 class CRemConDatabaseAwareMediaBrowseTarget;
       
    57 class MRemConDatabaseAwareMediaLibraryBrowse;
       
    58 class MRemConDatabaseAwareNowPlayingBrowse;
       
    59 class CTavsrcMtUpdater : public CBase, public MActiveConsoleNotify, 
       
    60 	public MPlayerApplicationSettingsNotify, 
       
    61 	public MRemConDatabaseAwareMediaLibraryBrowseObserver,
       
    62 	public MRemConDatabaseAwareNowPlayingBrowseObserver,
       
    63 	public MRemConDatabaseAwareNowPlayingTargetObserver
       
    64 	{
       
    65 public:
       
    66 	static CTavsrcMtUpdater* NewL(CRemConInterfaceSelector& aIfSel, TUint aRemConInterfaces);
       
    67 	~CTavsrcMtUpdater();
       
    68 	
       
    69 private:
       
    70 	CTavsrcMtUpdater();
       
    71 	void ConstructL(CRemConInterfaceSelector& aIfSel, TUint aRemConInterfaces);
       
    72 	
       
    73 	void KeyPressed(TChar aKey);
       
    74 	void MtMenu();
       
    75 	
       
    76 	void ReadAVRCPSettingsFile(const TDesC& aResourceFileName);
       
    77 	
       
    78 	void AddEvent(TRegisterNotificationEvent aEvent);
       
    79 	void AddCompanyId(TInt aCompanyId);
       
    80 	void TrackReachedEnd();
       
    81 	void TrackReachedStart();
       
    82 	void PlackbackStatusChanged(MPlayerEventsObserver::TPlaybackStatus aPlaybackStatus);
       
    83 	void TrackChanged(TUint64 aIndex, TUint32 aLengthInMilliseconds);
       
    84 	void SetBatteryStatus(MPlayerEventsObserver::TTargetBatteryStatus aStatus);
       
    85 	void SetPlaybackPosition(TUint32 aPosition);
       
    86 	void SetAsActivePlayer();
       
    87 	
       
    88 	MPlayerEventsObserver::TPlaybackStatus NextPlaybackStatus();
       
    89 	MPlayerEventsObserver::TTargetBatteryStatus NextBatteryStatus();
       
    90 
       
    91 private:
       
    92 	// from MPlayerApplicationSettingsNotify
       
    93 	void MpasnSetPlayerApplicationValueL(const RArray<TInt>& aAttributeID, const RArray<TInt>& aAttributeValue);
       
    94 	
       
    95 	// from MRemConDatabaseAwareNowPlayingTargetObserver
       
    96 	void MrcdanptoPlayItem(const TRemConItemUid& aItem, TRemConFolderScope aScope, TUint16 aUidCounter);
       
    97 	void MrcdanptoAddToNowPlaying(const TRemConItemUid& aItem, TRemConFolderScope aScope, TUint16 aUidCounter);
       
    98 	
       
    99 	// from MRemConDatabaseAwareMediaLibraryBrowseTargetObserver
       
   100 	void MrcdamlboGetFolderListing(TRemConFolderScope aScope, TUint aStartItem, TUint aEndItem);
       
   101 	void MrcdamlboFolderUp(TUint16 aMediaLibraryStateCookie);
       
   102 	void MrcdamlboFolderDown(const TRemConItemUid& aFolder, TUint16 aMediaLibraryStateCookie);
       
   103 	void MrcdamlboGetPath(RPointerArray<HBufC8>& aPath);
       
   104 	void MrcdamlboSearch(const TDesC8& aSearch);
       
   105 	TInt MrcdamlboGetItem(TRemConFolderScope aScope,
       
   106 				const TRemConItemUid& aItemId, 
       
   107 				TMediaAttributeIter& aIter, 
       
   108 				TUint16 aMediaLibraryStateCookie);
       
   109 	
       
   110 	// from MRemConDatabaseAwareNowPlayingBrowseObserver
       
   111 	void MrcdanpboGetFolderListing(TUint aStartItem, TUint aEndItem);
       
   112 	TInt MrcdanpboGetItem(const TRemConItemUid& aItemId, 
       
   113 				TMediaAttributeIter& aIter, 
       
   114 				TUint16 aMediaLibraryStateCookie);
       
   115 	
       
   116 	void DisplayCurrentState();
       
   117 	void SetAttributeL(REAResponse& aAttribute, TRemConItemUid& aUid);
       
   118 
       
   119 private: // Utility functions
       
   120 	TInt PrepareItemDataL(TMediaAttributeIter& aIter,
       
   121 			const TRemConItemUid& aItemId,
       
   122 			HBufC8* &aItemName,
       
   123 			RArray<TMediaElementAttribute>& aItemAttributes);
       
   124 	
       
   125 private: // second thread functions
       
   126 	static TInt MediaBrowseThread(TAny* aPtr);
       
   127 	void BrowseSetupL(CRemConInterfaceSelector& aIfSel);
       
   128 	void BrowseCleanup();
       
   129 	
       
   130 	static TInt BrowseKeyPressed(TAny* aPtr, TChar aKey);
       
   131 	void BrowseKeyPressedL(TChar aKey);
       
   132 	void BrowseMenu();
       
   133 	
       
   134 private:
       
   135 	CPlayerInfoTarget* iPlayerInformation;
       
   136 	MPlayerCapabilitiesObserver* iPlayerCapabilitiesObserver;
       
   137 	MPlayerApplicationSettingsObserver* iPlayerApplicationSettingsObserver;
       
   138 	MPlayerEventsObserver* iPlayerEventsObserver;
       
   139 	
       
   140 	CRemConDatabaseAwareMediaBrowseTarget*			iMediaBrowse;
       
   141 	MRemConDatabaseAwareMediaLibraryBrowse*			iMediaBrowseInterface;
       
   142 	MRemConDatabaseAwareNowPlayingBrowse*			iNowPlayingBrowseInterface;
       
   143 	CRemConDatabaseAwareNowPlayingTarget*			iNowPlaying;
       
   144 	
       
   145 	CActiveConsole*	iMtUpdaterConsole;
       
   146 	
       
   147 	CActiveCallBackConsole*	iMtBrowseConsole;
       
   148 	
       
   149 	TInt iIndex;
       
   150 	MPlayerEventsObserver::TPlaybackStatus iPlaybackStatus;
       
   151 	MPlayerEventsObserver::TTargetBatteryStatus iBatteryStatus;
       
   152 	TUint32 iPosition;
       
   153 	TUint32 iLength;
       
   154 	
       
   155 	
       
   156 	RArray<TInt> iNotificationEvents;
       
   157 	RArray<TInt> iCompanyIds;
       
   158 	
       
   159 	TInt iFolderDepth;
       
   160 	
       
   161 	TUint iUidCounter;
       
   162 	
       
   163 	TBool iMediaBrowseThreadOpen;
       
   164 	RThread iMediaBrowseThread;
       
   165 	CStopBrowseWatcher* iMtBrowseStopper;
       
   166 	};
       
   167 
       
   168 #endif //TAVSRCMTUPDATER_H