diff -r 000000000000 -r 2e3d3ce01487 mediakeys/KeyPublisherPlugin/inc/KeyPublisher.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mediakeys/KeyPublisherPlugin/inc/KeyPublisher.h Tue Feb 02 10:12:00 2010 +0200 @@ -0,0 +1,145 @@ +/* +* Copyright (c) 2005 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: +* Declaration of class CKeyPublisher. +* +* +*/ + +#ifndef __KEYPUBLISHER_H__ +#define __KEYPUBLISHER_H__ + +// INCLUDE +#include +#include +#include +#include "KeyPublisherSoundServerSession.h" + +class RKeyPublisherSoundServerSession; +/** +* CKeyPublisher +* Used by the Window server. This class implements the Raw Key event +* handling feature. and publishes to P&S . +* +* @lib KeyPublisherPlugin.dll +* @since 3.0 +*/ +NONSHARABLE_CLASS(CKeyPublisher) : public CWindowAnim + { +public: // Constructor and Destructor + /** + * Constructor. + */ + CKeyPublisher(); + + /** + * Destructor. + */ + virtual ~CKeyPublisher(); + +public: // New Functions + /** + * HandleTimerEvent + * When Timer is expired, this function is called from callback function. + * @since 3.0 + * @param None + * @return None + */ + void HandleTimerEvent(); + +public: // Base Class Functions - CAnim + + /** @see CAnim::CommandReplyL(TInt aOpcode, TAny *aArgs) */ + TInt CommandReplyL(TInt aOpcode, TAny *aArgs); + + /** @see CAnim::Command(TInt aOpcode, TAny *aArgs) */ + void Command(TInt aOpcode, TAny *aArgs); + + /** @see CAnim::Animate(TDateTime *aDateTime) */ + void Animate(TDateTime *aDateTime); + +public: // Base Class Functions - CWindowAnim + + /** @see CWindowAnim::ConstructL(TAny *aArgs, TBool aHasFocus) */ + void ConstructL(TAny *aArgs, TBool aHasFocus); + + /** @see CWindowAnim::Redraw() */ + void Redraw(); + + /** @see CWindowAnim::FocusChanged(TBool aState) */ + void FocusChanged(TBool aState); + +public: // Base Class Functions - MEventHandler + + /** @see MEventHandler::OfferRawEvent(const TRawEvent &aRawEvent) */ + TBool OfferRawEvent(const TRawEvent &aRawEvent); + +private: + + /** + * IsBlockedKeyCode () : Compares the scancode with the list of + * blocked keys and returns ETrue if key is blocked, else EFalse + */ + TBool IsBlockedKeyCode(TInt aScanCode); + + /** + * TimerCallback () : this is the callback function called from timer. + */ + static TInt TimerCallback(TAny* aThis); + + /** + * GetEnumVal() : Function returns the appropriate CoreApi enumarated + * value for the given ScanCode and Event + */ + TInt GetEnumVal(TInt aScanCode, TRemConCoreApiButtonAction aEvent); + + /** + * PublishEvent() : Publish the Event to P&S, + */ + void PublishEvent(TInt aScanCode, TRemConCoreApiButtonAction aEvent); + +private: // Data + // For posting event to P&S + RProperty iProperty; + + // For getting timer ticks/events + CPeriodic* iTimer; + + // To store the scan code when key is pressed. This is used when key + // is released. + TInt iPrevScanCode; + + // To keep track whether timer is already started or not. + TBool iTimerStarted; + + // To know whether Pressed event sent or not. + TBool iPressEventSent; + + // To know whether Released event sent or not- blocking simultaneous key press + TBool iReleaseEventSent; + + // How many times Timer expired. + TInt iTimerCount; + + // For sending sound event + RKeyPublisherSoundServerSession iSoundSession; + + // To know whether it is connected to sound server or not + TBool iConnected; + }; + + +#endif // __KEYPUBLISHER_H__ + +// End of File