accessoryservices/accessoryremotecontrol/src/remconkeyeventconverter/RemConKeyEventConverter.cpp
changeset 0 4e1aa6a622a0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/accessoryservices/accessoryremotecontrol/src/remconkeyeventconverter/RemConKeyEventConverter.cpp	Tue Feb 02 00:53:00 2010 +0200
@@ -0,0 +1,198 @@
+/*
+* 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:  Defines the key event handling API of Accessory Server and
+*    implements the converter plugin for Remote Connection framework.
+*
+*/
+
+
+
+// INCLUDE FILES
+#include    "RemConKeyEventConverter.h"
+#include    "RemConKeyEventConverterImpl.h"
+#include    "RemConDebug.h"
+#include    <RemConExtensionApi.h>
+#include    <remconcoreapi.h>
+
+// CONSTANTS
+const TInt KRemConBearerUid = 0x102069AA; // From Bearer
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CRemConKeyEventConverter::CRemConKeyEventConverter
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CRemConKeyEventConverter::CRemConKeyEventConverter()
+    {
+    COM_TRACE_( "[AccFW:RemConConverter] CRemConKeyEventConverter::CRemConKeyEventConverter()" );
+    }
+
+// -----------------------------------------------------------------------------
+// CRemConKeyEventConverter::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CRemConKeyEventConverter::ConstructL()
+    {
+    COM_TRACE_( "[AccFW:RemConConverter] CRemConKeyEventConverter::ConstructL()" );
+    iImpl = CRemConKeyEventConverterImpl::NewL();
+    COM_TRACE_( "[AccFW:RemConConverter] CRemConKeyEventConverter::ConstructL() return void" );
+    }
+
+// -----------------------------------------------------------------------------
+// CRemConKeyEventConverter::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CRemConKeyEventConverter* CRemConKeyEventConverter::NewL()
+    {
+    COM_TRACE_( "[AccFW:RemConConverter] CRemConKeyEventConverter::NewL()" );
+
+    CRemConKeyEventConverter* self = new( ELeave ) CRemConKeyEventConverter;
+    
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+
+    COM_TRACE_1( "[AccFW:RemConConverter] CRemConKeyEventConverter::NewL() return %d", self );
+    return self;
+    }
+
+    
+// Destructor
+CRemConKeyEventConverter::~CRemConKeyEventConverter()
+    {
+    COM_TRACE_( "[AccFW:RemConConverter] CRemConKeyEventConverter::~CRemConKeyEventConverter()" );
+    delete iImpl;
+    iImpl = 0;
+    COM_TRACE_( "[AccFW:RemConConverter] CRemConKeyEventConverter::~CRemConKeyEventConverter() return void" );
+    }
+
+// -----------------------------------------------------------------------------
+// CRemConKeyEventConverter::InterfaceToBearer
+// Overload of CRemConConverterPlugin -base class function definition.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRemConKeyEventConverter::InterfaceToBearer( 
+    TUid /*aInterfaceUid*/, 
+    TUint /*aOperationId*/,
+    const TDesC8& /*aData*/,
+    TRemConMessageType /*aMsgType*/, 
+    TDes8& /*aBearerData*/ ) const
+    {
+    COM_TRACE_( "[AccFW:RemConConverter] CRemConKeyEventConverter::InterfaceToBearer() return KErrNone (does nothing))" );
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CRemConKeyEventConverter::BearerToInterface
+// Overload of CRemConConverterPlugin -base class function definition.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRemConKeyEventConverter::BearerToInterface( 
+    const TDesC8& aBearerData,
+    TUid& aInterfaceUid,
+    TUint& aOperationId,
+    TRemConMessageType& /*aMsgType*/,
+    TDes8& aData ) const
+    {
+    COM_TRACE_2( "[AccFW:RemConConverter] CRemConKeyEventConverter::BearerToInterface(aInterfaceUid=%d, aOperationId=%d)", aInterfaceUid, aOperationId );
+    TInt ret( KErrNone );
+    TRemConKeyEventDataBuf data;
+    data.Copy(aBearerData);
+    const TRemConKeyEventData keyData = data();
+		
+    ret = iImpl->ResolveOperationID( keyData, aInterfaceUid, aOperationId, aData );
+        
+    COM_TRACE_1( "[AccFW:RemConConverter] CRemConKeyEventConverter::BearerToInterface() returns %d", ret );
+    return ret;
+    }
+
+// -----------------------------------------------------------------------------
+// CRemConKeyEventConverter::SupportedUids
+// Overload of CRemConConverterPlugin -base class function definition.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TBool CRemConKeyEventConverter::SupportedUids( 
+    const TUid& aInterfaceUid, 
+    const TUid& aBearerUid ) const
+    {
+    COM_TRACE_2( "[AccFW:RemConConverter] CRemConKeyEventConverter::SupportedUids(aInterfaceUid=%d, aBearerUid=%d)", aInterfaceUid, aBearerUid );
+    
+    TBool ret(	( 
+    			aInterfaceUid == TUid::Uid(KRemConCoreApiUid) || 
+    			aInterfaceUid == TUid::Uid(KRemConExtPocApiUid) ||
+    			aInterfaceUid == TUid::Uid(KRemConExtSynchronizationApiUid) ||
+    			aInterfaceUid == TUid::Uid(KRemConExtCallHandlingApiUid)
+    			)
+    			
+    			&&
+        		
+        		( 
+        		aBearerUid == TUid::Uid(KRemConBearerUid)
+        		)
+        	 );
+        		
+    COM_TRACE_1( "[AccFW:RemConConverter] CRemConKeyEventConverter::SupportedUids() returns %d", ret );
+    return ret;
+    }    
+    
+// -----------------------------------------------------------------------------
+// CRemConKeyEventConverter::SupportedInterface
+// Overload of CRemConConverterPlugin -base class function definition.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TBool CRemConKeyEventConverter::SupportedInterface(
+    const TDesC8& aInterfaceData, 
+    const TUid& aBearerUid) const
+    {
+    COM_TRACE_1( "[AccFW:RemConConverter] CRemConKeyEventConverter::SupportedInterface(aBearerUid=%d)", aBearerUid.iUid );
+    COM_TRACE_1( "[AccFW:RemConConverter] Compare bearerUID to %d )", KRemConBearerUid );
+    (void) aInterfaceData;
+    TBool ret( aBearerUid == TUid::Uid(KRemConBearerUid) );
+    COM_TRACE_1( "[AccFW:RemConConverter] CRemConKeyEventConverter::SupportedInterface() returns %d", ret );
+    return ret;
+    }
+
+// -----------------------------------------------------------------------------
+// CRemConKeyEventConverter::GetInterface
+// Returns API of this converter, if it's asked.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TAny* CRemConKeyEventConverter::GetInterface( TUid aUid )
+    {
+    COM_TRACE_2( "[AccFW:RemConConverter] CRemConKeyEventConverter::GetInterface() this=%d, aUid=%d", this, aUid );
+
+	TAny* ret = NULL;
+	
+	// Interface version implemented by this converter asked ?
+	if ( aUid == TUid::Uid( KRemConConverterInterface1 ) )
+		{
+		ret = reinterpret_cast<TAny*>(
+			static_cast<MRemConConverterInterface*>( this ) );
+		}
+
+	COM_TRACE_1( "[AccFW:RemConConverter] CRemConKeyEventConverter::GetInterface() this=%d", ret );
+	return ret;
+    }        
+    
+//  End of File