--- 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
-