diff -r 61bc0f252b2b -r bac7acad7cb3 camerauis/cameraapp/generic/inc/audioplayer/camaudioplayercontroller.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camerauis/cameraapp/generic/inc/audioplayer/camaudioplayercontroller.h Wed Sep 01 12:30:54 2010 +0100 @@ -0,0 +1,147 @@ +/* +* 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: Audio Player Controller +* +*/ + + +#ifndef CAM_AUDIOPLAYERCONTROLLER_H +#define CAM_AUDIOPLAYERCONTROLLER_H + +// =========================================================================== +// Includes +#include +#include "CamControllerObservers.h" +#include "mcamsettingsmodelobserver.h" + +// =========================================================================== +// Forward declarations +class CAknKeySoundSystem; +class CCamAppController; +class MCamAudioPlayerObserver; +class CCamPlayerWrapperBase; + +// =========================================================================== +// Class definitions + +/** +* Audio Player Controller class +* +* Controls tone and audio players and caches needed +* players based on Camera capture mode to enable +* fast playing of needed sounds/tones. +* +*/ +class CCamAudioPlayerController : public CBase, + public MCamControllerObserver, + public MCamSettingsModelObserver + { + // ======================================================= + // Methods + + // ------------------------------------------------------- + // constructors and destructor + public: + + static CCamAudioPlayerController* NewL( CCamAppController& aController, + MCamPlayerObserver& aObserver ); + virtual ~CCamAudioPlayerController(); + + // ------------------------------------------------------- + // from MCamControllerObserver + public: + + virtual void HandleControllerEventL( TCamControllerEvent aEvent, TInt aStatus ); + + // ------------------------------------------------------- + // from MCamSettingsModelObserver + public: + + virtual void IntSettingChangedL ( TCamSettingItemIds aSettingItem, TInt aSettingValue ); + virtual void TextSettingChangedL( TCamSettingItemIds aSettingItem, const TDesC& aSettingValue ); + + // ------------------------------------------------------- + // new public + public: + + /** + * @param aCallback If set ETrue, calling method this results in one + * callback to MCamAudioPlayerObserver::PlayComplete + */ + void PlaySound( TInt aSoundId, + TBool aCallback ); + + /** + * Cancel all ongoing playing activity. + */ + void CancelAllPlaying(); + + /** + * Cancel given sound playing, if ongoing. + * @aSoundId Id of the sound to be cancelled. + */ + void CancelPlaying( TInt aSoundId ); + + void InitKeySoundSystem(); + void EnableAllKeySounds(); + void DisableAllKeySoundsL(); + + + // ------------------------------------------------------- + // new private + private: + + TInt FindPlayerIndex( TInt aSoundId ) const; + CCamPlayerWrapperBase* GetPlayerL ( TInt aSoundId ); + void RemovePlayer ( TInt aSoundId ); + + void Setup( TCamCameraMode aCameraMode ); + void SetupForVideoL(); + void SetupForImageL(); + void SetupCaptureSoundPlayerL( TInt aNewSoundId ); + void Reset(); + + // ------------------------------------------------------- + // private constructors + private: + + void ConstructL(); + + CCamAudioPlayerController( CCamAppController& aController, + MCamPlayerObserver& aObserver ); + + // ======================================================= + // Data + private: + + CCamAppController& iController; + MCamPlayerObserver& iObserver; + + RPointerArray iPlayers; + + TInt iCameraMode; // TCamCameraMode value + TInt iCaptureSoundId; // Sound id or -1 if not set + + CAknKeySoundSystem* iKeySoundSystem; // not own + TBool iKeySoundsDisabled; + + // ======================================================= + }; + +#endif // CAM_AUDIOPLAYERCONTROLLER_H + +// =========================================================================== +// end of file + +