diff -r b31261fd4e04 -r ccd8e69b5392 mmsharing/mmshindicator/src/mussoundplayer.cpp --- a/mmsharing/mmshindicator/src/mussoundplayer.cpp Tue Feb 02 00:09:07 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,226 +0,0 @@ -/* -* Copyright (c) 2007 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: Provides means to play custom indication sound. -* -*/ - - - -#include "mussoundplayer.h" -#include "muslogger.h" -#include - - -// Name of availability sound. Path used is private path of process. -_LIT( KMusAvailabilitySound, "tone.amr" ); - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CMusSoundPlayer* CMusSoundPlayer::NewL( MMusSoundPlayerObserver& aObserver ) - { - MUS_LOG( "mus: [MUSIND] -> CMusSoundPlayer::NewL" ) - CMusSoundPlayer* self = NewLC( aObserver ); - CleanupStack::Pop( self ); - MUS_LOG( "mus: [MUSIND] <- CMusSoundPlayer::NewL" ) - return self; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CMusSoundPlayer* CMusSoundPlayer::NewLC( MMusSoundPlayerObserver& aObserver ) - { - MUS_LOG( "mus: [MUSIND] -> CMusSoundPlayer::NewLC" ) - CMusSoundPlayer* self = new (ELeave) CMusSoundPlayer( aObserver ); - CleanupStack::PushL( self ); - self->ConstructL(); - MUS_LOG( "mus: [MUSIND] <- CMusSoundPlayer::NewLC" ) - return self; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CMusSoundPlayer::~CMusSoundPlayer() - { - MUS_LOG( "mus: [MUSIND] -> CMusSoundPlayer::CMusSoundPlayer" ) - if ( iMdaPlayer ) - { - if ( ESoundPlayerPlaying == iState ) - { - iMdaPlayer->Stop(); - } - delete iMdaPlayer; - iMdaPlayer = NULL; - } - MUS_LOG( "mus: [MUSIND] <- CMusSoundPlayer::CMusSoundPlayer" ) - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CMusSoundPlayer::CMusSoundPlayer( MMusSoundPlayerObserver& aObserver ): - iObserver( aObserver ), - iState( ESoundPlayerReady ) - { - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusSoundPlayer::ConstructL() - { - } - - -// ----------------------------------------------------------------------------- -// Plays specified indication sound. -// ----------------------------------------------------------------------------- -// -void CMusSoundPlayer::PlayL( TVsSoundIndication aIndication ) - { - MUS_LOG( "mus: [MUSIND] -> CMusSoundPlayer::PlayL" ) - if ( ESoundPlayerPlaying == iState ) - { - User::Leave( KErrNotReady ); - } - - HBufC* soundFileName = SoundFileNameLC( aIndication ); - - // Used KAudioPrefVoiceAid from audiopreference.h as preference since it - // should always be played. - iMdaPlayer = CMdaAudioPlayerUtility::NewFilePlayerL( - *soundFileName, - *this, - EMdaPriorityMax, - (TMdaPriorityPreference) KAudioPrefNotification ); - - iMdaPlayer->SetPriority( EMdaPriorityMax, - (TMdaPriorityPreference) KAudioPrefNotification ); - - CleanupStack::PopAndDestroy( soundFileName ); - - iState = ESoundPlayerPlaying; - MUS_LOG( "mus: [MUSIND] <- CMusSoundPlayer::PlayL" ) - } - - -// ----------------------------------------------------------------------------- -// Stops playing current sound. -// ----------------------------------------------------------------------------- -// -void CMusSoundPlayer::Stop() - { - MUS_LOG( "mus: [MUSIND] -> CMusSoundPlayer::Stop" ) - if ( ESoundPlayerPlaying == iState ) - { - iMdaPlayer->Stop(); - } - - delete iMdaPlayer; - iMdaPlayer = NULL; - - iState = ESoundPlayerReady; - MUS_LOG( "mus: [MUSIND] <- CMusSoundPlayer::Stop" ) - } - - -// ----------------------------------------------------------------------------- -// From MMdaAudioPlayerCallback. -// Defines required client behaviour when an attempt to open and initialise an -// audio sample has completed, successfully or otherwise. -// ----------------------------------------------------------------------------- -// -void CMusSoundPlayer::MapcInitComplete( - TInt aError, - const TTimeIntervalMicroSeconds& /*aDuration*/ ) - { - MUS_LOG1( "mus: [MUSIND] -> CMusSoundPlayer::MapcInitComplete(%d)", aError ) - if ( aError ) - { - delete iMdaPlayer; - iMdaPlayer = NULL; - iState = ESoundPlayerReady; - iObserver.PlaySoundComplete( aError ); - } - else - { - iMdaPlayer->Play(); - } - MUS_LOG( "mus: [MUSIND] <- CMusSoundPlayer::MapcInitComplete" ) - } - - -// ----------------------------------------------------------------------------- -// From MMdaAudioPlayerCallback. -// Informs of playback completion. -// ----------------------------------------------------------------------------- -// -void CMusSoundPlayer::MapcPlayComplete( TInt aError ) - { - MUS_LOG1( "mus: [MUSIND] -> CMusSoundPlayer::MapcPlayComplete(%d)", aError ) - delete iMdaPlayer; - iMdaPlayer = NULL; - iState = ESoundPlayerReady; - iObserver.PlaySoundComplete( aError ); - MUS_LOG( "mus: [MUSIND] <- CMusSoundPlayer::MapcPlayComplete" ) - } - - -// ----------------------------------------------------------------------------- -// Returns name of sound file associated with event. -// ----------------------------------------------------------------------------- -// -HBufC* CMusSoundPlayer::SoundFileNameLC( TVsSoundIndication aIndication ) - { - MUS_LOG1( "mus: [MUSIND] -> CMusSoundPlayer::SoundFileNameLC(%d)", - aIndication ) - RFs fs; - User::LeaveIfError( fs.Connect() ); - TFileName filename; - fs.PrivatePath( filename ); - fs.Close(); - switch ( aIndication ) - { - case EVsAvailableSound: - { - filename.Append( KMusAvailabilitySound() ); - } - break; - - default: - { - User::Leave( KErrNotFound ); - } - } - - /* In product all ways tone file will present in ROM , - Note: this prevents auditory tone hearing in sis installation. - */ - filename.Insert(0,_L("z:")); - - MUS_LOG( "mus: [MUSIND] <- CMusSoundPlayer::SoundFileNameLC" ) - return filename.AllocLC(); - }