accessoryservices/accessoryremotecontrol/inc/remconkeyeventconverter/RemConKeyEventConverter.h
changeset 0 4e1aa6a622a0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/accessoryservices/accessoryremotecontrol/inc/remconkeyeventconverter/RemConKeyEventConverter.h	Tue Feb 02 00:53:00 2010 +0200
@@ -0,0 +1,160 @@
+/*
+* Copyright (c) 2002-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:  CRemConKeyEventConverter -class.
+*                    Defines the Accessory Key event handling API of
+*                    Accessory Framework.
+*
+*/
+
+
+
+#ifndef CREMCONKEYEVENTCONVERTER_H
+#define CREMCONKEYEVENTCONVERTER_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <remcon/remconconverterplugin.h>
+#include <remcon/remconconverterinterface.h>
+#include "RemConKeyEventData.h"
+
+// DATA TYPES
+typedef TPckgBuf<TRemConKeyEventData> TRemConKeyEventDataBuf;
+
+// FORWARD DECLARATIONS
+class CRemConKeyEventConverterImpl;
+
+// CLASS DECLARATION
+/**
+*  CRemConKeyEventConverter defines the ASY Key event handling API of Accessory
+*  Framework.
+* 
+*  @lib 
+*  @since S60 3.0
+*/
+class CRemConKeyEventConverter : public CRemConConverterPlugin, 
+ 								 public MRemConConverterInterface
+	{
+    public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        */
+        static CRemConKeyEventConverter* NewL();
+        
+        /**
+        * Destructor.
+        */
+        virtual ~CRemConKeyEventConverter();
+
+    public: // New functions
+        
+    public: // Functions from base classes
+	    
+    protected:  // Functions from base classes
+    
+    private:	// From CRemConConverterPlugin
+    
+    	/**
+		* Called by RemCon server to get a pointer to an object which implements
+		* the converter API with UID aUid. This is a mechanism for allowing 
+		* future change to the converter API without breaking BC in existing 
+		* (non-updated) converter plugins.
+		* @since S60 3.0
+        * @param aUid aUid Identifies converter API version.
+		*/
+        TAny* GetInterface( TUid aUid );
+    	
+    private:	// From MRemConConverterInterface
+    	
+    	/** 
+        * Called by the server to get the converter to convert from the 
+        * interface See remconconverterplugin.h for function declaration 
+        * details.
+        * Not implemented in key event converter. Returns KErrNone.
+        */
+        TInt InterfaceToBearer(TUid aInterfaceUid, 
+            TUint aOperationId,
+            const TDesC8& aData,
+            TRemConMessageType aMsgType, 
+            TDes8& aBearerData) const;
+
+        /** 
+        * Tells the converter to convert from the bearer -specific format to
+        * the interface (API) format.
+        * The key-event data has to be passed in the descriptor as of type
+        * TRemConKeyEventDataBuf.
+        * @since S60 3.0
+        * @param aBearerData Bearer input (of type TRemConKeyEventDataBuf).
+        * @param aInterfaceUid The interface UID from Converter.
+        * @param aOperationId Operation ID from Converter.
+        * @param aMsgType The type of the message (not used).
+        * @param aData Data associated with the operation.
+        * @return KErrNone if successfull, KErrNotSupported if matching 
+        * key-event was found from Accessory Policy but functionality defined 
+        * for the key event is not currently supported and KErrGeneral if 
+        * passed data is not valid or some other non-recoverable error has 
+        * occurred.
+        */
+        TInt BearerToInterface(const TDesC8& aBearerData,
+            TUid& aInterfaceUid, 
+            TUint& aOperationId,
+            TRemConMessageType& aMsgType, 
+            TDes8& aData) const;
+
+        /**
+        * Called by the server to get the interface and bearer, the formats of
+        *  which this converter converts between.
+        * @since S60 3.0
+        * @param aInterfaceUid The interface UID.
+        * @param aBearerUid The bearer UID.
+        * @return ETrue if the parameters match with UIDs defined in the 
+        *           converter, otherwise EFalse.
+        */
+        TBool SupportedUids(const TUid& aInterfaceUid, 
+            const TUid& aBearerUid) const;
+
+        /**
+        * Called by the server to find out if this converter converts between 
+        * the formats of this bearer interface and RemCon interface.
+        * @since S60 3.0
+        * @param aInterfaceData The identifier of this interface in a bearer 
+        *   defined format.
+        * @param aBearerUid The bearer UID.
+        * @return ETrue if the parameters match with corresponding values 
+        *   defined in the converter, otherwise EFalse.
+        */
+        TBool SupportedInterface(const TDesC8& aInterfaceData, 
+            const TUid& aBearerUid) const;
+    	    	
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CRemConKeyEventConverter();
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+        
+    private:    // Data
+        // Instance of CAccFWKeyEventConverterImpl implementation class.
+        CRemConKeyEventConverterImpl* iImpl;
+
+    };
+
+#endif      // CREMCONKEYEVENTCONVERTER_H   
+            
+// End of File