convergedcallengine/csplugin/src/cspdevsound.cpp
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:15:03 +0100
branchRCL_3
changeset 20 987c9837762f
parent 0 ff3b6d0fd310
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201033 Kit: 201035

/*
* Copyright (c) 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:  Wrapper for CMMFDevSound
*
*/


#include "cspdevsound.h"
#include "csplogger.h"
#include "mcspdevsoundobserver.h"

#include <AudioPreference.h>
#include <S60FourCC.h>

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

// ---------------------------------------------------------------------------
// CSPDevSound
// ---------------------------------------------------------------------------
//
CSPDevSound::CSPDevSound( MCSPDevSoundObserver& aObserver ) : 
    iObserver( aObserver )
    {
    }

// ---------------------------------------------------------------------------
// ConstructL
// ---------------------------------------------------------------------------
//
void CSPDevSound::ConstructL( 
    TMMFState aMode, 
    TUint aAudioPreference,
    TUint aAudioPriority )
    {
    CSPLOGSTRING( CSPINT, "CSPDevSound::ConstructL; Entry" );

    TFourCC modemFourCC;
    modemFourCC.Set(KS60FourCCCodeModem);

    iDevSound = CMMFDevSound::NewL();
#ifndef __WINSCW__
    iDevSound->InitializeL( *this, modemFourCC, aMode  );   
#endif
    iPrioritySettings.iPriority = aAudioPriority;
    iPrioritySettings.iPref = 
        static_cast<TMdaPriorityPreference>( aAudioPreference );
    iPrioritySettings.iState = aMode;    
    CSPLOGSTRING( CSPINT, "CSPDevSound::ConstructL; Exit" );
    }
    
// ---------------------------------------------------------------------------
// From class MDevSoundObserver
// Not implemented
// ---------------------------------------------------------------------------
//
CSPDevSound::~CSPDevSound()
    {
    delete iDevSound;
    }
    
// ---------------------------------------------------------------------------
// Tries to activate the audio stream if not active or activating
// ---------------------------------------------------------------------------
//
void CSPDevSound::Activate() 
    {
    CSPLOGSTRING( CSPINT, "CSPDevSound::Activate" );
    if( !IsActive() && !IsActivationOngoing() )
        {
        iActivationOngoing = ETrue;
        TInt err = KErrNone; 
        TRAP( err, DoActivateL() );
        CSPLOGSTRING2( CSPINT, "CSPDevSound::Activate %d", err );
        }
    }
    
// ---------------------------------------------------------------------------
// Deactivates the audio device.
// ---------------------------------------------------------------------------
//
void CSPDevSound::Deactivate()
    {
    CSPLOGSTRING( CSPINT, "CSPDevSound::Deactivate" );
    if( IsActive() || IsActivationOngoing() )
        {
    	CSPLOGSTRING( CSPINT, "CSPDevSound::Deactivate Stopping" );
        iDevSound->Stop();
        iActive = EFalse;
        iActivationOngoing = EFalse;
        }
    }
    
// ---------------------------------------------------------------------------
// ActivationOngoing
// ---------------------------------------------------------------------------
//
TBool CSPDevSound::IsActivationOngoing() const 
    {
    return iActivationOngoing;
    }
    
// ---------------------------------------------------------------------------
// IsActive
// ---------------------------------------------------------------------------
//
TBool CSPDevSound::IsActive() const
    {
    return iActive;
    }
    
CMMFDevSound& CSPDevSound::DevSound()
    {
    return *iDevSound;
    }

// ---------------------------------------------------------------------------
// From class MDevSoundObserver
// Not implemented
// ---------------------------------------------------------------------------
//
void CSPDevSound::InitializeComplete( TInt aError ) 
    {
    CSPLOGSTRING( CSPINT, "CSPDevSound::InitializeComplete" );
    if( aError == KErrNone )
        {
        iDevSound->SetPrioritySettings( iPrioritySettings );   
            
        }
        
    }

// ---------------------------------------------------------------------------
// From class MDevSoundObserver
// Not implemented
// ---------------------------------------------------------------------------
//
void CSPDevSound::BufferToBeFilled( CMMFBuffer* /*aBuffer*/ )
    {
    }

// ---------------------------------------------------------------------------
// From class MDevSoundObserver
// Not implemented
// ---------------------------------------------------------------------------
//
void CSPDevSound::PlayError( TInt /*aError*/ )
    {
    }

// ---------------------------------------------------------------------------
// From class MDevSoundObserver
// Not implemented
// ---------------------------------------------------------------------------
//
void CSPDevSound::ToneFinished( TInt /*aError*/ )
    {
    }

// ---------------------------------------------------------------------------
// From class MDevSoundObserver
// Not implemented
// ---------------------------------------------------------------------------
//
void CSPDevSound::BufferToBeEmptied( CMMFBuffer* /*aBuffer*/ )
    {
    }

// ---------------------------------------------------------------------------
// From class MDevSoundObserver
// Not implemented
// ---------------------------------------------------------------------------
//
void CSPDevSound::RecordError( TInt /*aError*/ )
    {
    }

// ---------------------------------------------------------------------------
// From class MDevSoundObserver
// Not implemented
// ---------------------------------------------------------------------------
//
void CSPDevSound::ConvertError( TInt /*aError*/ )
    {
    }

// ---------------------------------------------------------------------------
// From class MDevSoundObserver
// Not implemented
// ---------------------------------------------------------------------------
//
void CSPDevSound::DeviceMessage( 
    TUid /*aMessageType*/, 
    const TDesC8& /*aMsg*/ )
    {
    }
 
//  End of File