/** Copyright (c) 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: MDE media monitor utility **/#ifndef MDSAUDIOMONITOR_H_#define MDSAUDIOMONITOR_H_#include <e32def.h>#include <mdesession.h>//Forward declarationclass CMdeObjectQueueManager; //Queue all Audio objects for Indexingclass CMdESession;class CMdsMediaMonitor : public CBase, public MMdEObjectObserver, public MMdEObjectPresentObserver {public: /* * NewL construction * @param CMdESession* valid mde session donot own * @param CMdeObjectQueueManager* object queue manager do not own * @return instance of media monitor */ static CMdsMediaMonitor* NewL(CMdESession* ,CMdeObjectQueueManager* ); /* * NewLC construction * @param CMdESession* valid mde session do not own * @param CMdeObjectQueueManager* object queue manager do not own * @return instance of media monitor */ static CMdsMediaMonitor* NewLC(CMdESession* ,CMdeObjectQueueManager* ); /* * Destructor */ virtual ~CMdsMediaMonitor();private: /* * parameterized constructor * @param CMdESession* valid mde session do not own * @param CMdeObjectQueueManager* mde object queue manager donot own */ CMdsMediaMonitor(CMdESession* ,CMdeObjectQueueManager* ); //default constructor /* * Second phase constructor */ void ConstructL(); //Second phase constructorpublic: /* * StartMonitoring * @param TDesC& aNameSpaceDef name space */ void StartMonitoringL(const TDesC& aNameSpaceDef); //Controlled by owner /* * StopMonitoring stops sending events */ void StopMonitoringL(); //From MMdEObjectObserver void HandleObjectNotification(CMdESession& aSession, TObserverNotificationType aType, const RArray<TItemId>& aObjectIdArray); void HandleObjectPresentNotification(CMdESession& aSession, TBool aPresent, const RArray<TItemId>& aObjectIdArray);private: CMdESession* iMdsSession; //do not own //Maintain queue of object array with actions for indexing CMdeObjectQueueManager* iMdeObjectQueueManager; };#endif /* MDSAUDIOMONITOR_H_ */