upnpmpxplugins/upnpplaybackplugins/inc/upnpvaluestatemachine.h
branchIOP_Improvements
changeset 40 08b5eae9f9ff
parent 39 6369bfd1b60d
child 41 b4d83ea1d6e2
--- a/upnpmpxplugins/upnpplaybackplugins/inc/upnpvaluestatemachine.h	Mon Nov 01 13:44:24 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,311 +0,0 @@
-/*
-* Copyright (c) 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:      Class for retrieving and selecting media renderers
-*
-*/
-
-
-
-
-
-
-#ifndef C_UPNPVALUESTATEMACHINE_H
-#define C_UPNPVALUESTATEMACHINE_H
-
-// INCLUDES
-#include <e32base.h>
-#include <mpxplaybackframeworkdefs.h>
-
-// FORWARD DECLARATIONS
-class CUPnPMusicPlayer;
-class MUPnPAVRenderingSession;
-
-
-
-/**
- * Class for handling playback state machine functionality
- *
- * @lib upnpmusicplugins.lib
- * @since S60 v3.1
- */
-class CUPnPValueStateMachine : public CBase
-    {
-
-public: // construction / destruction
-
-    /**
-     * Static 1st phase constructor
-     *
-     * @since Series 60 3.1
-     * @param aParent the parent plugin instance
-     * @param aRenderingSession for playback commands
-     */
-    static CUPnPValueStateMachine* NewL( 
-        CUPnPMusicPlayer& aParent,
-        MUPnPAVRenderingSession& aRenderingSession );
-
-    /**
-     * Destructor
-     *
-     * @since Series 60 3.1
-     */
-    virtual ~CUPnPValueStateMachine();
-
-public: // datatypes used in this class
-   
-    /**
-     * current type of operation
-     */
-    enum TOperationType
-        {
-        EOperationNone,     // no operation going on
-        EOperationValue,    // value get
-        EOperationSet,      // value set
-        EOperationDurationQuery, // internal duration query
-        EOperationPositionQuery, // internal position query
-        EOperationVolumeQuery, // internal volume query
-        EOperationMute // internal mute
-        };
-
-    /**
-     * An internal operation class
-     */
-    class TOperation
-        {
-        public:
-        /** construction */
-        TOperation( TOperationType aType )
-            : iType( aType ) {}
-        TOperation( TOperationType aType, TInt aValue )
-            : iType( aType )
-            , iValue( aValue ) {}
-        TOperation( TMPXPlaybackProperty aProperty, TInt aValue )
-            : iType( EOperationSet )
-            , iProperty( aProperty )
-            , iValue( aValue ) {}
-        TOperation( TMPXPlaybackProperty aProperty )
-            : iType( EOperationValue )
-            , iProperty( aProperty ) {}
-
-        /** setters */
-        void operator=( TOperationType aType )
-            {
-            iType = aType;
-            }
-        void Set( TMPXPlaybackProperty aProperty, TInt aValue )
-            {
-            iType = EOperationSet;
-            iProperty = aProperty;
-            iValue = aValue;
-            }
-        void Set( TMPXPlaybackProperty aProperty )
-            {
-            iType = EOperationValue;
-            iProperty = aProperty;
-            }
-        void Reset()
-            {
-            iType = EOperationNone;
-            }
-        /** comparision */
-        TBool operator==( TOperationType aType )
-            {
-            return ( iType == aType );
-            }
-        TBool Compare( TOperationType aType, TMPXPlaybackProperty aProperty )
-            {
-            return ( iType == aType && iProperty == aProperty );
-            }
-        TBool None()
-            {
-            return ( iType == EOperationNone );
-            }
-        /** identifies the operation type */
-        TOperationType iType;
-        /** playback property, if op == Value or Set */
-        TMPXPlaybackProperty iProperty;
-        /** playback property value, if op == Set */
-        TInt iValue;
-        };
-
-    /**
-     * A result of validation query.
-     * Indicates what to do with a Value- or a Set- call
-     */
-    enum TValidationResult
-        {
-        EHandle, // handle the call in value state machine
-        EHandleStatic, // handle the call statically in v.s.m.
-        EErrorNotReady, // async error (KErrNotReady)
-        EErrorNotSupported, // async error (KErrNotSupported)
-        EIgnore // do absolutely nothing
-        };
-
-public: // services
-    
-   /**
-    * A method to copy some static renderer-specific values from
-    * another instance of a state machine. Note that one instance is
-    * track specific, so track specific cached values are NOT copied,
-    * (track duration etc.) but renderer specific values are copied
-    * (volume etc)
-    * @param aOther another instance to copy values from
-    */
-    void CopyValues( const CUPnPValueStateMachine& aOther );
-
-   /**
-    * See CMPXPlaybackPlugin
-    */
-    void SetL( TMPXPlaybackProperty aProperty, TInt aValue );
-
-   /**
-    * See CMPXPlaybackPlugin
-    */
-    void ValueL( TMPXPlaybackProperty aProperty );
-    
-   /**
-    * See MUPnPRenderiongSessionObserver
-    */
-    void VolumeResult( TInt aError, TInt aVolumeLevel,
-        TBool aActionResponse );
-    
-   /**
-    * See MUPnPRenderiongSessionObserver
-    */
-    void MuteResult( TInt aError, TBool aMute, TBool aActionResponse );
-    
-   /**
-    * See MUPnPRenderiongSessionObserver
-    */
-    void PositionInfoResult( TInt aStatus, const TDesC8& aTrackPosition,
-        const TDesC8& aTrackLength );
-
-    /**
-     * Initiates a duration request, which will be reported to
-     * the plugin observer as a change event
-     */
-    void DurationQueryL();
-    
-    /**
-     * Initiates a position request
-     */
-    void PositionQueryL();
-
-    /**
-     * Initiates a volume request, which will be reported to
-     * the plugin observer as a change event
-     */
-    void VolumeQueryL();
-
-    /**
-     * Initiates an internal mute request, which will not be reported.
-     * @param aMute if other than zero, mute will be activated
-     */
-    void MuteRequestL( TInt aMute );
-
-    /**
-     * Validates a Value- or Set- call with given property in given
-     * player state. There will be a result indicating what to do with
-     * the call.
-     * @param aProperty the property to be either get or set
-     * @param aSetting true if setting the value, false if getting
-     * @param aPlayerState state of the player plugin
-     * @param aIsReady is remote device to gíve playback information
-     * @return result of validation
-     */
-    static TValidationResult ValidatePropertyInState(
-        TMPXPlaybackProperty aProperty,
-        TBool aSetting,
-        TInt aPlayerState,
-        TBool aIsReady );
-
-    /**
-     * A static version of Value query - this one is capable of handling
-     * some fixed Value queries that do not need network resources
-     */
-    static void ValueStatic(
-         TMPXPlaybackProperty aProperty,
-         MMPXPlaybackPluginObserver& aPlaybackObs );
-
-    /**
-     * Cancels any ongoing operation
-     * (actually it just resets the state so the result will be ignored
-     * and not reported)
-     */
-    void Cancel();
-
-private:
-
-    /**
-     * Private default constructor
-     *
-     * @since Series 60 3.1
-     * @param aParent the parent plugin instance
-     * @param aRenderingSession for playback commands
-     */
-    CUPnPValueStateMachine( 
-        CUPnPMusicPlayer& aParent,
-        MUPnPAVRenderingSession& aRenderingSession );
-
-    /**
-     * Checks if operations are in the queue, and executes
-     */
-    void CheckOperationInQueueL();
-    
-    /**
-     * Check if given property are in queue
-     * @param aProperty property to be searched
-     * @return Etrue if found
-     */
-    TBool FoundFromQueue( TMPXPlaybackProperty aProperty );
-
-private: // data
-        
-    /**
-     * Parent plugin instance
-     */ 
-    CUPnPMusicPlayer&                   iParent;
-    
-    /**
-     * Rendering session
-     */ 
-    MUPnPAVRenderingSession&            iRendererSession;
-    
-    /**
-     * currently ongoing operation
-     */
-    TOperation                          iCurrentOperation;
-
-    /**
-     * queue of operations pending
-     */
-    RArray<TOperation>                  iOperationQueue;
-
-    /**
-     * current renderer volume level.
-     * cached internally to avoid unnecessary message traffic.
-     */
-    TInt                                iRendererVolume;
-
-    /**
-     * current renderer muted state (1 = muted, 0 = normal)
-     * cached internally to avoid unnecessary message traffic.
-     */
-    TInt                                iRendererMuted;
-
-    };
-
-
-#endif // C_UPNPVALUESTATEMACHINE_H
-