diff -r b31261fd4e04 -r ccd8e69b5392 mmsharing/mmshindicator/inc/mussoundplayer.h --- a/mmsharing/mmshindicator/inc/mussoundplayer.h Tue Feb 02 00:09:07 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,172 +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. -* -*/ - - - -#ifndef C_MUSSOUNDPLAYER_H -#define C_MUSSOUNDPLAYER_H - - -#include "musunittesting.h" -#include "mussoundplayerobserver.h" -#include -#include - - -/** - * CMusSoundPlayer provides means to play custom indication sounds. - * - * @code - * void CMyClass::PlaySoundL() - * { - * if ( iPlayer ) - * { - * User::Leave( KErrInUse ); - * } - * iPlayer = CMusSoundPlayer::NewL( *this ); - * TRAPD( error, iPlayer->PlayL( CMusSoundPlayer::EVsAvailableSound ) ); - * if ( error ) - * { - * delete iPlayer; - * iPlayer = NULL; - * User::Leave( error ); - * } - * } - * - * // from MMusSoundPlayerObserver - * void CMyClass::PlaySoundComplete( TInt aError ) - * { - * delete iPlayer; - * iPlayer = NULL; - * } - * - * void CMyClass::~CMyClass() - * { - * delete iPlayer; - * iPlayer = NULL; - * } - * @endcode - * - * @lib musindicator.lib - */ -class CMusSoundPlayer : public CBase, protected MMdaAudioPlayerCallback - { -public: - - MUS_UNITTEST( UT_CMusSoundPlayer ) - - /** VS sound indications */ - enum TVsSoundIndication - { - EVsAvailableSound // Plays sound associated to VS becoming available. - }; - - /** - * Two-phased constructor. - * - * @param aObserver Reference to observer interface. - * @return Pointer to newly instantiated CMusSoundPlayer. - */ - static CMusSoundPlayer* NewL( MMusSoundPlayerObserver& aObserver ); - - /** - * Two-phased constructor. - * - * @param aObserver Reference to observer interface. - * @return Pointer to newly instantiated CMusSoundPlayer. - */ - static CMusSoundPlayer* NewLC( MMusSoundPlayerObserver& aObserver ); - - /** - * Destructor. - */ - ~CMusSoundPlayer(); - - /** - * Plays selected sound. - * - * @param aIndication Identifies the played sound. - */ - void PlayL( TVsSoundIndication aIndication ); - - /** - * Stops playing sound. - */ - void Stop(); - -protected: - -// from base class MMdaAudioPlayerCallback. - - /** - * From MMdaAudioPlayerCallback. - * Informs that initializing an audio sample has completed. - * - * @param aError Systemwide errorcode. - * @param aDuration Duration of the sample. - */ - virtual void MapcInitComplete( TInt aError, const TTimeIntervalMicroSeconds& aDuration ); - - /** - * From MMdaAudioPlayerCallback. - * Informs that playing an audio sample has completed. - * - * @param aError Systemwide errorcode. - */ - virtual void MapcPlayComplete( TInt aError ); - -private: - - CMusSoundPlayer( MMusSoundPlayerObserver& aObserver ); - - void ConstructL(); - - /** - * Returns sound file name associated with event. - * - * @param aIndication Identifies sound to return filename for. - * @return Buffer containing filename of sound. Ownership is transferred. - */ - HBufC* SoundFileNameLC( TVsSoundIndication aIndication ); - - /** Internal state. */ - enum TMusSoundPlayerState - { - ESoundPlayerReady, - ESoundPlayerPlaying - }; - -private: // data - - /** - * Reference to observer interface. - */ - MMusSoundPlayerObserver& iObserver; - - /** - * Internal state. - */ - TMusSoundPlayerState iState; - - /** - * Instance of MDA audio player. - * Own. - */ - CMdaAudioPlayerUtility* iMdaPlayer; - }; - -#endif // C_MUSSOUNDPLAYER_H