diff -r 65a3ef1d5bd0 -r f742655b05bf commsconfig/cscengine/src/cscengcchhandler.cpp --- a/commsconfig/cscengine/src/cscengcchhandler.cpp Thu Aug 19 09:45:22 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,323 +0,0 @@ -/* -* Copyright (c) 2007-2010 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: For handling interactions betweed UI and CCH. -* -*/ - - -#include - -#include "cscenglogger.h" -#include "cscengcchhandler.h" -#include "mcscengcchobserver.h" - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// --------------------------------------------------------------------------- -// -CCSCEngCCHHandler::CCSCEngCCHHandler( MCSCEngCCHObserver& aObserver ) : - iObserver( aObserver ) - { - } - - -// --------------------------------------------------------------------------- -// --------------------------------------------------------------------------- -// -void CCSCEngCCHHandler::ConstructL() - { - CSCENGDEBUG( "CCSCEngCCHHandler::ConstructL - begin" ); - - iCchClientApi = CCch::NewL(); - - CSCENGDEBUG( "CCSCEngCCHHandler::ConstructL - end" ); - } - - -// --------------------------------------------------------------------------- -// --------------------------------------------------------------------------- -// -EXPORT_C CCSCEngCCHHandler* CCSCEngCCHHandler::NewL( - MCSCEngCCHObserver& aObserver ) - { - CCSCEngCCHHandler* self = new ( ELeave ) CCSCEngCCHHandler( aObserver ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - - -// --------------------------------------------------------------------------- -// --------------------------------------------------------------------------- -// -CCSCEngCCHHandler::~CCSCEngCCHHandler() - { - CSCENGDEBUG( "CCSCEngCCHHandler::~CCSCEngCCHHandler - begin" ); - - delete iCchClientApi; - - CSCENGDEBUG( "CCSCEngCCHHandler::~CCSCEngCCHHandler - end" ); - } - - -// --------------------------------------------------------------------------- -// Disable service. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CCSCEngCCHHandler::DisableService( TInt aServiceId ) - { - CCchService* service = iCchClientApi->GetService( aServiceId ); - - TInt err( KErrNone ); - if ( service ) - { - service->SetObserver( *this ); - err = service->Disable( ECCHUnknown ); - } - else - { - err = KErrArgument; - } - - return err; - } - - -// --------------------------------------------------------------------------- -// Check is service disabled -// --------------------------------------------------------------------------- -// -EXPORT_C TBool CCSCEngCCHHandler::IsServiceDisabled( TInt aServiceId ) - { - TBool disabled( ETrue ); - - if ( !IsDisabled( aServiceId, ECCHVoIPSub ) ) return EFalse; - if ( !IsDisabled( aServiceId, ECCHPresenceSub ) ) return EFalse; - if ( !IsDisabled( aServiceId, ECCHIMSub ) ) return EFalse; - if ( !IsDisabled( aServiceId, ECCHVMBxSub ) ) return EFalse; - - return disabled; - } - -// --------------------------------------------------------------------------- -// Check is service is valid -// --------------------------------------------------------------------------- -// -EXPORT_C TBool CCSCEngCCHHandler::IsServiceValidL( TInt aServiceId ) - { - TBool validService( EFalse ); - - TSupportedSubServices supportedSubServices; - SupportedSubServicesL( aServiceId, supportedSubServices ); - - // Service is valid if some subservice is supported - if ( supportedSubServices.iVoIP || supportedSubServices.iIm || - supportedSubServices.iPresence || supportedSubServices.iVmbx ) - { - validService = ETrue; - } - - return validService; - } - -// --------------------------------------------------------------------------- -// Get supported subservices. -// --------------------------------------------------------------------------- -// -EXPORT_C void CCSCEngCCHHandler::SupportedSubServicesL( - TInt aServiceId, TSupportedSubServices& aSupSubServices ) - { - // Create new cch client for access the latest service info data. - CCchService* service = - CCch::NewLC()->GetService( aServiceId ); - - TBool supported( EFalse ); - - if ( service ) - { - service->IsSupported( ECCHVoIPSub, supported ); - aSupSubServices.iVoIP = supported; - - service->IsSupported( ECCHPresenceSub, supported ); - aSupSubServices.iPresence = supported; - - service->IsSupported( ECCHIMSub, supported ); - aSupSubServices.iIm = supported; - - service->IsSupported( ECCHVMBxSub, supported ); - aSupSubServices.iVmbx = supported; - } - - CleanupStack::PopAndDestroy(); // cch - - CSCENGDEBUG2( - "CCSCEngCCHHandler::SupportedSubServicesL VoIP=%d", - aSupSubServices.iVoIP ); - CSCENGDEBUG2( - "CCSCEngCCHHandler::SupportedSubServicesL Presence=%d", - aSupSubServices.iPresence ); - CSCENGDEBUG2( - "CCSCEngCCHHandler::SupportedSubServicesL IM=%d", - aSupSubServices.iIm ); - CSCENGDEBUG2( - "CCSCEngCCHHandler::SupportedSubServicesL VMBX=%d", - aSupSubServices.iVmbx ); - } - -// --------------------------------------------------------------------------- -// Get cch connection parameter (RBuf). -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CCSCEngCCHHandler::GetConnectionParameter( - TInt aServiceId, - TCchConnectionParameter aConnParam, - RBuf& aConnParamValue ) - { - CSCENGDEBUG( "CCSCEngCCHHandler::GetConnectionParameter" ); - - CCchService* service = - iCchClientApi->GetService( aServiceId ); - - TInt err( KErrNone ); - if ( service ) - { - err = service->GetConnectionParameter( - ECCHUnknown, aConnParam, aConnParamValue ); - } - else - { - err = KErrArgument; - } - - return err; - } - - -// --------------------------------------------------------------------------- -// Get cch connection parameter (TInt). -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CCSCEngCCHHandler::GetConnectionParameter( - TInt aServiceId, - TCchConnectionParameter aConnParam, - TInt& aConnParamValue ) - { - CSCENGDEBUG( "CCSCEngCCHHandler::GetConnectionParameter" ); - - CCchService* service = - iCchClientApi->GetService( aServiceId ); - - - TInt err( KErrNone ); - if ( service ) - { - err = service->GetConnectionParameter( - ECCHUnknown, aConnParam, aConnParamValue ); - } - else - { - err = KErrArgument; - } - - return err; - } - - -// --------------------------------------------------------------------------- -// Set cch connection parameter. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CCSCEngCCHHandler::SetConnectionParameter( - TInt aServiceId, - TCchConnectionParameter aConnParam, - const TDesC& aConnParamValue ) - { - CSCENGDEBUG( "CCSCEngCCHHandler::SetConnectionParameter" ); - - CCchService* service = - iCchClientApi->GetService( aServiceId ); - - TInt err( KErrNone ); - if ( service ) - { - err =service->SetConnectionParameter( - ECCHUnknown, aConnParam, aConnParamValue ); - } - else - { - err = KErrArgument; - } - - return err; - } - -// --------------------------------------------------------------------------- -// CCSCEngCCHHandler::IsDisabled -// --------------------------------------------------------------------------- -// -TBool CCSCEngCCHHandler::IsDisabled( - TInt aServiceId, - TCCHSubserviceType aType ) - { - TBool disabled( EFalse ); - - CCchService* service = - iCchClientApi->GetService( aServiceId ); - - if ( service ) - { - TCchServiceStatus status; - TInt err = service->GetStatus( aType, status ); - - if ( KErrNotFound == err || - ( KErrNone == err && - ( ECCHUninitialized == status.State() || - ECCHDisabled == status.State() ) ) ) - { - disabled = ETrue; - } - } - - return disabled; - } - -// --------------------------------------------------------------------------- -// From class MCchServiceStatusObserver -// --------------------------------------------------------------------------- -// -void CCSCEngCCHHandler::ServiceStatusChanged( - TInt aServiceId, - TCCHSubserviceType aType, - const TCchServiceStatus& aServiceStatus ) - { - CSCENGDEBUG( "CCSCEngCCHHandler::ServiceStatusChanged" ); - - if ( ECCHDisabled == aServiceStatus.State() ) - { - CCchService* service = - iCchClientApi->GetService( aServiceId ); - - if ( service ) - { - service->RemoveObserver(); - } - } - - iObserver.ServiceStatusChanged( - aServiceId, - aType, - aServiceStatus ); - }