mediakeys/KeyPublisherPlugin/inc/KeyPublisher.h
changeset 0 2e3d3ce01487
--- /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 <w32adll.h>
+#include <e32property.h>
+#include <remconcoreapi.h>
+#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