diff -r 000000000000 -r 4e91876724a2 photosgallery/slideshow/engine/coresrc/shwslideshowengineimpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/photosgallery/slideshow/engine/coresrc/shwslideshowengineimpl.h Thu Dec 17 08:45:44 2009 +0200 @@ -0,0 +1,136 @@ +/* +* Copyright (c) 2007-2008 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: The slideshow engine API + * +*/ + + + + +#ifndef __CSHWSLIDESHOWENGINEIMPL_H__ +#define __CSHWSLIDESHOWENGINEIMPL_H__ + +// INCLUDES +#include +#include + +#include "shwslideshowengine.h" +#include "shweventobserver.h" +#include "shweventpublisherbase.h" +#include +#include +// FORWARD DECLARATIONS +class MGlxMediaList; +class CGlxThumbnailContext; +class CGlxVisualListManager; +class MGlxVisualList; +class CShwPlaybackFactory; +class CShwEventRouter; + +class CAlfEnv; +// CLASS DECLARATION + +/** + * CCShwSlideshowEngineImpl + * + * @author Kimmo Hoikka + * @lib shwslideshowengine.lib + * @internal reviewed 07/06/2007 by Loughlin + */ +NONSHARABLE_CLASS( CShwSlideshowEngineImpl ) + : public CShwEventPublisherBase, + public MShwEventObserver + { + public: // Constructors and destructor + + /** + * Constructor + * @param aObserver, observer of the engine. + */ + static CShwSlideshowEngineImpl* NewL( MShwEngineObserver& aObserver ); + + /** + * Destructor. + */ + ~CShwSlideshowEngineImpl(); + + private: + + /** + * Constructor for performing 1st stage construction + * @param aObserver, observer of the engine. + */ + CShwSlideshowEngineImpl( MShwEngineObserver& aObserver ); + + /** + * 2nd stage construction + */ + void ConstructL(); + + public: // the API + + /// @ref CShwSlideshowEngine::StartL + void StartL( + CAlfEnv& aEnv, + CAlfDisplay& aDisplay, + MGlxMediaList& aItemsToShow, + MShwMusicObserver& aMusicObserver, + TSize aScreenSize ); + /// @ref CShwSlideshowEngine::NextItemL + void NextItemL(); + /// @ref CShwSlideshowEngine::PreviousItemL + void PreviousItemL(); + /// @ref CShwSlideshowEngine::PauseL + void PauseL(); + /// @ref CShwSlideshowEngine::ResumeL + void ResumeL(); + /// @ref CShwSlideshowEngine::ToggleUiControlsVisibiltyL + void ToggleUiControlsVisibiltyL(); + /// @ref CShwSlideshowEngine::LSKPressedL + void LSKPressedL(); + /// @ref CShwSlideshowEngine::State + CShwSlideshowEngine::TShwState State() const; + /// @ref CShwSlideshowEngine::AvailableEffectsL + static void AvailableEffectsL( RArray& aEffects ); + /// @ref CShwSlideshowEngine::VolumeUpL + void VolumeUpL(); + /// @ref CShwSlideshowEngine::VolumeDownL + void VolumeDownL(); + + public: // From MShwEventObserver + + /// @ref MShwEventObserver::NotifyL + void NotifyL( MShwEvent* aEvent ); + + private: // Implementation + + /// Ref: the observer + MShwEngineObserver& iObserver; + /// Own: the media list to play + MGlxMediaList* iMediaList; + /// Own: the visual list manager + CGlxVisualListManager* iVisualListManager; + /// Own: the visual list to play + MGlxVisualList* iVisualList; + /// Own: the factory that creates the event controllers + CShwPlaybackFactory* iFactory; + /// Own: the event controllers + CShwEventRouter* iEventRouter; + /// Own: state flag + CShwSlideshowEngine::TShwState iState; + /// Ref: The HUI display + CAlfDisplay* iDisplay; + }; + +#endif // __CSHWSLIDESHOWENGINEIMPL_H__