multimediacommsengine/mmcecli/src/mce.cpp
changeset 0 1bce908db942
equal deleted inserted replaced
-1:000000000000 0:1bce908db942
       
     1 /*
       
     2 * Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:    
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 
       
    21 
       
    22 #include "mce.h"
       
    23 #include "mceserverstarter.h"
       
    24 #include "mceclient.pan"
       
    25 #include "mceclilogs.h"
       
    26 
       
    27 #define RETURN_IF_ERROR(err) {TInt _err=err; if(_err!=KErrNone) {return _err;}}
       
    28 
       
    29 // -----------------------------------------------------------------------------
       
    30 // RMce::RMce
       
    31 // -----------------------------------------------------------------------------
       
    32 //
       
    33 RMce::RMce() 
       
    34  : RSessionBase (),
       
    35    iConnected (EFalse)
       
    36 	{
       
    37 	}
       
    38 
       
    39 // -----------------------------------------------------------------------------
       
    40 // RMce::Version
       
    41 // -----------------------------------------------------------------------------
       
    42 //
       
    43 TVersion RMce::Version(void) const
       
    44 	{
       
    45     TVersion version (KMceServerMajorVersionNumber,
       
    46                       KMceServerMinorVersionNumber,
       
    47                       KMceServerBuildVersionNumber);
       
    48     return version;
       
    49 	}
       
    50 
       
    51 // -----------------------------------------------------------------------------
       
    52 // RMce::Connect
       
    53 // -----------------------------------------------------------------------------
       
    54 //
       
    55 TInt RMce::Connect (const TUid& aUid)
       
    56 	{
       
    57     MCECLI_DEBUG("RMce::Connect, Entry");
       
    58     MCECLI_DEBUG_DVALUE("uid", aUid.iUid );
       
    59 
       
    60     RETURN_IF_ERROR (MceServerStarter::Start ())
       
    61 
       
    62     RETURN_IF_ERROR (CreateSession (KMceServerName,Version()))
       
    63 
       
    64 	RETURN_IF_ERROR (SendClientUid(aUid))
       
    65 
       
    66     iConnected = ETrue;
       
    67 
       
    68     MCECLI_DEBUG("RMce::Connect, Exit");
       
    69     
       
    70     return KErrNone;
       
    71 	}
       
    72 
       
    73 // -----------------------------------------------------------------------------
       
    74 // RMce::Connect
       
    75 // -----------------------------------------------------------------------------
       
    76 //
       
    77 TInt RMce::Connect ()
       
    78 	{
       
    79     MCECLI_DEBUG("RMce::Connect, Entry");
       
    80     RETURN_IF_ERROR (MceServerStarter::Start ())
       
    81 
       
    82     RETURN_IF_ERROR (CreateSession (KMceServerName,Version()))
       
    83 
       
    84     iConnected = ETrue;
       
    85     MCECLI_DEBUG("RMce::Connect, Exit");
       
    86     
       
    87     return KErrNone;
       
    88 	}
       
    89 
       
    90 // -----------------------------------------------------------------------------
       
    91 // RMce::Close
       
    92 // -----------------------------------------------------------------------------
       
    93 //
       
    94 void RMce::Close()
       
    95 	{
       
    96     MCECLI_DEBUG("RMce::Close, Entry");
       
    97     iConnected = EFalse;
       
    98     RHandleBase::Close();
       
    99     MCECLI_DEBUG("RMce::Close, Exit");
       
   100 	}
       
   101 
       
   102 // -----------------------------------------------------------------------------
       
   103 // RMce::Send
       
   104 // From MMceItc
       
   105 // -----------------------------------------------------------------------------
       
   106 //
       
   107 TInt RMce::Send (TMceItcFunctions aFunction, TIpcArgs& aArgs)
       
   108 	{
       
   109 	__ASSERT_ALWAYS (iConnected, Panic( KErrCouldNotConnect ));
       
   110 
       
   111 	return SendReceive (aFunction, aArgs);
       
   112 	}
       
   113 
       
   114 // -----------------------------------------------------------------------------
       
   115 // RMce::Receive
       
   116 // From MMceItc
       
   117 // -----------------------------------------------------------------------------
       
   118 //
       
   119 void RMce::Receive (TIpcArgs& aArgs, TRequestStatus& aStatus)
       
   120 	{
       
   121     MCECLI_DEBUG("RMce::Receive, Entry");
       
   122 	__ASSERT_ALWAYS (iConnected, Panic(KErrCouldNotConnect));
       
   123 	
       
   124     MCECLI_DEBUG("ITC=EMceItcClientReadyToReceive");
       
   125 	SendReceive( EMceItcClientReadyToReceive,aArgs,aStatus);
       
   126 
       
   127     MCECLI_DEBUG("RMce::Receive, Exit");
       
   128 	
       
   129 	}
       
   130 
       
   131 // -----------------------------------------------------------------------------
       
   132 // RMce::Receive
       
   133 // From MMceItc
       
   134 // -----------------------------------------------------------------------------
       
   135 //
       
   136 TInt RMce::Receive (TIpcArgs& aArgs, TPtr8 aContext, TPtr8 aContent )
       
   137 	{
       
   138     MCECLI_DEBUG("RMce::Receive, Entry");
       
   139 	
       
   140 	__ASSERT_ALWAYS (iConnected, Panic( KErrCouldNotConnect ) );
       
   141 
       
   142     aArgs.Set( EMceItcArgContext, &aContext);
       
   143     aArgs.Set( EMceItcArgMessageContent, &aContent );
       
   144 
       
   145     MCECLI_DEBUG("ITC=EMceItcReceive");
       
   146     TInt status = SendReceive( EMceItcReceive, aArgs);
       
   147     
       
   148     MCECLI_DEBUG_DVALUE("RMce::Receive, Exit. status", status );
       
   149 
       
   150 	return status;
       
   151 	}
       
   152 
       
   153 
       
   154 // -----------------------------------------------------------------------------
       
   155 // RMce::CancelReceive
       
   156 // From MMceItc
       
   157 // -----------------------------------------------------------------------------
       
   158 //
       
   159 void RMce::CancelReceive ( TIpcArgs& aArgs )
       
   160 	{
       
   161     MCECLI_DEBUG("RMce::CancelReceive, Entry");
       
   162     __ASSERT_ALWAYS (iConnected, Panic(KErrCouldNotConnect));
       
   163 
       
   164     MCECLI_DEBUG("ITC=EMceItcClientCancelReceive");
       
   165     SendReceive ( EMceItcClientCancelReceive, aArgs );
       
   166     MCECLI_DEBUG("RMce::CancelReceive, Exit");
       
   167 	}
       
   168 
       
   169 // -----------------------------------------------------------------------------
       
   170 // RMce::SendAppUid
       
   171 // -----------------------------------------------------------------------------
       
   172 //
       
   173 TInt RMce::SendClientUid ( const TUid& aUid ) const
       
   174 	{
       
   175     MCECLI_DEBUG("RMce::SendClientUid, Entry");
       
   176 	TMceIds ids;
       
   177 	ids.iAppUID = aUid.iUid;
       
   178 	
       
   179     TPckgBuf<TInt> clientUidPckg( aUid.iUid );
       
   180     TPckgBuf<TMceIds> idsPckg( ids );
       
   181     TIpcArgs itcMsgArgs;
       
   182     
       
   183     itcMsgArgs.Set(EMceItcArgIds, &idsPckg);
       
   184     itcMsgArgs.Set(EMceItcArgAppUid, &clientUidPckg);
       
   185 
       
   186     TInt status = SendReceive ( EMceItcSetAppUid, itcMsgArgs);
       
   187 
       
   188     MCECLI_DEBUG_DVALUE("RMce::SendClientUid, Exit. status", status );
       
   189 
       
   190 	return status;
       
   191     
       
   192 	
       
   193 	}
       
   194 
       
   195 // -----------------------------------------------------------------------------
       
   196 // RMce::Panic
       
   197 // -----------------------------------------------------------------------------
       
   198 //
       
   199 void RMce::Panic (TInt aReason) const
       
   200 	{
       
   201     MCECLI_DEBUG("RMce::Panic, Entry");
       
   202     User::Panic( KMceClientPanic, aReason);
       
   203 	}