vtengines/videoteleng/Src/Audio/CVtEngAudioHandler.cpp
changeset 18 d9b6a8729acd
parent 4 6dc066157ed4
child 23 c378a0498b84
child 27 dcbddbbaf8fd
--- a/vtengines/videoteleng/Src/Audio/CVtEngAudioHandler.cpp	Tue Jan 26 12:01:21 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,709 +0,0 @@
-/*
-* Copyright (c) 2004-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:  Audio handler implementation.
-*
-*/
-
-
-// INCLUDE FILES
-#include    "CVtEngAudioHandler.h"
-#include    "CVtEngSettings.h"
-#include    "CVtEngEventManager.h"
-#include    "VtEngUtils.h"
-#include    <cvtlogger.h>
-#include    <featmgr.h>
-#include    <mmf/server/sounddevice.h>
-#include    <audiopreference.h>
-#include    "VtEngUtils.h"
-#include    "CVtEngStateManager.h"
-#include    "MVtEngSessionInfo.h"
-#include    "CVtEngHandlerContainer.h"
-
-// CONSTANTS
-
-// For DevSound initialization
-const TInt KVtEngUidControlHwDevice = 0x10206593;
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CVtEngAudioHandler::CVtEngAudioHandler
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CVtEngAudioHandler::CVtEngAudioHandler()
-    {
-    __VTPRINT( DEBUG_CONSTRUCT | DEBUG_AUDIO, "AH.c++" )
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngAudioHandler::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CVtEngAudioHandler::ConstructL()
-    {
-    __VTPRINT( DEBUG_CONSTRUCT | DEBUG_AUDIO, "AH.ConstructL" )
-
-    iAccHandler = &CVtEngUtility::AccessoryHandler();
-    iAccHandler->RegisterObserverL( this );
-    iTelephonyAudioRouting = CTelephonyAudioRouting::NewL( *this );
-    iCurrentAudioOutput = iTelephonyAudioRouting->Output();
-
-    // Fetch the mode.
-    User::LeaveIfError( iAccHandler->AccessoryMode( iAccMode ) );
-    __VTPRINT2( DEBUG_AUDIO, "AH.iAccMode %d", ( TInt )iAccMode.iAccessoryMode )
-
-    UpdateCurrentVolume();
-    __VTPRINT( DEBUG_CONSTRUCT | DEBUG_AUDIO, "AH.ConstructL<")
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngAudioHandler::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CVtEngAudioHandler* CVtEngAudioHandler::NewL()
-    {
-    CVtEngAudioHandler* self = new( ELeave ) CVtEngAudioHandler;
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop();
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngAudioHandler::~CVtEngAudioHandler
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CVtEngAudioHandler::~CVtEngAudioHandler()
-    {
-    __VTPRINT( DEBUG_AUDIO, "AH.~<" )
-    delete iRoutingEnabler;
-
-    delete iTelephonyAudioRouting;
-    if ( iAccHandler )
-    	{
-    	iAccHandler->RemoveObserver( this );
-    	}
-    __VTPRINT( DEBUG_AUDIO, "AH.~>" )
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngAudioHandler::HandleL
-// -----------------------------------------------------------------------------
-//
-void CVtEngAudioHandler::HandleL( CVtEngOperation& aOperation )
-    {
-    __VTPRINT2( DEBUG_AUDIO, "AH.HandleL op=%d", ( TInt )iOperation )
-    if ( iOperation )
-        {
-        // While operation is ongoing, another call should not be made.
-        User::Leave( KErrArgument );
-        }
-
-    MVtEngAudio::TVtEngRoutingSetting routeSetting;
-    TVtEngOpParamUtil<MVtEngAudio::TVtEngRoutingSetting>::Set(
-        routeSetting, aOperation );
-
-    switch( routeSetting )
-        {
-        case EActivateHandsfree:
-            SetLoudspeakerL( ETrue, ETrue );
-            break;
-
-        case EDeactivateHansfree:
-            SetLoudspeakerL( EFalse, ETrue );
-            break;
-
-        case EActivateBT:
-            SetBluetoothL( ETrue ); // asynchronous
-            break;
-
-        case EDeactivateBT:
-            SetBluetoothL( EFalse );
-            break;
-        }
-
-    iOperation = &aOperation;
-    __VTPRINT( DEBUG_AUDIO | DEBUG_RETURN, "AH.HandleL" )
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngAudioHandler::SetRoutingEnablerL
-// -----------------------------------------------------------------------------
-//
-void CVtEngAudioHandler::SetRoutingEnablerL( const TBool aEnable )
-    {
-    __VTPRINTENTER( "AHRout.SetRoutingEnablerL" )
-
-    if ( aEnable && !iRoutingEnabler )
-        {
-        // Before connected state audio routing can be changed by the user
-        // only in MO calls. Create temporary devsound only if call is such.
-        const CVtEngHandlerContainer& handlers =
-            CVtEngUtility::StateManager()->Handlers();
-        const MVtEngSessionInfo& session = handlers.Session();
-        MVtEngSessionInfo::TDirection direction =
-            MVtEngSessionInfo::EDirectionNone; // init to MO, if
-        const TInt err( session.GetDirection( direction ) );
-        if ( err == KErrNone && direction == MVtEngSessionInfo::EDirectionMO )
-            {
-            iRoutingEnabler = CRoutingEnabler::NewL();
-            }
-        }
-    else if ( !aEnable )
-        {
-        delete iRoutingEnabler;
-        iRoutingEnabler = NULL;
-        }
-    __VTPRINTEXIT( "AHRout.ReleaseRoutingEnablerL" )
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngAudioHandler::IncreaseVolume
-// -----------------------------------------------------------------------------
-//
-TBool CVtEngAudioHandler::IncreaseVolume()
-    {
-    __VTPRINTENTER( "AH.IncreaseVolume" )
-    TBool adjustOk( AdjustVolume( 1 ) );
-    if ( !adjustOk )
-        {
-        // only reason for AdjustVolume to fail is that volume is max already
-        CVtEngEventManager::NotifyEvent( KVtEngAudioVolumeMax );
-        }
-    __VTPRINTEXITR( "AH.IncreaseVolume %d", adjustOk )
-    return adjustOk;
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngAudioHandler::DecreaseVolume
-// -----------------------------------------------------------------------------
-//
-TBool CVtEngAudioHandler::DecreaseVolume()
-    {
-    __VTPRINTENTER( "AH.DecreaseVolume" )
-    TBool adjustOk( AdjustVolume( -1 ) );
-    if ( !adjustOk )
-        {
-        // only reason for AdjustVolume to fail is that volume is min already
-        CVtEngEventManager::NotifyEvent( KVtEngAudioVolumeMin );
-        }
-    __VTPRINTEXITR( "AH.DecreaseVolume %d", adjustOk )
-    return adjustOk;
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngAudioHandler::AdjustVolume
-// -----------------------------------------------------------------------------
-//
-TBool CVtEngAudioHandler::AdjustVolume( const TInt aDelta )
-    {
-    __VTPRINTENTER( "AH.AdjustVolume" )
-    __VTPRINT2( DEBUG_AUDIO, "AH.AdjustVolume aDelta = %d", aDelta )
-    TBool result( EFalse );
-    CVtEngSettings& settings( CVtEngUtility::Settings() );
-    TVtEngOutputVolume volume;
-    settings.GetVolume( volume.iHandsetVolume, EFalse, EFalse );
-    settings.GetVolume( volume.iHandsfreeVolume, ETrue, EFalse );
-    TAudioRoutingState routingState;
-    GetRoutingState( routingState );
-    TInt& value( ( routingState == EAudioLoudspeaker ) ?
-        volume.iHandsfreeVolume : volume.iHandsetVolume );
-    value += aDelta;
-    TInt validValue( settings.ValidVolume( value ) );
-    if ( validValue == value )
-        {
-        settings.SetVolume(
-            volume.iHandsetVolume,
-            volume.iHandsfreeVolume,
-            ETrue );
-        settings.SetVolume(
-            volume.iHandsetVolume,
-            volume.iHandsfreeVolume,
-            EFalse );
-        result = ETrue;
-        }
-    __VTPRINTEXITR( "AH.AdjustVolume %d", result )
-    return result;
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngAudioHandler::GetRoutingState
-// -----------------------------------------------------------------------------
-//
-TInt CVtEngAudioHandler::GetRoutingState(
-        TAudioRoutingState& aAudioRoutingState )
-    {
-    switch ( iCurrentAudioOutput )
-        {
-        // Wired headset has the highest priority.
-        case CTelephonyAudioRouting::EWiredAudioAccessory:
-            __VTPRINT( DEBUG_CONSTRUCT | DEBUG_AUDIO, "AH.GRS.wired" )
-            aAudioRoutingState = EAudioWiredHeadset;
-            break;
-
-        // Then bluetooth handsfree.
-        case CTelephonyAudioRouting::EBTAudioAccessory:
-            __VTPRINT( DEBUG_CONSTRUCT | DEBUG_AUDIO, "AH.GRS.bt" )
-            aAudioRoutingState = EAudioBT;
-            break;
-
-        // Loudspeaker.
-        case CTelephonyAudioRouting::ELoudspeaker:
-            __VTPRINT( DEBUG_CONSTRUCT | DEBUG_AUDIO, "AH.GRS.IHF" )
-            aAudioRoutingState = EAudioLoudspeaker;
-            break;
-
-        // Handset as fallback.
-        default:
-            __VTPRINT( DEBUG_CONSTRUCT | DEBUG_AUDIO, "AH.GRS.Handset" )
-            aAudioRoutingState = EAudioHandset;
-            break;
-        }
-
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngAudioHandler::GetRoutingAvailability
-// -----------------------------------------------------------------------------
-//
-TInt CVtEngAudioHandler::GetRoutingAvailability(
-        const TAudioRoutingState aAudioRoutingState,
-        TBool& aAvailable )
-    {
-    TAudioRoutingState currentRouting;
-    GetRoutingState( currentRouting ); // always succeeds
-
-    if ( currentRouting == aAudioRoutingState )
-        {
-        // It is possible to route to itself, although it does not make
-        // much sense.
-        aAvailable = ETrue;
-        }
-    else if ( currentRouting == EAudioWiredHeadset )
-        {
-        // For wired headset, audio routings are not possible.
-        aAvailable = EFalse;
-        }
-    else
-        {
-        switch ( aAudioRoutingState )
-            {
-            case EAudioHandset:
-            case EAudioLoudspeaker:
-                // Handset & loudspeaker are always available.
-                aAvailable = ETrue;
-                break;
-
-            case EAudioBT:
-                aAvailable = IsOutputAvailable( CTelephonyAudioRouting::EBTAudioAccessory );
-                break;
-
-            case EAudioWiredHeadset:
-                // Wired headset can not be routed to. When headset is
-                // attached, routing happens automatically.
-                aAvailable = EFalse;
-                break;
-            }
-        }
-
-    __VTPRINT3( DEBUG_AUDIO, "AH.GRA state %d availability=%d",
-        aAudioRoutingState, aAvailable )
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngAudioHandler::GetHeadsetType
-// -----------------------------------------------------------------------------
-//
-TInt CVtEngAudioHandler::GetHeadsetType(
-        TWiredHeadsetType& aHeadsetType )
-    {
-    switch ( iAccMode.iAccessoryMode )
-        {
-        case EAccModeWiredHeadset:
-        case EAccModeWiredCarKit:
-        case EAccModeMusicStand:
-            aHeadsetType = EWiredHeadset;
-            break;
-
-        case EAccModeLoopset:
-            aHeadsetType = EWiredLoopset;
-            break;
-
-        case EAccModeTextDevice:
-            aHeadsetType = EWiredTty;
-            break;
-
-        case EAccModeHandPortable:
-        case EAccModeWirelessHeadset:
-        case EAccModeWirelessCarKit:
-        default:
-            // Not wired headset.
-            aHeadsetType = EWiredNone;
-            break;
-        }
-
-    __VTPRINT2( DEBUG_AUDIO, "AH.HeadsetType=%d", aHeadsetType )
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngAudioHandler::OutputVolume
-// -----------------------------------------------------------------------------
-//
-TInt CVtEngAudioHandler::OutputVolume(
-        const TBool aHandsetVolume ) const
-    {
-    __VTPRINT2( DEBUG_AUDIO, "AH.OutputVolume isHandset=%d", aHandsetVolume )
-    TInt vol = 0;
-    CVtEngSettings& setting = CVtEngUtility::Settings();
-    TInt err( setting.GetVolume( vol, !aHandsetVolume, EFalse ) );
-    if ( err != KErrNone )
-        {
-        vol = err;
-        }
-    __VTPRINT2( DEBUG_AUDIO, "AH.OutputVolume vol=%d",vol )
-    return vol;
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngAudioHandler::SetLoudspeakerL
-// -----------------------------------------------------------------------------
-//
-void CVtEngAudioHandler::SetLoudspeakerL( TBool aTurnOn, TBool /*aShowNote*/ )
-    {
-    __VTPRINTENTER(	"AH.SetLoudspeakerL" )
-    __VTPRINT2( DEBUG_AUDIO, "AH.SetLoudspeakerL %d", aTurnOn )
-    TBool available( EFalse );
-    GetRoutingAvailability( EAudioLoudspeaker, available );
-    if ( !available )
-        {
-        User::Leave( KErrNotSupported );
-        }
-    // Set shownote flag up in telephony audiorouting, before calling SetOutputL.
-    User::LeaveIfError( iTelephonyAudioRouting->SetShowNote( ETrue ) );
-
-    if( aTurnOn )
-        {
-        iTelephonyAudioRouting->SetOutputL( CTelephonyAudioRouting::ELoudspeaker );
-        }
-    else
-        {
-        iTelephonyAudioRouting->SetOutputL( CTelephonyAudioRouting::EHandset );
-        }
-    __VTPRINTEXIT( "AH.SetLoudspeakerL" )
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngAudioHandler::SetBluetoothL
-// -----------------------------------------------------------------------------
-//
-void CVtEngAudioHandler::SetBluetoothL( TBool aTurnOn )
-    {
-    __VTPRINTENTER( "AH.SetBluetoothL" )
-    TBool available( EFalse );
-    GetRoutingAvailability( EAudioBT, available );
-    if ( !available )
-        {
-        User::Leave( KErrNotSupported );
-        }
-    // Set shownote flag up in telephony audiorouting, before calling SetOutputL.
-    User::LeaveIfError( iTelephonyAudioRouting->SetShowNote( ETrue ) );
-
-    if( aTurnOn )
-        {
-        iTelephonyAudioRouting->SetOutputL( CTelephonyAudioRouting::EBTAudioAccessory );
-        }
-    else
-        {
-        iTelephonyAudioRouting->SetOutputL( CTelephonyAudioRouting::EHandset );
-        }
-    __VTPRINTEXIT( "AH.SetBluetoothL" )
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngAudioHandler::AvailableOutputsChanged
-// -----------------------------------------------------------------------------
-//
-void CVtEngAudioHandler::AvailableOutputsChanged(
-    CTelephonyAudioRouting& /*aTelephonyAudioRouting*/ )
-    {
-    __VTPRINTENTER( "AH.AvailableOutputsChanged" )
-    CVtEngEventManager::NotifyEvent( KVtEngAudioRoutingAvailabilityChanged );
-    __VTPRINTEXIT( "AH.AvailableOutputsChanged" )
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngAudioHandler::OutputChanged
-// -----------------------------------------------------------------------------
-//
-void CVtEngAudioHandler::OutputChanged(
-    CTelephonyAudioRouting& aTelephonyAudioRouting )
-    {
-    __VTPRINTENTER( "AH.OutputChanged" )
-    CTelephonyAudioRouting::TAudioOutput
-        previousAudioOutput( iCurrentAudioOutput );
-    iCurrentAudioOutput = aTelephonyAudioRouting.Output();
-    CVtEngEventManager::NotifyEvent( KVtEngAudioRoutingChanged );
-    // HandSet -> IHF
-    if( ( previousAudioOutput == CTelephonyAudioRouting::EHandset ) &&
-        ( iCurrentAudioOutput == CTelephonyAudioRouting::ELoudspeaker ) )
-        {
-        __VTPRINT( DEBUG_AUDIO, "AH.OutputChanged signalling HandSet to IHF" )
-        }
-    // IHF -> HandSet
-    else if( ( previousAudioOutput == CTelephonyAudioRouting::ELoudspeaker ) &&
-        ( iCurrentAudioOutput == CTelephonyAudioRouting::EHandset ) )
-        {
-        __VTPRINT( DEBUG_AUDIO, "AH.OutputChanged signalling IHF to HandSet" )
-        }
-    UpdateCurrentVolume();
-    __VTPRINTEXITR( "AH.OutputChanged %d", iCurrentAudioOutput )
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngAudioHandler::SetOutputComplete
-// -----------------------------------------------------------------------------
-//
-void CVtEngAudioHandler::SetOutputComplete(
-    CTelephonyAudioRouting& aTelephonyAudioRouting,
-    TInt aError )
-    {
-    __VTPRINTENTER( "AH.SetOutputComplete" )
-    if ( aError == KErrNone )
-        {
-        OutputChanged( aTelephonyAudioRouting );
-        }
-    CompleteOperation( aError );
-    __VTPRINTEXIT( "AH.SetOutputComplete" )
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngAudioHandler::CompleteOperation
-// -----------------------------------------------------------------------------
-//
-void CVtEngAudioHandler::CompleteOperation( TInt aResult )
-    {
-    __VTPRINT3( DEBUG_AUDIO, "AH.CompleteOperation op=%d,res=%d" ,
-        ( TInt )iOperation, aResult )
-    if ( iOperation )
-        {
-        iOperation->HandleOpComplete( aResult );
-        iOperation = NULL;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngAudioHandler::UpdateCurrentVolume
-// -----------------------------------------------------------------------------
-//
-void CVtEngAudioHandler::UpdateCurrentVolume()
-    {
-    __VTPRINTENTER( "AH.UpdateCurrentVolume" )
-    TAudioRoutingState currentRouting = EAudioHandset;
-    GetRoutingState( currentRouting );
-
-    const TBool currentVolume = ( currentRouting == EAudioLoudspeaker );
-    CVtEngSettings& setting = CVtEngUtility::Settings();
-    setting.SetCurrentVolume( currentVolume );
-
-    __VTPRINTEXITR( "AH.UpdateCurrentVolume output is IHF=%d", currentVolume )
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngAudioHandler::AccessoryModeChanged
-// -----------------------------------------------------------------------------
-//
-void CVtEngAudioHandler::AccessoryModeChanged(
-    const TAccMode& aMode, const TBool /* aActivated */ )
-    {
-    iAccMode.iAccessoryMode = aMode;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CVtEngAudioHandler::IsOutputAvailable
-// -----------------------------------------------------------------------------
-//
-TBool CVtEngAudioHandler::IsOutputAvailable(
-    const CTelephonyAudioRouting::TAudioOutput aOutput )
-    {
-    const TArray< CTelephonyAudioRouting::TAudioOutput > outputs =
-        iTelephonyAudioRouting->AvailableOutputs();
-
-    for ( TInt i = 0; i < outputs.Count(); i++ )
-        {
-        if ( outputs[ i ] == aOutput )
-            {
-            return ETrue;
-            }
-        }
-    return EFalse;
-    }
-// -----------------------------------------------------------------------------
-// CRoutingEnabler::NewL
-// -----------------------------------------------------------------------------
-//
-CRoutingEnabler* CRoutingEnabler::NewL()
-    {
-    CRoutingEnabler* enabler =
-        new ( ELeave ) CRoutingEnabler();
-    CleanupStack::PushL( enabler );
-    enabler->StartL();
-    CleanupStack::Pop( enabler );
-    return enabler;
-    }
-
-// Destructor
-CRoutingEnabler::~CRoutingEnabler()
-    {
-    if ( iDevSound )
-    	{
-        // If initialization ahs been successfull, Devsound Play has started
-        // and need to be stopped.
-        if( !iDevsoundInitializeFailure )
-            {
-            __VTPRINT( DEBUG_MEDIA, "AHRout.~ Stopping audio" )
-    	    iDevSound->Stop();
-            }
-        delete iDevSound;
-    	iDevSound = NULL;
-        }
-    }
-
-// c++ constructor
-CRoutingEnabler::CRoutingEnabler()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CRoutingEnabler::StartL
-// -----------------------------------------------------------------------------
-//
-void CRoutingEnabler::StartL()
-    {
-    __VTPRINTENTER( "AHRout.StartL" )
-    iDevSound = CMMFDevSound::NewL();
-
-    iDevSound->InitializeL(
-        *( this ),
-        EMMFStatePlaying );
-    __VTPRINTEXIT( "AHRout.StartL" )
-    }
-
-// -----------------------------------------------------------------------------
-// CRoutingEnabler::InitializeComplete
-// -----------------------------------------------------------------------------
-//
-void CRoutingEnabler::InitializeComplete( TInt aError )
-    {
-    __VTPRINTENTER( "AHRout.InitializeComplete" )
-    if ( aError == KErrNone )
-        {
-        TMMFPrioritySettings prioritySettings;
-        prioritySettings.iPriority = KAudioPriorityCSCallDownlink;
-        prioritySettings.iPref =
-            ( TMdaPriorityPreference ) KAudioPrefCSCallDownlink;
-        prioritySettings.iState = EMMFStatePlaying;
-        if ( iDevSound )
-            {
-            iDevSound->SetPrioritySettings( prioritySettings );
-
-            TRAPD( err, iDevSound->PlayInitL() );
-            if ( err != KErrNone )
-            	{
-            	__VTPRINT2( DEBUG_AUDIO, "AHRout.InitializeComplete PlayInitL err=%d", err )
-
-                // Devsound PlayInitL leave error happened.
-                iDevsoundInitializeFailure = ETrue;
-            	}
-            }
-        }
-    else
-        {
-        __VTPRINT2( DEBUG_AUDIO, "AHRout.InitializeComplete err=%d", aError )
-
-        // Devsound initialization failed
-        iDevsoundInitializeFailure = ETrue;
-        }
-    __VTPRINTEXIT( "AHRout.InitializeComplete" )
-    }
-
-// -----------------------------------------------------------------------------
-// CRoutingEnabler::ToneFinished
-// -----------------------------------------------------------------------------
-//
-void CRoutingEnabler::ToneFinished( TInt /*aError*/)
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CRoutingEnabler::BufferToBeFilled
-// -----------------------------------------------------------------------------
-//
-void CRoutingEnabler::BufferToBeFilled(
-    CMMFBuffer* /*aBuffer*/)
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CRoutingEnabler::PlayError
-// -----------------------------------------------------------------------------
-//
-void CRoutingEnabler::PlayError( TInt /*aError*/)
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CRoutingEnabler::BufferToBeEmptied
-// -----------------------------------------------------------------------------
-//
-void CRoutingEnabler::BufferToBeEmptied(
-    CMMFBuffer* /*aBuffer*/ )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CRoutingEnabler::RecordError
-// -----------------------------------------------------------------------------
-//
-void CRoutingEnabler::RecordError(
-    TInt /*aError*/ )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CRoutingEnabler::ConvertError
-// -----------------------------------------------------------------------------
-//
-void CRoutingEnabler::ConvertError( TInt /*aError*/ )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CRoutingEnabler::DeviceMessage
-// -----------------------------------------------------------------------------
-//
-void CRoutingEnabler::DeviceMessage(
-    TUid /*aMessageType*/, const TDesC8& /*aMsg*/ )
-    {
-    }
-
-//  End of File