/*
* 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