accessoryservices/remotecontrolfw/client/inner/src/session.cpp
changeset 74 9d35fd98f273
parent 0 4e1aa6a622a0
equal deleted inserted replaced
69:dc67b94625c5 74:9d35fd98f273
     1 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
     1 // Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     3 // This component and the accompanying materials are made available
     4 // under the terms of "Eclipse Public License v1.0"
     4 // under the terms of "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
    79 	iReceivePckg(TRemConClientReceivePackage())
    79 	iReceivePckg(TRemConClientReceivePackage())
    80 	{
    80 	{
    81 	LOG_FUNC
    81 	LOG_FUNC
    82 	}
    82 	}
    83 
    83 
    84 EXPORT_C TVersion RRemCon::Version() const
       
    85 	{
       
    86 	LOG_FUNC
       
    87 	return(TVersion(	KRemConSrvMajorVersionNumber,
       
    88 						KRemConSrvMinorVersionNumber,
       
    89 						KRemConSrvBuildNumber
       
    90 					)
       
    91 			);
       
    92 	}
       
    93 
       
    94 EXPORT_C TInt RRemCon::Connect()
    84 EXPORT_C TInt RRemCon::Connect()
    95 	{
    85 	{
    96 	LOG_FUNC
    86 	LOG_FUNC
    97 
    87 
    98 	TInt err = DoConnect();
    88 	TInt err = DoConnect();
    99 	if ( err == KErrNone )
    89 
   100 		{
       
   101 		err = SetClientType();
       
   102 		if ( err != KErrNone )
       
   103 			{
       
   104 			// For this API to be clean, we must clean up the session handle 
       
   105 			// already successfully created.
       
   106 			Close();
       
   107 			}
       
   108 		}
       
   109 	return err;
    90 	return err;
   110 	}
    91 	}
   111 
    92 
   112 EXPORT_C TInt RRemCon::Connect(const TPlayerType& aClientType, const TPlayerSubType& aClientSubType, const TDesC8& aName)
    93 EXPORT_C TInt RRemCon::Connect(const TPlayerType& aPlayerType, const TPlayerSubType& aPlayerSubType, const TDesC8& aName)
   113 	{
    94 	{
   114 	LOG_FUNC
    95 	LOG_FUNC
   115 
    96 
   116 	TInt err = DoConnect();
    97 	TInt err = DoConnect();
   117 	if ( err == KErrNone )	
    98 	if ( err == KErrNone )	
   118 		{
    99 		{
   119 		err = SetClientType(aClientType,aClientSubType,aName);
   100 		err = SetPlayerType(aPlayerType,aPlayerSubType,aName);
   120 		if ( err != KErrNone )
   101 		if ( err != KErrNone )
   121 			{
   102 			{
   122 			// For this API to be clean, we must clean up the session handle 
   103 			// For this API to be clean, we must clean up the session handle 
   123 			// already successfully created.
   104 			// already successfully created.
   124 			Close();
   105 			Close();
   165 /**
   146 /**
   166 Does IPC with the server to set the type of the session from our member (set 
   147 Does IPC with the server to set the type of the session from our member (set 
   167 at construction time).
   148 at construction time).
   168 @return Error.
   149 @return Error.
   169 */
   150 */
   170 TInt RRemCon::SetClientType()
   151 TInt RRemCon::SetPlayerType(const TPlayerType& aPlayerType, const TPlayerSubType& aPlayerSubType, const TDesC8& aName)
   171 	{
       
   172 	LOG_FUNC
       
   173 	return SendReceive(ERemConSetClientType, TIpcArgs(iClientType));
       
   174 	}
       
   175 
       
   176 TInt RRemCon::SetClientType(const TPlayerType& aClientType, const TPlayerSubType& aClientSubType, const TDesC8& aName)
       
   177 	{
   152 	{
   178 	LOG_FUNC
   153 	LOG_FUNC
   179 	TIpcArgs args;
   154 	TIpcArgs args;
   180 	args.Set(0,iClientType);
   155 	// Message slot 0 is not currently used
   181 	iPlayerTypePckg().iPlayerType = aClientType;
   156 	iPlayerTypePckg().iPlayerType = aPlayerType;
   182 	iPlayerTypePckg().iPlayerSubType = aClientSubType;
   157 	iPlayerTypePckg().iPlayerSubType = aPlayerSubType;
   183 	args.Set(1,&iPlayerTypePckg);
   158 	args.Set(1,&iPlayerTypePckg);
   184 	args.Set(2,aName.Length());
   159 	args.Set(2, &aName);
   185 	args.Set(3, &aName);
   160 	return SendReceive(ERemConSetPlayerType, args);
   186 	return SendReceive(ERemConSetClientType, args);
       
   187 	}
   161 	}
   188 
   162 
   189 EXPORT_C TInt RRemCon::SendUnreliable(TUid aInterfaceUid, 
   163 EXPORT_C TInt RRemCon::SendUnreliable(TUid aInterfaceUid, 
   190 		TUint aOperationId, 
   164 		TUint aOperationId, 
   191 		TRemConMessageSubType aSubType,
   165 		TRemConMessageSubType aSubType,
   196 	iOpInfoPckg().iOperationId = aOperationId;
   170 	iOpInfoPckg().iOperationId = aOperationId;
   197 	iOpInfoPckg().iMessageSubType = aSubType;
   171 	iOpInfoPckg().iMessageSubType = aSubType;
   198 	
   172 	
   199 	args.Set(0, aInterfaceUid.iUid);
   173 	args.Set(0, aInterfaceUid.iUid);
   200 	args.Set(1, &iOpInfoPckg);
   174 	args.Set(1, &iOpInfoPckg);
   201 	args.Set(2, &aData);
   175 	args.Set(3, &aData);
   202 	TInt err = SendReceive(ERemConSendUnreliable, args); 
   176 	TInt err = SendReceive(ERemConSendUnreliable, args); 
   203 	return err;
   177 	return err;
   204 	}
   178 	}
   205 
   179 
   206 
   180 
   493 	(void)SendReceive(ERemConDisconnectBearerCancel);
   467 	(void)SendReceive(ERemConDisconnectBearerCancel);
   494 
   468 
   495 	return KErrNone;
   469 	return KErrNone;
   496 	}
   470 	}
   497 
   471 
       
   472 TVersion RRemConController::Version() const
       
   473 	{
       
   474 	LOG_FUNC
       
   475 	return(TVersion(	KRemConSrvMajorVersionNumber,
       
   476 						KRemConSrvMinorVersionNumber,
       
   477 						KRemConSrvControllerSession
       
   478 					)
       
   479 			);
       
   480 	}
       
   481 
   498 EXPORT_C RRemConTarget::RRemConTarget()
   482 EXPORT_C RRemConTarget::RRemConTarget()
   499 :	RRemCon(ERemConClientTypeTarget)
   483 :	RRemCon(ERemConClientTypeTarget)
   500 	{
   484 	{
   501 	LOG_FUNC
   485 	LOG_FUNC
   502 	}
   486 	}
   503 
   487 
       
   488 TVersion RRemConTarget::Version() const
       
   489 	{
       
   490 	LOG_FUNC
       
   491 	return(TVersion(	KRemConSrvMajorVersionNumber,
       
   492 						KRemConSrvMinorVersionNumber,
       
   493 						KRemConSrvTargetSession
       
   494 					)
       
   495 			);
       
   496 	}
       
   497