mmsharing/mmshmanagercli/src/musmanagerclientsession.cpp
changeset 0 f0cf47e981f9
child 31 33a5d2bbf6fc
equal deleted inserted replaced
-1:000000000000 0:f0cf47e981f9
       
     1 /*
       
     2 * Copyright (c) 2006 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:  ?Description
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #include <e32base.h>
       
    20 
       
    21 #include "musmanagerclientsession.h"
       
    22 #include "musmanageripccommon.h"
       
    23 #include "musmanagercommon.h"
       
    24 #include "muslogger.h"
       
    25 #include "musmanager.h"
       
    26 
       
    27 /* Number of outstanding request can be issued by the client 
       
    28    For Mush 8 is normal and if needed it has to be increased 
       
    29    Or decreased . If request exceeds this number then that particular
       
    30    Request will be considered as part of the global pool of request
       
    31 */
       
    32 #define ASYNCHRONOUS_MESSAGE_SLOTS 255
       
    33 
       
    34 // ======== LOCAL FUNCTIONS ========
       
    35 
       
    36 // ---------------------------------------------------------------------------
       
    37 //
       
    38 // ---------------------------------------------------------------------------
       
    39 //
       
    40 RMusManagerClientSession::RMusManagerClientSession()
       
    41     : RSessionBase ()
       
    42     {
       
    43 
       
    44     }
       
    45 
       
    46 // ---------------------------------------------------------------------------
       
    47 //
       
    48 // ---------------------------------------------------------------------------
       
    49 //
       
    50 void RMusManagerClientSession::ConnectL()
       
    51     {
       
    52     MUS_LOG( "mus: [MUSCLI]  -> RMusManagerClientSession::ConnectL()" );
       
    53     TRequestStatus s;
       
    54     User::LeaveIfError( CreateSession( KMusManagerServerName(), Version(),
       
    55                                              ASYNCHRONOUS_MESSAGE_SLOTS, &s ) );
       
    56 
       
    57     User::WaitForRequest( s );
       
    58     MUS_LOG( "mus: [MUSCLI]  <- RMusManagerClientSession::ConnectL()" );
       
    59     }
       
    60 
       
    61 
       
    62 // ---------------------------------------------------------------------------
       
    63 //
       
    64 // ---------------------------------------------------------------------------
       
    65 //
       
    66 void RMusManagerClientSession::Disconnect()
       
    67     {
       
    68     MUS_LOG( "mus: [MUSCLI]  -> RMusManagerClientSession::Disconnect()" );
       
    69     RHandleBase::Close();
       
    70     MUS_LOG( "mus: [MUSCLI]  <- RMusManagerClientSession::Disconnect()" );
       
    71     }
       
    72 
       
    73 // ---------------------------------------------------------------------------
       
    74 //
       
    75 // ---------------------------------------------------------------------------
       
    76 //
       
    77 TVersion RMusManagerClientSession::Version(void) const
       
    78     {
       
    79     MUS_LOG( "mus: [MUSCLI]  -> RMusManagerClientSession::Version()" );
       
    80     MUS_LOG( "mus: [MUSCLI]  <- RMusManagerClientSession::Version()" );
       
    81     return TVersion( KMusManagerServerMajorVersionNumber,
       
    82                      KMusManagerServerMinorVersionNumber,
       
    83                      KMusManagerServerBuildVersionNumber);
       
    84     }
       
    85 
       
    86 
       
    87 // ---------------------------------------------------------------------------
       
    88 //
       
    89 // ---------------------------------------------------------------------------
       
    90 //
       
    91 void RMusManagerClientSession::InvestigateAvailabilityL()
       
    92     {
       
    93     MUS_LOG( "mus: [MUSCLI]  -> RMusManagerClientSession::InvestigateAvailabilityL()" );
       
    94     // construct an empty argument
       
    95     TIpcArgs ipcArgs( TIpcArgs::ENothing );
       
    96 
       
    97     // send
       
    98     User::LeaveIfError( SendReceive( EMusManagerIpcInvestigateAvailability, ipcArgs ) );
       
    99     MUS_LOG( "mus: [MUSCLI]  <- RMusManagerClientSession::InvestigateAvailabilityL()" );
       
   100     }
       
   101 
       
   102 // ---------------------------------------------------------------------------
       
   103 //
       
   104 // ---------------------------------------------------------------------------
       
   105 //
       
   106 MultimediaSharing::TMusAvailabilityStatus RMusManagerClientSession::QueryAvailabilityL()
       
   107     {
       
   108     MUS_LOG( "mus: [MUSCLI]  -> RMusManagerClientSession::QueryAvailabilityL()" );
       
   109     TInt capability;
       
   110     TPckg<TInt> capPckg( capability );
       
   111 
       
   112     // construct a single argument
       
   113     TIpcArgs ipcArgs( &capPckg );
       
   114 
       
   115     // send and wait for answer
       
   116     User::LeaveIfError( SendReceive( EMusManagerIpcAvailabilityQuery, ipcArgs ) );
       
   117 
       
   118     MUS_LOG( "mus: [MUSCLI]  <- RMusManagerClientSession::QueryAvailabilityL()" );
       
   119     return ( MultimediaSharing::TMusAvailabilityStatus ) capability;
       
   120     }
       
   121 
       
   122 // ---------------------------------------------------------------------------
       
   123 //
       
   124 // ---------------------------------------------------------------------------
       
   125 //
       
   126 void RMusManagerClientSession::StartL( MultimediaSharing::TMusUseCase aUseCase )
       
   127     {
       
   128     MUS_LOG( "mus: [MUSCLI]  -> RMusManagerClientSession::StartL()" );
       
   129     TPckg<TInt> pckg( ( TInt ) aUseCase );
       
   130     TIpcArgs ipcArgs( &pckg );
       
   131     // send
       
   132     
       
   133     User::LeaveIfError( SendReceive( EMusManagerIpcStartMultimediaSharing, ipcArgs ) );
       
   134     MUS_LOG( "mus: [MUSCLI]  <- RMusManagerClientSession::StartL()" );
       
   135     }
       
   136 
       
   137 // ---------------------------------------------------------------------------
       
   138 //
       
   139 // ---------------------------------------------------------------------------
       
   140 //
       
   141 void RMusManagerClientSession::StartObservingAvailabilityL()
       
   142     {
       
   143     MUS_LOG( "mus: [MUSCLI]  -> RMusManagerClientSession::\
       
   144     		StartObservingAvailabilityL()" );
       
   145     // construct an empty argument
       
   146     TIpcArgs ipcArgs( TIpcArgs::ENothing );
       
   147     
       
   148     // send
       
   149     User::LeaveIfError( SendReceive( EMusManagerIpcStartObservingAvailability, ipcArgs ) );
       
   150     MUS_LOG( "mus: [MUSCLI]  <- RMusManagerClientSession::\
       
   151     		StartObservingAvailabilityL()" );
       
   152     }
       
   153 
       
   154 // ---------------------------------------------------------------------------
       
   155 //
       
   156 // ---------------------------------------------------------------------------
       
   157 //
       
   158 void RMusManagerClientSession::StopL()
       
   159     {
       
   160     MUS_LOG( "mus: [MUSCLI]  -> RMusManagerClientSession::StopL()" );
       
   161     // construct an empty argument
       
   162     TIpcArgs ipcArgs( TIpcArgs::ENothing );
       
   163 
       
   164     // send
       
   165     User::LeaveIfError( SendReceive( EMusManagerIpcStopMultimediaSharing, ipcArgs ) );
       
   166     MUS_LOG( "mus: [MUSCLI]  -> RMusManagerClientSession::StopL()" );
       
   167     }
       
   168     
       
   169 // ---------------------------------------------------------------------------
       
   170 //
       
   171 // ---------------------------------------------------------------------------
       
   172 //
       
   173 void RMusManagerClientSession::HandleCommandL( 
       
   174 								MultimediaSharing::TCommandType aCommandType )
       
   175 	{
       
   176 	MUS_LOG( "mus: [MUSCLI]  -> RMusManagerClientSession::HandleCommandL()" );
       
   177     // construct a single argument
       
   178     TPckg<TInt> pckg( ( TInt ) aCommandType );
       
   179     TIpcArgs ipcArgs( &pckg );
       
   180     // send
       
   181     User::LeaveIfError( SendReceive( EMusManagerIpcHandleCommand, ipcArgs ) );    
       
   182     MUS_LOG( "mus: [MUSCLI]  <- RMusManagerClientSession::HandleCommandL()" );	
       
   183 	}
       
   184 
       
   185 // ---------------------------------------------------------------------------
       
   186 //
       
   187 // ---------------------------------------------------------------------------
       
   188 //
       
   189 void RMusManagerClientSession::HandleSipRequestL( TInt aUid )
       
   190     {
       
   191     MUS_LOG( "mus: [MUSCLI]  -> RMusManagerClientSession::HandleSipRequestL()" );
       
   192     // construct a single argument
       
   193     TPckg<TInt> pckg( aUid );
       
   194     TIpcArgs ipcArgs( &pckg );
       
   195     // Handle sip options in a different way
       
   196     if (aUid == CMusManager::ESipOptions)
       
   197         {
       
   198         MUS_LOG( "mus: [MUSCLI]  -> This is sip options request sending to server" );
       
   199         User::LeaveIfError( SendReceive( EMusManagerIpcOptionsReceived, ipcArgs ) );
       
   200         }
       
   201     else
       
   202         {
       
   203         MUS_LOG( "mus: [MUSCLI]  -> This is some invitation request sending to server" );
       
   204         User::LeaveIfError( SendReceive( EMusManagerIpcInvitationReceived, ipcArgs ) );
       
   205         }
       
   206         
       
   207     MUS_LOG( "mus: [MUSCLI]  <- RMusManagerClientSession::HandleSipRequestL()" );
       
   208     }
       
   209 
       
   210 // ---------------------------------------------------------------------------
       
   211 //
       
   212 // ---------------------------------------------------------------------------
       
   213 //
       
   214 void RMusManagerClientSession::MonitorAvailabilityL(
       
   215                 TRequestStatus& aRequestStatus,
       
   216                 TIpcArgs& aIpcArgs )
       
   217     {
       
   218     MUS_LOG( "mus: [MUSCLI]  -> RMusManagerClientSession::MonitorAvailabilityL()" );
       
   219     SendReceive( 
       
   220     	EMusManagerIpcMonitorAvailability, 
       
   221     	aIpcArgs,
       
   222     	aRequestStatus );
       
   223     MUS_LOG( "mus: [MUSCLI]  <- RMusManagerClientSession::MonitorAvailabilityL()" );
       
   224     }
       
   225 
       
   226 // ---------------------------------------------------------------------------
       
   227 //
       
   228 // ---------------------------------------------------------------------------
       
   229 //
       
   230 void RMusManagerClientSession::CancelMonitoringL()
       
   231     {
       
   232     MUS_LOG( "mus: [MUSCLI]  -> RMusManagerClientSession::CancelMonitoring()" );
       
   233     // construct an empty argument
       
   234     TIpcArgs ipcArgs( TIpcArgs::ENothing );
       
   235 
       
   236     // send
       
   237     User::LeaveIfError( SendReceive( EMusManagerIpcCancelMonitoring, ipcArgs ) );
       
   238     MUS_LOG( "mus: [MUSCLI]  <- RMusManagerClientSession::CancelMonitoring()" );
       
   239     }