diff -r 65a3ef1d5bd0 -r f742655b05bf convergedconnectionhandler/cchclientapi/src/cchuicchhandler.cpp --- a/convergedconnectionhandler/cchclientapi/src/cchuicchhandler.cpp Thu Aug 19 09:45:22 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,345 +0,0 @@ -/* -* Copyright (c) 2008-2009 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: Provider access to CCH -* -*/ - - -#include "cchuilogger.h" -#include "cchuicchhandler.h" - - -// ======== MEMBER FUNCTIONS ======== - -CCchUiCchHandler::CCchUiCchHandler( CCch& aCch ): - iCchClientApi( aCch ) - { - } - -CCchUiCchHandler* CCchUiCchHandler::NewL( CCch& aCch ) - { - CCchUiCchHandler* self = - new ( ELeave ) CCchUiCchHandler( aCch ); - return self; - } - -CCchUiCchHandler::~CCchUiCchHandler() - { - CCHUIDEBUG( "CCchUiCchHandler::~CCchUiCchHandler - IN" ); - CCHUIDEBUG( "CCchUiCchHandler::~CCchUiCchHandler - OUT" ); - } - -// --------------------------------------------------------------------------- -// Gets snap that service uses. -// --------------------------------------------------------------------------- -// -void CCchUiCchHandler::GetConnectionSnapIdL( - TInt aServiceId, TInt& aSnapId, TInt& aErr ) - { - CCHUIDEBUG( "CCchUiCchHandler::GetConnectionSnapIdL - IN" ); - - CCchService* service = - iCchClientApi.GetService( aServiceId ); - - User::LeaveIfNull( service ); - - aErr = service->GetConnectionParameter( - ECCHUnknown, ECchSnapId, aSnapId ); - - CCHUIDEBUG( "CCchUiCchHandler::GetConnectionSnapIdL - OUT" ); - } - -// --------------------------------------------------------------------------- -// Sets snap for service. -// --------------------------------------------------------------------------- -// -void CCchUiCchHandler::SetConnectionSnapIdL( - TInt aServiceId, TInt aSnapId, TInt& aErr ) - { - CCHUIDEBUG( "CCchUiCchHandler::SetConnectionSnapIdL - IN" ); - - CCchService* service = iCchClientApi.GetService( aServiceId ); - User::LeaveIfNull( service ); - - aErr = service->SetConnectionParameter( - ECCHUnknown, ECchSnapId, aSnapId ); - - CCHUIDEBUG( "CCchUiCchHandler::SetConnectionSnapIdL - OUT" ); - } - -// --------------------------------------------------------------------------- -// Gets service username. -// --------------------------------------------------------------------------- -// -void CCchUiCchHandler::GetUsernameL( - TInt aServiceId, RBuf& aUserName, TInt& aErr ) - { - CCHUIDEBUG( "CCchUiCchHandler::GetUsernameL - IN" ); - - CCchService* service = iCchClientApi.GetService( aServiceId ); - User::LeaveIfNull( service ); - - aErr = service->GetConnectionParameter( - ECCHUnknown, ECchUsername, aUserName ); - - CCHUIDEBUG( "CCchUiCchHandler::GetUsernameL - OUT" ); - } - -// --------------------------------------------------------------------------- -// Sets username for service. -// --------------------------------------------------------------------------- -// -void CCchUiCchHandler::SetUsernameL( - TCCHUiNotifierParams aResultParams, TInt& aErr ) - { - CCHUIDEBUG( "CCchUiCchHandler::SetUsernameL - IN" ); - - CCchService* service = - iCchClientApi.GetService( aResultParams.iServiceId ); - User::LeaveIfNull( service ); - - aErr = service->SetConnectionParameter( - ECCHUnknown, ECchUsername, aResultParams.iUsername ); - - CCHUIDEBUG( "CCchUiCchHandler::SetUsernameL - OUT" ); - } - -// --------------------------------------------------------------------------- -// Sets password for service. -// --------------------------------------------------------------------------- -// -void CCchUiCchHandler::SetPasswordL( - TCCHUiNotifierParams aResultParams, TInt& aErr ) - { - CCHUIDEBUG( "CCchUiCchHandler::SetPasswordL - IN" ); - - CCchService* service = - iCchClientApi.GetService( aResultParams.iServiceId ); - User::LeaveIfNull( service ); - - aErr = service->SetConnectionParameter( - ECCHUnknown, ECchPassword, aResultParams.iPwd ); - - CCHUIDEBUG( "CCchUiCchHandler::SetPasswordL - OUT" ); - } - -// --------------------------------------------------------------------------- -// Starts observing for service events -// --------------------------------------------------------------------------- -// -void CCchUiCchHandler::StartObservingL( - TUint aServiceId, MCchServiceStatusObserver& aObserver ) - { - CCHUIDEBUG2( "CCchUiCchHandler::StartObservingL: service: %d", - aServiceId ); - CCchService* service = iCchClientApi.GetService( aServiceId ); - User::LeaveIfNull( service ); - - TInt err = service->AddObserver( aObserver ); - - if ( KErrNone != err && KErrAlreadyExists != err ) - { - CCHUIDEBUG2( "CCchUiCchHandler::StartObservingL: ERR: %d", - err ); - - User::Leave( err ); - } - } - -// --------------------------------------------------------------------------- -// Enables service -// --------------------------------------------------------------------------- -// -void CCchUiCchHandler::EnableL( TUint aServiceId ) - { - CCHUIDEBUG( "CCchUiCchHandler::EnableL - IN" ); - - CCchService* service = iCchClientApi.GetService( aServiceId ); - User::LeaveIfNull( service ); - service->Enable( ECCHUnknown ); - - CCHUIDEBUG( "CCchUiCchHandler::EnableL - OUT" ); - } - -// --------------------------------------------------------------------------- -// Disables service -// --------------------------------------------------------------------------- -// -void CCchUiCchHandler::DisableL( TUint aServiceId ) - { - CCHUIDEBUG( "CCchUiCchHandler::DisableL - IN" ); - - CCchService* service = iCchClientApi.GetService( aServiceId ); - User::LeaveIfNull( service ); - service->Disable( ECCHUnknown ); - - CCHUIDEBUG( "CCchUiCchHandler::DisableL - OUT" ); - } - -// --------------------------------------------------------------------------- -// CCchUiCchHandler::AllSubservicesInStateL -// --------------------------------------------------------------------------- -// -TBool CCchUiCchHandler::AllSubservicesInStateL( - TUint aServiceId, - TCCHSubserviceState aState ) - { - CCHUIDEBUG( "CCchUiCchHandler::AllSubservicesInStateL - IN" ); - CCHUIDEBUG2( "CCchUiCchHandler::AllSubservicesInStateL : %d", aState ); - - CCchService* service = iCchClientApi.GetService( aServiceId ); - User::LeaveIfNull( service ); - - RArray types; - CleanupClosePushL( types ); - types.AppendL( ECCHVoIPSub ); - types.AppendL( ECCHPresenceSub ); - types.AppendL( ECCHIMSub ); - types.AppendL( ECCHVMBxSub ); - - TBool response( ETrue ); - - for ( TInt i( 0 ) ; i < types.Count() ; i++ ) - { - TBool supported( EFalse ); - TInt err = service->IsSupported( types[ i ], supported ); - - if ( supported && !err ) - { - TCCHSubserviceState state = - GetServiceStateL( aServiceId, types[ i ], err ); - - if ( aState != state && !err ) - { - response = EFalse; - i = types.Count(); // End loop - } - } - } - - CleanupStack::PopAndDestroy( &types ); - - CCHUIDEBUG2( "CCchUiCchHandler::AllSubservicesInStateL : %d", response ); - CCHUIDEBUG( "CCchUiCchHandler::AllSubservicesInStateL - OUT" ); - return response; - } - -// --------------------------------------------------------------------------- -// Stops observing for specific service -// --------------------------------------------------------------------------- -// -void CCchUiCchHandler::StopObservingL( - TUint aServiceId, MCchServiceStatusObserver& aObserver ) - { - CCHUIDEBUG( "CCchUiCchHandler::StopObservingL - IN" ); - - CCchService* service = iCchClientApi.GetService( aServiceId ); - User::LeaveIfNull( service ); - - TInt err = service->RemoveObserver( aObserver ); - - if ( KErrNone != err && KErrNotFound != err ) - { - CCHUIDEBUG2( "CCchUiCchHandler::StopObservingL: ERR: %d", - err ); - - User::Leave( err ); - } - - CCHUIDEBUG( "CCchUiCchHandler::StopObservingL - OUT"); - } - -// --------------------------------------------------------------------------- -// For checking service state. -// --------------------------------------------------------------------------- -// -TCCHSubserviceState CCchUiCchHandler::GetServiceStateL( - TUint aServiceId, TCCHSubserviceType aSubServiceType, TInt& aErr ) - { - CCHUIDEBUG( "CCchUiCchHandler::GetServiceStateL"); - - CCchService* service = iCchClientApi.GetService( aServiceId ); - User::LeaveIfNull( service ); - - TCchServiceStatus serviceStatus; - aErr = service->GetStatus( aSubServiceType, serviceStatus ); - - CCHUIDEBUG2( "GetServiceStateL STATE=%d", serviceStatus.State() ); - - return serviceStatus.State(); - } - -// --------------------------------------------------------------------------- -// For getting current connections iap id. -// --------------------------------------------------------------------------- -// -void CCchUiCchHandler::GetCurrentConnectionIapIdL( - TUint aServiceId, - TCCHSubserviceType aSubServiceType, - TInt& aIapId, - TInt& aErr ) - { - CCHUIDEBUG( "CCchUiCchHandler::GetCurrentConnectionIapIdL - IN" ); - - CCchService* service = iCchClientApi.GetService( aServiceId ); - User::LeaveIfNull( service ); - - aErr = service->GetConnectionParameter( - aSubServiceType, - ECchIapId, - aIapId ); - - // Check that atleast some subservice is really in enabled state - //(connection exists), if not set iap id to 0 - if ( aIapId ) - { - TBool enabledSubServiceFound( EFalse ); - - RArray types; - CleanupClosePushL( types ); - types.AppendL( ECCHVoIPSub ); - types.AppendL( ECCHPresenceSub ); - types.AppendL( ECCHIMSub ); - types.AppendL( ECCHVMBxSub ); - - for ( TInt i( 0 ) ; i < types.Count() ; i++ ) - { - TBool supported( EFalse ); - TInt err = service->IsSupported( types[ i ], supported ); - - if ( supported && !err ) - { - TCCHSubserviceState state = GetServiceStateL( - aServiceId, types[ i ], err ); - - if ( ECCHEnabled == state && !err ) - { - // Enabled subservice found, end loop - enabledSubServiceFound = ETrue; - i = types.Count(); - } - } - } - - // Set aIapId to zero if no subservices in enabled state - if ( !enabledSubServiceFound ) - { - aIapId = 0; - } - - CleanupStack::PopAndDestroy( &types ); - } - - CCHUIDEBUG( "CCchUiCchHandler::GetCurrentConnectionIapIdL - OUT" ); - }