--- a/bluetoothappprofiles/avrcp/remconbeareravrcp/inc/avrcpplayerinfomanager.h Wed Oct 13 13:15:31 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,175 +0,0 @@
-// Copyright (c) 2008-2010 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
- @internalComponent
- @released
-*/
-
-#ifndef AVRCPPLAYERINFOMANAGER_H
-#define AVRCPPLAYERINFOMANAGER_H
-
-#include <btsdp.h>
-#include <e32base.h>
-#include <playerinformationtargetobserver.h>
-#include <remconcoreapi.h>
-#include <remcon/clientid.h>
-#include <remcon/playertype.h>
-#include <remcon/remconbearerobserver.h>
-#include "avrcpinternalinterface.h"
-#include "avrcputils.h"
-#include "playerbitmasks.h"
-#include "playerstatewatcher.h"
-
-const TInt KAvrcpMediaPlayerItemBaseSize = 28;
-
-NONSHARABLE_CLASS(MPlayerChangeObserver)
- {
-public:
- virtual void MpcoAvailablePlayersChanged() = 0;
- virtual void MpcoAddressedPlayerChangedLocally(TRemConClientId aClientId) = 0;
- virtual void MpcoUidCounterChanged(TRemConClientId aClientId) = 0;
- };
-
-NONSHARABLE_STRUCT(TAvrcpMediaPlayerItem)
- {
-public:
- TRemConClientId iId;
- TUint8 iPlayerType;
- TUint32 iPlayerSubType;
- TPlayerFeatureBitmask iFeatureBitmask;
- TPtrC8 iName;
- // iUidCounter is set from the bulk thread and read from the control thread
- TUint16 iUidCounter;
- // iLastUpdatedUidCounter is only accessed from the control thread to see if an update
- // is needed
- TUint16 iLastUpdatedUidCounter;
- MPlayerEventsObserver::TPlaybackStatus iPlaybackStatus;
- TUint8 iSdpFeatures;
- TBool iBulkClientAvailable;
- // We store absolute volume support because it's returned as part of
- // a GetCapabilities(EventIds) response. Some implementations poll
- // for changes to this value so it's probably worthwhile avoiding
- // having to ask RemCon for it repeatedly.
- TBool iAbsoluteVolumeSupport;
- };
-
-class MIncomingCommandHandler;
-class MRemConCommandInterface;
-class CUidWatcher;
-NONSHARABLE_CLASS(CAvrcpPlayerInfoManager)
- : public CBase, public MUidObserver, public MPlayStatusObserver
- {
-//---------------------------------------------------------
-// Control thread only functions
-//---------------------------------------------------------
-public:
- static CAvrcpPlayerInfoManager* NewL(MRemConBearerObserver& aObserver, MRemConCommandInterface& aCommandInterface);
- ~CAvrcpPlayerInfoManager();
-
- // Interface to bearer/remcon
- void ClientAvailable(const TRemConClientId& aId, TPlayerType aClientType, TPlayerSubType aClientSubType, const TDesC8& aName);
- void ClientNotAvailable(const TRemConClientId& aId);
- void ClientStatus(TBool aControllerPresent, TBool aTargetPresent);
- TInt SetLocalAddressedClient(const TRemConClientId& aId);
- void ControllerFeaturesUpdatedL(RArray<TUid>& aSupportedInterfaces);
- void TargetFeaturesUpdated(const TRemConClientId& aId, TPlayerType aPlayerType, TPlayerSubType aPlayerSubType, const TDesC8& aName);
- MIncomingCommandHandler& InternalCommandHandler();
-
- // Interface to command handler
- void AddObserverL(MPlayerChangeObserver& aObserver);
- void RemoveObserver(MPlayerChangeObserver& aObserver);
- TUint16 UidCounterL(const TRemConClientId& aClientId) const;
- TBool AbsoluteVolumeSupportedL(const TRemConClientId& aClientId) const;
- TBool BrowsingSupportedL(const TRemConClientId& aClientId) const;
-
-private:
- // Interface to uid counter updates
- static TInt PlayerUpdateCallBack(TAny* aPlayerInfoMgr);
- void UidCounterUpdate();
-
- // from MPlayStatusObserver
- void MpsoPlayStatusChanged(TRemConClientId aId, MPlayerEventsObserver::TPlaybackStatus aPlaybackStatus);
- void MpsoError(TRemConClientId aId);
-
- // Helper function for ClientAvailable and TargetFeaturesUpdated
- TInt SetItemDetails(TAvrcpMediaPlayerItem& aItem, TPlayerType aPlayerType, TPlayerSubType aPlayerSubType, const TDesC8& aName);
- void UpdateSdpRecord(const TAvrcpMediaPlayerItem& aItem);
-
-//---------------------------------------------------------
-// Bulk thread only functions
-//---------------------------------------------------------
-public:
- // Interface to bearer/remcon
- void BulkClientAvailable(const TRemConClientId& aId);
- void BulkClientNotAvailable(const TRemConClientId& aId);
- MIncomingCommandHandler* BulkStartedL(MRemConCommandInterface& aCommandInterface);
- void BulkStopped();
-
- // Interface to command handler
- void MediaPlayerItemL(const TUint16& aAvrcpPlayerId, RMediaPlayerItem& aItem);
-
-
-private: // from MUidObserver
- void MuoUidChanged(TRemConClientId aId, TUint16 aUidCounter);
- void MuoError(TRemConClientId aId);
-
-
-
-//---------------------------------------------------------
-// Common functions
-//---------------------------------------------------------
-public:
- // Used to map between AVRCP player ids and RemCon client ids
- TRemConClientId ClientL(TUint16 aAvrcpPlayerId) const;
- TRemConClientId Client(TUint16 aAvrcpPlayerId) const;
- TUint16 PlayerL(const TRemConClientId& aClientId) const;
-
- // Used to retrieve list of current players
- TInt PlayerListing(TUint aStartItem, TUint aEndItem, RArray<TUint>& aPlayers);
- TInt PlayerListing(RArray<TUint>& aPlayers);
-
-private:
- CAvrcpPlayerInfoManager(MRemConBearerObserver& aObserver);
- void ConstructL(MRemConCommandInterface& aCommandInterface);
-
- TBool ValidPlayer(const TUint16& aAvrcpPlayerId) const;
- TInt NextPlayerIndex();
- TInt SetPlayerFeatures(const TRemConClientId& aId, TPlayerFeatureBitmask& aBitmask, TUint8& aSdpFeatures, TBool& aAbsoluteVolumeSupported);
- void UpdateTgServiceRecordL();
-
-private:
- RPointerArray<MPlayerChangeObserver> iObservers;
- RArray<TAvrcpMediaPlayerItem> iPlayers;
- CUidWatcher* iUidWatcher;
- CPlayStatusWatcher* iPlayStatusWatcher;
- MRemConBearerObserver& iControlBearerObserver; // unowned - used to determine features of players
- RSpecificThreadCallBack iControlThreadCallBack;
-
- RSdp iSdp;
- RSdpDatabase iSdpDatabase;
- TSdpServRecordHandle iControllerRecord;
- TSdpServRecordHandle iTargetRecord;
-
- mutable RFastLock iLock; // for use in const functions
- };
-
-// The lock is only used for the following members....
-//
-
-#endif //AVRCPPLAYERINFOMANAGER_H