diff -r 000000000000 -r 1bce908db942 multimediacommscontroller/mmccinterface/inc/mmccevent.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/multimediacommscontroller/mmccinterface/inc/mmccevent.h Tue Feb 02 01:04:58 2010 +0200 @@ -0,0 +1,191 @@ +/* +* Copyright (c) 2004 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: MCC EventHandler +* +*/ + + + + +#ifndef __MCC_EVENT_H__ +#define __MCC_EVENT_H__ + +// INCLUDES +#include +#include +#include "mccdef.h" +#include "mmccevents.h" +#include "mccinternaldef.h" + +// CONSTANTS + +// MACROS + +// DATA TYPES + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS +class MMccCtrlObserver; + +// CLASS DECLARATION + +/** +* CMccEvent receives event notifications from the controller plugin and forwards +* them to the client by calling corresponding callback functions of the +* MMCCCtrlObserver. +* +* @lib MCCInterface.lib +* @since Series 60 3.0 +*/ +#ifdef EKA2 +NONSHARABLE_CLASS( CMccEvent ) : public CActive +#else +class CMccEvent : public CActive +#endif + { + #ifdef TEST_EUNIT + friend class UT_CMCCInterface; + #endif + + public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CMccEvent* NewL( RMMFController& aController, + MMccCtrlObserver& aObserver ); + + /** + * Destructor. + */ + virtual ~CMccEvent(); + + public: // New functions + /** + * Requests for event from Controller plugin and starts event listening loop. + * @since Series 60 3.0 + * @return void + */ + void RequestEventNotification(); + + protected: // From CActive + /** + * From CActive Handles an active object’s request completion event. + * @since Series 60 3.0 + * @return None + */ + void RunL(); + + /** + * From CActive + */ + TInt RunError( TInt aError ); + + /** + * From CActive Implements cancellation of an outstanding request. + * @since Series 60 3.0 + * @return None + */ + void DoCancel(); + + private: // New functions + + /** + * Handles an media event + * @since Series 60 3.0 + * @param aEvent Media event + * @return void + */ + void HandleMccMediaEvent( const TMccEvent& aEvent ); + + /** + * Handles state change + * @since Series 60 3.0 + * @param aEvent Statechange event + * @return void + */ + void HandleMccStateChangeEvent( const TMccEvent& aEvent ); + + /** + * Handles error event + * @since Series 60 3.0 + * @param aEvent Error event + * @return void + */ + void HandleMccErrorEvent( const TMccEvent& aEvent ); + + /** + * Handles inactivity event + * @since Series 60 3.0 + * @param aEvent Error event + * @return void + */ + void HandleMccInactivityEvent( const TMccEvent& aEvent ); + + /** + * Handles activity event + * @since Series 60 3.0 + * @param aEvent Error event + * @return void + */ + void HandleMccActivityEvent( const TMccEvent& aEvent ); + + /** + * Handles unknown media event + * + * @since Series 60 3.0 + * @param aEvent Event + * @return void + */ + void HandleMccUnknownMediaEvent( const TMccEvent& aEvent ); + + private: + + /** + * C++ default constructor. + */ + CMccEvent( RMMFController& aController, + MMccCtrlObserver& aCallback ); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + + private: // Data + + // Handle to the controller plugin for sending custom commands + RMMFController& iController; + + // Callback object to inform client about events + MMccCtrlObserver& iEventCallBack; + + // Destination of the custom command + TMMFMessageDestinationPckg iMessageDest; + + // Contains information about event after completion of + // notification request issued to the controller + TMccEventPackage iPackage; + + private: + #ifdef TEST_EUNIT + friend class UT_CMccInterface; + #endif + }; + +#endif /* __MCC_EVENT_H__ */ + +// End of File