diff -r cfea66083b62 -r baacf668fe89 phoneapp/phoneringingtoneplayer/src/cphoneringingtoneplayer.cpp --- a/phoneapp/phoneringingtoneplayer/src/cphoneringingtoneplayer.cpp Mon Oct 04 16:06:10 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,967 +0,0 @@ -/* -* Copyright (c) 2009 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: -* -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "cphoneringingtoneplayer.h" -#include "cphoneaudioplayer.h" -#include "cphoneringingtone.h" -#include "phonelogger.h" -#include "cphonecenrepproxy.h" -#include "cphonepubsubproxy.h" -#include "cphonetimer.h" -#include "phoneconstants.h" -#include "phoneui.pan" - -CPhoneRingingtonePlayer::CPhoneRingingtonePlayer(): -CActive( CActive::EPriorityStandard ), iAsyncDeletePlayers( EPlayerCount ) -{ - CActiveScheduler::Add( this ); -} - -CPhoneRingingtonePlayer::~CPhoneRingingtonePlayer() - { - iAsyncDeletePlayers.ResetAndDestroy(); - iAsyncDeletePlayers.Close(); - - delete iTimer; - - CleanupPlayers(); - - Cancel(); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPhoneRingingtonePlayer::CleanupPlayers() - { - __LOGMETHODSTARTEND( EPhoneControl, "CPhoneRingingtonePlayer::CleanupPlayers()" ); - - delete iAudioPlayer; - iAudioPlayer = NULL; - delete iDefaultPlayer; - iDefaultPlayer = NULL; - delete iBeepOncePlayer; - iBeepOncePlayer = NULL; - delete iSilentPlayer; - iSilentPlayer = NULL; - delete iBackupPlayer; - iBackupPlayer = NULL; - delete iMdaServer; - iMdaServer = NULL; - } -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CPhoneRingingtonePlayer* CPhoneRingingtonePlayer::NewL() - { - CPhoneRingingtonePlayer* self = - new ( ELeave ) CPhoneRingingtonePlayer(); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - return self; - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPhoneRingingtonePlayer::ConstructL() - { - - // Construct timer. - iTimer = CPhoneTimer::NewL(); - - for ( TInt i = EPlayerFirst; i <= EPlayerLast; i++ ) - { - User::LeaveIfError( - iAsyncDeletePlayers.Append( NULL ) ); - } - - //disabling the DRM for the TB10.1wk46 release. Lets see if need to put it back and how. - //iExtSecNeeded = ( ( err == KErrNone ) && extSecNeeded ) ? ETrue : EFalse; - iExtSecNeeded = EFalse; - - // Construct players. - if ( !iMdaServer ) - { - iMdaServer = CMdaServer::NewL(); - } - - // Backup player. - ConstructBackupPlayer(); - ConstructDefaultPlayerL(); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPhoneRingingtonePlayer::PlayProfileBasedTone( CPhoneRingingTone* aAudioVideoRingingTone ) - { - iAudioVideoRingingTone = aAudioVideoRingingTone; - // Construct player for line 1. - if ( !iAudioPlayer ) - { - iAudioPlayer = ConstructTonePlayer( - *iAudioVideoRingingTone, - EPlayerAudio ); - if ( !iTimer->IsActive() ) - { - // Start timer, since the player is constructed. - iTimer->After( KPhoneMaxRingingWaiting, this ); - } - } - - // Start playing. - if ( !iAudioPlayer ) - { - iTimer->Cancel(); - PlayDefaultTone( aAudioVideoRingingTone->Volume(), - aAudioVideoRingingTone->RingingType() ); - } - else - { - __PHONELOG( - EBasic, - EPhoneControl, - "CPhoneRingingtonePlayer::PlayAudioRingTone - Start playing audio" ); - iVolume = aAudioVideoRingingTone->Volume(); - iRingingType = aAudioVideoRingingTone->RingingType(); - //AddTtsPlaybackIfNeeded( aRingingType ); - iTonePlayingStatus = EAudioTonePlaying; - iAudioPlayer->Play( - ConvertRingingType( aAudioVideoRingingTone->RingingType() ), - aAudioVideoRingingTone->Volume(), - aAudioVideoRingingTone->TtsToneToBePlayed()); - } - } -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPhoneRingingtonePlayer::PlayBeepOnce( TInt aVolume ) - { - __LOGMETHODSTARTEND( EPhoneControl, "CPhoneRingingtonePlayer::BeepOnce()" ); - __PHONELOG1( EBasic, EPhoneControl, "CPhoneRingingtonePlayer::BeepOnce - aVolume(%d)", - aVolume ); - - if ( !iBeepOncePlayer ) - { - ConstructSequencePlayer( EPlayerBeepOnce ); - } - - if ( iBeepOncePlayer ) - { - __PHONELOG( - EBasic, - EPhoneControl, - "CPhoneRingingtonePlayer::BeepOnce - Play" ); - iTonePlayingStatus = EBeepOnce; - iBeepOncePlayer->Play( CPhoneAudioPlayer::ETypeRingingOnce, - aVolume, EFalse ); - } - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPhoneRingingtonePlayer::PlaySilentTone() - { - __LOGMETHODSTARTEND( EPhoneControl, "CPhoneRingingtonePlayer::PlaySilentTone()" ); - - if ( !iSilentPlayer ) - { - ConstructSequencePlayer( EPlayerSilent ); - } - - if ( iSilentPlayer ) - { - __PHONELOG( - EBasic, - EPhoneControl, - "CPhoneRingingtonePlayer::PlaySilentTone - play" ); - iTonePlayingStatus = ESilentTonePlaying; - iSilentPlayer->Play( CPhoneAudioPlayer::ETypeRinging, 0, EFalse ); - } - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPhoneRingingtonePlayer::PlayDefaultTone( - TInt aVolume, - TProfileRingingType aRingingType ) - { - __LOGMETHODSTARTEND( EPhoneControl, "CPhoneRingingtonePlayer::PlayDefaultTone()" ); - - if( aRingingType == EProfileRingingTypeSilent || - aRingingType == EProfileRingingTypeBeepOnce ) - { - return; - } - - if ( !iDefaultRingingTone ) - { - __PHONELOG( EBasic, EPhoneControl, "CPhoneRingingtonePlayer::PlayDefaultTone - default tone does not exist, play backup..." ); - PlayBackupTone( aVolume, aRingingType ); - return; - } - - // Construct player. - if ( !iDefaultPlayer ) - { - iDefaultPlayer = ConstructTonePlayer( - *iDefaultRingingTone, - EPlayerDefault ); - if ( !iTimer->IsActive() ) - { - iTimer->After( KPhoneMaxRingingWaiting, this ); - } - } - - // Start playing backup. - if ( !iDefaultPlayer ) - { - __PHONELOG( EBasic, EPhoneControl, "CPhoneRingingtonePlayer::PlayDefaultTone - player not constructed, play backup..." ); - iTimer->Cancel(); - PlayBackupTone( aVolume, aRingingType ); - } - else - { - __PHONELOG( EBasic, EPhoneControl, "CPhoneRingingtonePlayer::PlayDefaultTone - play" ); - iVolume = aVolume; - iRingingType = aRingingType; - iTonePlayingStatus = EDefaultTonePlaying; - iDefaultPlayer->Play( - ConvertRingingType( aRingingType ), aVolume, - iAudioVideoRingingTone->TtsToneToBePlayed()); - } - - } - -// ----------------------------------------------------------------------------- -// CPhoneRingingtonePlayer::PlayBackupTone -// ----------------------------------------------------------------------------- -// -void CPhoneRingingtonePlayer::PlayBackupTone( - TInt aVolume, - TProfileRingingType aRingingType ) - { - __LOGMETHODSTARTEND( EPhoneControl, "CPhoneRingingtonePlayer::PlayBackupTone()" ); - __ASSERT_DEBUG( iBackupPlayer, Panic( EPhoneViewGeneralError ) ); - - if ( !iBackupPlayer ) - { - ConstructBackupPlayer(); - } - - if ( iBackupPlayer ) - { - __PHONELOG( EBasic, EPhoneControl, "CPhoneRingingtonePlayer::PlayBackupTone - play" ); - iTonePlayingStatus = EBackupTonePlaying; -/* - // playing text-to-speech, if necessary - iTtsToneToBePlayed = EFalse; - iTTsTimeOutCounter = 0; - iTtsDelayTimer->Cancel(); - if ( iTtsPlayer ) - { - iTtsPlayer->StopPlaying(); - delete iTtsPlayer; - iTtsPlayer = NULL; - }*/ - - iBackupPlayer->Play( - ConvertRingingType( aRingingType ), aVolume, EFalse ); - } - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPhoneRingingtonePlayer::StopPlaying() - { - __LOGMETHODSTARTEND( EPhoneControl, "CPhoneRingingtonePlayer::StopPlaying()" ); - - iTimer->Cancel(); - - switch( iTonePlayingStatus ) - { - case EAudioTonePlaying: - if( iAudioPlayer ) - { - iAudioPlayer->StopPlaying(); - delete iAudioPlayer; - iAudioPlayer = NULL; - } - break; - case EDefaultTonePlaying: - if ( iDefaultPlayer ) - { - iDefaultPlayer->StopPlaying(); - delete iDefaultPlayer; - iDefaultPlayer = NULL; - } - break; - case EBeepOnce: - if( iBeepOncePlayer ) - { - iBeepOncePlayer->StopPlaying(); - delete iBeepOncePlayer; - iBeepOncePlayer = NULL; - } - break; - case EBackupTonePlaying: - if( iBackupPlayer ) - { - iBackupPlayer->StopPlaying(); - } - break; - case ESilentTonePlaying: - if( iSilentPlayer ) - { - iSilentPlayer->StopPlaying(); - delete iSilentPlayer; - iSilentPlayer = NULL; - } - break; - case EVideoTonePlaying: // video ringing tone - case EPersonalVideoTonePlaying: - case ESilentVideoTonePlaying: - if ( iBeepOncePlayer ) - { - iBeepOncePlayer->StopPlaying(); - delete iBeepOncePlayer; - iBeepOncePlayer = NULL; - } - - if ( iSilentPlayer ) - { - iSilentPlayer->StopPlaying(); - delete iSilentPlayer; - iSilentPlayer = NULL; - } - /*if ( iVideoPlayer ) - { - iVideoPlayer->StopVideoRingTone(); - }*/ - if ( iAudioVideoRingingTone ) - { - delete iAudioVideoRingingTone; - iAudioVideoRingingTone = NULL; - } - break; - case EIdle: - // Do nothing here. - return; - default: - Panic( EPhoneViewCaseNotHandled ); - break; - } - - iTonePlayingStatus = EIdle; - } -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CPhoneAudioPlayer* CPhoneRingingtonePlayer::ConstructTonePlayer( - const CPhoneRingingTone& aRingingTone, - TInt aId ) - { - __LOGMETHODSTARTEND( EPhoneControl, "CPhoneRingingtonePlayer::ConstructTonePlayer()" ); - return CPhoneAudioPlayer::New( - aRingingTone, - KAudioPriorityPhoneCall, - KAudioPrefIncomingCall, - *this, - aId, - iMdaServer, - aId == EPlayerDefault ? EFalse : iExtSecNeeded ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -TInt CPhoneRingingtonePlayer::ConstructBackupPlayer() - { - __LOGMETHODSTARTEND( EPhoneControl, "CPhoneRingingtonePlayer::ConstructBackupPlayer()" ); - TRAPD( err, ConstructBackupPlayerL() ); - return err; - } -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPhoneRingingtonePlayer::ConstructBackupPlayerL() - { - __LOGMETHODSTARTEND( EPhoneControl, "CPhoneRingingtonePlayer::ConstructBackupPlayerL()" ); - - // Construct Backup player. - if ( !iBackupPlayer ) - { - TFileName defaultSoundFile( KDriveZ ); - defaultSoundFile.Append( KPhoneDefaultSoundFile ); - iBackupPlayer = CPhoneAudioPlayer::NewL( - defaultSoundFile, - KAudioPriorityPhoneCall, - KAudioPrefIncomingCall, - *this, - EPlayerBackup, - iMdaServer - ); - } - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPhoneRingingtonePlayer::ConstructDefaultPlayerL() - { - // Construct the default ringing tone - TBuf defaultTone; - defaultTone = _L("z:\\data\\sounds\\digital\\Nokia tune.aac"); - TInt err(KErrNone); - - if ( err == KErrNone ) - { - iDefaultRingingTone = CPhoneRingingTone::NewL( defaultTone ); - } - } -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPhoneRingingtonePlayer::ConstructSequencePlayer( TPlayerId aId ) - { - __LOGMETHODSTARTEND( EPhoneControl, "CPhoneRingingtonePlayer::ConstructSequencePlayer()" ); - - // Construct players. - TRAPD( err, ConstructSequencePlayerL( aId ) ); - if ( err ) - { - __PHONELOG1( EBasic, EPhoneControl, - "CPhoneRingingtonePlayer::ConstructSequencePlayer - err(%d)", err ); - } - } -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPhoneRingingtonePlayer::ConstructSequencePlayerL( TPlayerId aId ) - { - __LOGMETHODSTARTEND( EPhoneControl, "CPhoneRingingtonePlayer::ConstructSequencePlayerL()" ); - // Construct beep once player - if ( aId == EPlayerBeepOnce ) - { -#ifdef __WINS__ - TParse* fp = new (ELeave) TParse(); - fp->Set( KPhoneBeepOnceSoundFile, &KDC_RESOURCE_FILES_DIR, NULL ); - TFileName fileName( fp->FullName() ); - delete fp; - - iBeepOncePlayer = CPhoneAudioPlayer::NewL( - fileName, - KAudioPriorityPhoneCall, - KAudioPrefIncomingCall, - *this, - EPlayerBeepOnce ); -#else - iBeepOncePlayer = CPhoneAudioPlayer::NewSeqL( - KPhoneBeepSequence(), - KAudioPriorityPhoneCall, - KAudioPrefIncomingCall, - *this, - EPlayerBeepOnce ); -#endif // __WINS__ - } - - // Construct Silent Player. - else if ( aId == EPlayerSilent ) - { -#ifdef __WINS__ - TParse* fp = new (ELeave) TParse(); - fp->Set( KPhoneSilentSoundFile, &KDC_RESOURCE_FILES_DIR, NULL ); - TFileName fileName( fp->FullName() ); - delete fp; - - iSilentPlayer = CPhoneAudioPlayer::NewL( - fileName, - KAudioPriorityPhoneCall, - KAudioPrefIncomingCall, - *this, - EPlayerSilent ); -#else - iSilentPlayer = CPhoneAudioPlayer::NewSeqL( - KPhoneNoSoundSequence(), - KAudioPriorityPhoneCall, - KAudioPrefIncomingCall, - *this, - EPlayerSilent ); -#endif // __WINS__ - } - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPhoneRingingtonePlayer::HandleAudioPlayerError( - TPhoneAudioPlayerErrorEvent /*aEvent*/, - TInt aError, - TInt /*aId*/ ) - { - __LOGMETHODSTARTEND( EPhoneControl, "CPhoneRingingtonePlayer::HandleAudioPlayerError()" ); - // This is called from CPhoneAudioPlayer - we do not - // want to delete instances from which this method - // is called. - - __PHONELOG1( EBasic, - EPhoneControl, - "CPhoneRingingtonePlayer::HandleAudioPlayerError - error (%d)", - aError ); - - const TBool deleteAll = ( aError == KErrServerTerminated ); - - if ( deleteAll ) - { - // KErrServerTerminated is considered as fatal error. So we - // need to delete everything. - - for ( TInt i = EPlayerFirst; i <= EPlayerLast; i++ ) - { - DeletePlayerAsync( static_cast< TPlayerId >( i ) ); - } - - // Now all member audio players point to NULL, except - // those players in iAsyncDeletePlayers. Recreate - // players. - - ConstructBackupPlayer(); // Ignore error code. - } - - iTimer->Cancel(); - DoHandlePlayerError( !deleteAll, EFalse ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPhoneRingingtonePlayer::HandleAudioPlayerInitComplete( TInt aId ) - { - __LOGMETHODSTARTEND( EPhoneControl, "CPhoneRingingtonePlayer::HandleAudioPlayerInitComplete()" ); - // This is called from CPhoneAudioPlayer - we do not - // want to delete instances from which this method - // is called. - - if ( iTonePlayingStatus == EAudioTonePlaying && aId == EPlayerAudio || - iTonePlayingStatus == EDefaultTonePlaying && aId == EPlayerDefault ) - { - iTimer->Cancel(); - } - } - -// ----------------------------------------------------------------------------- -// CPhoneRingingtonePlayer::HandlePlayingComplete -// ----------------------------------------------------------------------------- -// -void CPhoneRingingtonePlayer::HandlePlayingComplete( TInt /*aId*/ ) - { - __LOGMETHODSTARTEND( EPhoneControl, "CPhoneRingingtonePlayer::HandlePlayingComplete()" ); - // This is called from CPhoneAudioPlayer - we do not - // want to delete instances from which this method - // is called. - - - __PHONELOG1( EBasic, EPhoneControl, "CPhoneRingingtonePlayer::HandlePlayingComplete - delete player - iTonePlayingStatus(%d)", - iTonePlayingStatus ); -/* if (iAudioVideoRingingTone->TtsToneToBePlayed() && - iAudioVideoRingingTone->RingingType() == EProfileRingingTypeRinging ) - { - __PHONELOG( EBasic, EPhoneControl, "CPhoneRingingtonePlayer::HandlePlayingComplete - return" ); - return; - }*/ - - switch( iTonePlayingStatus ) - { - case EAudioTonePlaying: - DeletePlayerAsync( EPlayerAudio ); - iAudioPlayer = NULL; - break; - - case EDefaultTonePlaying: - DeletePlayerAsync( EPlayerDefault ); - iDefaultPlayer = NULL; - break; - - case ESilentTonePlaying: - DeletePlayerAsync( EPlayerSilent ); - iSilentPlayer = NULL; - break; - - case EBeepOnce: - DeletePlayerAsync( EPlayerBeepOnce ); - iBeepOncePlayer = NULL; - break; - - case EVideoTonePlaying: - case EPersonalVideoTonePlaying: - DeletePlayerAsync( EPlayerBeepOnce ); - iBeepOncePlayer = NULL; - return; // beep once + video - - case EBackupTonePlaying: - break; - - default: - Panic( EPhoneViewCaseNotHandled ); - break; - } - - iTonePlayingStatus = EIdle; - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPhoneRingingtonePlayer::DeletePlayerAsync( TPlayerId aPlayer ) - { - __LOGMETHODSTARTEND( EPhoneControl, "CPhoneRingingtonePlayer::DeletePlayerAsync()" ); - __ASSERT_DEBUG( aPlayer >= EPlayerFirst && aPlayer < iAsyncDeletePlayers.Count(), - Panic( EPhoneViewInvariant ) ); - - // Player is not deleted here, but in RunL. - Cancel(); - - if ( iAsyncDeletePlayers[ aPlayer ] ) - { - delete iAsyncDeletePlayers[ aPlayer ]; - iAsyncDeletePlayers[ aPlayer ] = NULL; - } - - CPhoneAudioPlayer** players[] = - { - &iAudioPlayer, - &iBeepOncePlayer, - &iSilentPlayer, - &iDefaultPlayer, - &iBackupPlayer, - &iTtsPlayer - }; - - __ASSERT_DEBUG( iAsyncDeletePlayers.Count() > aPlayer, Panic( EPhoneUtilsIndexOutOfBounds ) ); - iAsyncDeletePlayers[ aPlayer ] = - *(players[ aPlayer ]); - *(players[ aPlayer ]) = NULL; - - iState = EDeletingAudioPlayer; - - TRequestStatus* status = &iStatus; - User::RequestComplete( status, KErrNone ); - SetActive(); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPhoneRingingtonePlayer::RunL() - { - __LOGMETHODSTARTEND( EPhoneControl, "CPhoneRingingtonePlayer::RunL()" ); - - switch ( iState ) - { - case EDeletingAudioPlayer: - { - for ( TInt i = EPlayerFirst; i <= EPlayerLast; i++ ) - { - delete iAsyncDeletePlayers[ i ]; - iAsyncDeletePlayers[ i ] = NULL; - } - } - break; - - case EPlayingDefaultVideo: - { - //PlayAudioRingTone( iVolume, iRingingType ); - } - break; - - case EIdleState: - default: - break; - } // switch iState - - iState = EIdleState; - } -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPhoneRingingtonePlayer::DoCancel() - { - __LOGMETHODSTARTEND( EPhoneControl, "CPhoneRingingtonePlayer::DoCancel()" ); - // Request is completed immediately before SetActive. - } - - -// ----------------------------------------------------------- -// CPhoneRingingtonePlayer::HandleCenRepChangeL -// ----------------------------------------------------------- -// -void CPhoneRingingtonePlayer::HandleCenRepChangeL( - const TUid& aUid, - const TUint /*aId*/ ) - { - __LOGMETHODSTARTEND( EPhoneControl, "CPhoneRingingtonePlayer::HandleCenRepChangeL()"); - - if ( aUid == KCRUidDRMHelperServer ) - { - } - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPhoneRingingtonePlayer::HandleTimeOutL() - { - __LOGMETHODSTARTEND( EPhoneControl, "CPhoneRingingtonePlayer::HandleTimeOutL()" ); - /* if( iActiveCoverUICommand ) - { - iMediatorSender->CancelCommand( - EPhoneCmdCoverUiShowMultimediaRingingTone ); - PlayDefaultTone( iVolume, iRingingType ); - iActiveCoverUICommand = EFalse; - }*/ - - // Guarding timer for startup has expired - if ( iTonePlayingStatus == EVideoTonePlaying || - iTonePlayingStatus == ESilentVideoTonePlaying || - iTonePlayingStatus == EPersonalVideoTonePlaying ) - { - //iVideoPlayer->CancelVideoRingTone(); // close video ringtone display - PlayDefaultTone( iVolume, iRingingType ); - } - else - { - // Start new audio player synchronously. - DoHandlePlayerError( ETrue, ETrue ); - } - - } -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPhoneRingingtonePlayer::DoHandlePlayerError(TBool aDelete, TBool aSync ) - { - __LOGMETHODSTARTEND( EPhoneControl, "CPhoneRingingtonePlayer::DoHandlePlayerError()" ); - switch ( iTonePlayingStatus ) - { - case EAudioTonePlaying: - if ( aDelete ) - { - if ( aSync ) - { - delete iAudioPlayer; - } - else - { - DeletePlayerAsync( EPlayerAudio ); - } - - iAudioPlayer = NULL; - } - -#ifdef __WINS__ - //PlayAudioRingTone( iVolume, iRingingType ); - iTonePlayingStatus = EDefaultTonePlaying; -#else - PlayDefaultTone( iVolume, iRingingType ); -#endif - break; - case EDefaultTonePlaying: - if ( aDelete ) - { - if ( aSync ) - { - delete iDefaultPlayer; - } - else - { - DeletePlayerAsync( EPlayerDefault ); - } - - iDefaultPlayer = NULL; - } - - PlayBackupTone( iVolume, iRingingType ); - break; - case ESilentTonePlaying: - case EBeepOnce: - case EBackupTonePlaying: - break; - default: - break; - } - } -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CPhoneAudioPlayer::TRingingType CPhoneRingingtonePlayer::ConvertRingingType( - TProfileRingingType aRingingType ) - { - __LOGMETHODSTARTEND( EPhoneControl, "CPhoneRingingtonePlayer::ConvertRingingType()" ); - - CPhoneAudioPlayer::TRingingType ringingType = - CPhoneAudioPlayer::ETypeRinging; - switch ( aRingingType ) - { - case EProfileRingingTypeRinging: - ringingType = CPhoneAudioPlayer::ETypeRinging; - break; - - case EProfileRingingTypeAscending: - ringingType = CPhoneAudioPlayer::ETypeAscending; - break; - - case EProfileRingingTypeRingingOnce: - ringingType = CPhoneAudioPlayer::ETypeRingingOnce; - break; - - default: - break; - } - return ringingType; - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CPhoneAudioPlayer* -CPhoneRingingtonePlayer::GetCurrentlyActiveAudioPlayer() - { - __LOGMETHODSTARTEND( EPhoneControl, "CPhoneRingingtonePlayer::GetCurrentlyActiveAudioPlayerWithTTs()" ); - - if( iAudioPlayer ) - { - __PHONELOG( EBasic, EPhoneControl, "CPhoneRingingtonePlayer::GetCurrentlyActiveAudioPlayerWithTTs - audio player" ); - return iAudioPlayer; - } - else if ( iDefaultPlayer ) - { - __PHONELOG( EBasic, EPhoneControl, "CPhoneRingingtonePlayer::GetCurrentlyActiveAudioPlayerWithTTs - default player" ); - return iDefaultPlayer; - } - else if( iBackupPlayer ) - { - __PHONELOG( EBasic, EPhoneControl, "CPhoneRingingtonePlayer::GetCurrentlyActiveAudioPlayerWithTTs - backup player" ); - return iBackupPlayer; - } - else - { - return NULL; - } - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPhoneRingingtonePlayer::MuteActiveAudioPlayer() - { - __LOGMETHODSTARTEND( EPhoneControl, "CPhoneRingingtonePlayer::ActiveAudioPlayer()" ); - - switch( iTonePlayingStatus ) - { - case EAudioTonePlaying: - if( iAudioPlayer ) - { - iAudioPlayer->MutePlaying(); - } - break; - - case EDefaultTonePlaying: - if ( iDefaultPlayer ) - { - return iDefaultPlayer->MutePlaying(); - } - break; - - case EBeepOnce: - if( iBeepOncePlayer ) - { - return iBeepOncePlayer->MutePlaying(); - } - break; - - case EBackupTonePlaying: - if( iBackupPlayer ) - { - return iBackupPlayer->MutePlaying(); - } - break; - - case ESilentTonePlaying: - if( iSilentPlayer ) - { - return iSilentPlayer->MutePlaying(); - } - break; - - case EVideoTonePlaying: // video ringing tone - case EPersonalVideoTonePlaying: - case ESilentVideoTonePlaying: - if ( iBeepOncePlayer ) - { - return iBeepOncePlayer->MutePlaying(); - } - else if ( iSilentPlayer ) - { - return iSilentPlayer->MutePlaying(); - } - break; - - default: - break; - } - }