accessoryservices/accessoryremotecontrol/inc/remconkeyeventconverter/RemConKeyEventConverter.h
--- /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