phoneuis/TelephonyDeviceMode/src/CTelDMHandlerImpl.cpp
author William Roberts <williamr@symbian.org>
Thu, 22 Jul 2010 16:33:21 +0100
branchGCC_SURGE
changeset 51 f39ed5e045e0
parent 22 6bb1b21d2484
parent 37 ba76fc04e6c2
permissions -rw-r--r--
Catchup to latest Symbian^4

/*
* Copyright (c) 2005-2006 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:  Implementation of the CTelDMFactoryImpl class.
*
*/



// INCLUDE FILES
#include    <featmgr.h>
#include    <mphonedevicemodeobserver.h>
#include    <telinternalpskeys.h>
#include    "cteldmhandlerimpl.h"
#include    "cteldmgriphandler.h"
#include    "cteldmcommandhandler.h"
#include    "cteldmcallstatelistener.h"
#include    "cteldmaudioaccessorylistener.h"
#include    "cteldmdebug.h"
 
// MODULE DATA STRUCTURES

// ============================ MEMBER FUNCTIONS ===============================

// -----------------------------------------------------------------------------
// CTelDMHandlerImpl
// 
// Creates instance of telephony device mode factory.
// -----------------------------------------------------------------------------
//
EXPORT_C CTelDMHandler* CTelDMHandlerCreateL()
    {
    return CTelDMHandlerImpl::NewL();
    }

// -----------------------------------------------------------------------------
// CTelDMHandlerImpl::CTelDMHandlerImpl
// C++ default constructor can NOT contain any code, that
// might leave.
// -----------------------------------------------------------------------------
//
CTelDMHandlerImpl::CTelDMHandlerImpl()
    {
    }

// -----------------------------------------------------------------------------
// CTelDMHandlerImpl::~CTelDMHandlerImpl
// -----------------------------------------------------------------------------
//    
CTelDMHandlerImpl::~CTelDMHandlerImpl()
    {
    delete iCallStateListener;
    delete iAccessory;
    delete iCommandHandler;
    delete iGrip;
    FLOG( _L( "CTelDMHandlerImpl::~CTelDMHandlerImpl()" ) )
    }

// -----------------------------------------------------------------------------
// CTelDMHandlerImpl::NewL
// 
// -----------------------------------------------------------------------------
//
CTelDMHandlerImpl* CTelDMHandlerImpl::NewL()
    {
    CTelDMHandlerImpl* self = new( ELeave ) CTelDMHandlerImpl;
    return self;
    }

// -----------------------------------------------------------------------------
// CTelDMHandlerImpl::SetObserverL
// 
// -----------------------------------------------------------------------------
//
void CTelDMHandlerImpl::SetObserverL( MPhoneDeviceModeObserver* aCallHandler )
    {
    // Default
    RProperty::Set( 
        KPSUidTelAudioPreference,
        KTelAudioOutput,
        EPSAudioPrivate );                
                        
    if ( !FeatureManager::FeatureSupported( KFeatureIdKeypadNoSlider ) )
        {
        iCallStateListener = CTelDMCallStateListener::NewL();
        iAccessory = CTelDMAudioAccessoryListener::NewL();
        // Disconnects and answers to calls 
        iCommandHandler = CTelDMCommandHandler::NewL( 
                                            *aCallHandler, 
                                            *iAccessory );

        iCallStateListener->AddObserverL( *iCommandHandler );
        
        iGrip = CTelDMGripHandler::NewL( *iCommandHandler );

        }
    }

//  End of File