--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/upnpavcontroller/upnprenderingstatemachine/inc/upnprenderingstatemachineconstants.h Wed Nov 03 11:45:09 2010 +0200
@@ -0,0 +1,169 @@
+/*
+* Copyright (c) 2007,2009 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: Constants used in upnprenderingstatemachine
+*
+*/
+
+#ifndef C_UPNPRENDERINGSTATEMACHINECONSTANTS_H
+#define C_UPNPRENDERINGSTATEMACHINECONSTANTS_H
+
+/**
+ * Constants enumerations for the Upnp API
+ * especially those needed in the rendering engine part.
+ */
+namespace Upnp
+ {
+
+ /**
+ * Commands
+ */
+ enum TCommand
+ {
+ ENone = 0x0000, // no command
+ ESync = 0x0001, // get in sync with the renderer
+ EPlay = 0x0002, // requests to start playing
+ // (in RenderingStateMachine aMedia indicates the media to play)
+ EStop = 0x0004, // requests to stop playback (fast to play again)
+ EClose = 0x0008, // requests to close playback (a permanent stop)
+ EPause = 0x0010, // request to pause
+ EResume = 0x0020, // request to resume from pause
+ ERestart = 0x0040, // start track from beginning
+ ECalibrate= 0x0080, // request to calibrate the position counter from
+ // renderer
+ ESeek = 0x0100, // seek (aParameter = position in ms)
+ ENext = 0x0200, // skip to next track
+ EPrev = 0x0400, // skip to previous track
+ EBack = 0x0800, // skip to previous track, or track start if
+ // current position is less than 3 seconds
+ EJump = 0x1000, // Start playing given track
+ // (aParameter = track index)
+ ESetUri = 0x2000 // set uri
+ };
+
+ /**
+ * Properties
+ */
+ enum TProperty
+ {
+ EVolume = 0x01, // the volume property
+ EMute = 0x02, // the mute property
+ EMediaDuration = 0x04, // current track duration (ms) - read only
+ EPosition = 0x08, // current track position (ms) - see ESeek command
+ EOptions = 0x10, // rendering options (see TRenderingOptions)
+ ECurrentIndex = 0x20, // Index of item currently playing.
+ // Note: can only be set when NOT playing.
+ // Note2: changes in the value are reported via
+ // CurrentIndexChanged()
+ ECurrentState = 0x40 // the state of the engine (TState) - read only
+ };
+
+ /**
+ * Generic rendering state
+ */
+ enum TState
+ {
+ EOffSync = 0x0001, // not synchronised with renderer yet
+ EBusy = 0x0010, // renderer is busy doing something else
+ EDead = 0x0020, // unrecoverable error state
+ EStopped = 0x0100, // renderer is idle
+ EBuffering = 0x1000, // media playback is being started in the
+ // renderer
+ EPlaying = 0x2000, // renderer is playing media
+ EPaused = 0x4000, // renderer is in pause state
+ // -------- masks ---------
+ EStateMaskInSync = 0xFFF0, // any state where synchronised to
+ // renderer
+ EStateMaskActive = 0xFF00, // any state where can be used
+ EStateMaskRendering = 0XF000, // any state where some kind of output
+ // is going on
+ };
+
+ /**
+ * extra information in RenderingStateMachine provided with state indicates
+ * reason for state transition
+ */
+ enum TStateInfo
+ {
+ ENoMedia = 0,
+ // no media initialised (typically the initial state)
+ EStopRequested = 1,
+ // stop was requested (by this engine or by external party)
+ ETrackCompleted = 2,
+ // track was fully completed
+ EPositionChanged = 3
+ };
+
+ /**
+ * Mode in which the position is changing.
+ * This includes information of trick modes.
+ * this type is internal to rendering engine
+ */
+ enum TPositionMode
+ {
+ EPlayingNormally = 0,
+ // playback is going on normally
+ ESeekingForward = 1,
+ // fast seeking forward. New position will be ackowledged soon.
+ ESeekingBackward = 2,
+ // fast seeking backward New position will be ackowledged soon.
+ EBufferingData = 3,
+ // renderer is buffering data. Will return to PlayingNormally
+ // soon.
+ };
+
+ /**
+ * Rendering options. Use this to optimise the engine to your
+ * specific needs.
+ * this type is internal to rendering engine.
+ *
+ * NOTE: instructions for flag use on the rendering engine API:
+ * to turn on a flag:
+ * engine->SetPropertyL( Upnp::EOptions,
+ * engine->Property( Upnp::EOptions ) | EFlag );
+ * to turn off a flag:
+ * engine->SetPropertyL( Upnp::EOptions,
+ * engine->Property( Upnp::EOptions ) & ~EFlag );
+ */
+ enum TRenderingOptions
+ {
+ EPlaylistMode = 0x0001,
+ // play content in playlist mode, progress automatically.
+ // for images this means a timed slideshow.
+ // if flag disabled, only manual skip is supported.
+ // (this flag is on by default)
+ EAutoCalibratePosition = 0x0002,
+ // calibrate and update track position automatically.
+ // If position changed, sends PropertyChanged callback.
+ // (this flag is on by default)
+ EVolumeSupport = 0x0004,
+ // request support for volume in the renderer
+ // Clear this flag to disable all volume usage and avoid one
+ // unnecessary network operation. Clearing the flag would be
+ // only useful if you only have pure image source.
+ // (this flag is on by default)
+ ESafetyTimer = 0x0008,
+ // attaches a safety timer for all skip commands
+ // (next,prev,back,jump) so that client can safely call them
+ // directly from UI as often as required. Commands are only
+ // executed after the safety period. having a burst of 10
+ // "Next" commands will be converted internally to a
+ // single "Jump(current+10)" operation.
+ EConvertVolumeZeroToMute = 0x0100,
+ // convert client VOLUME 0 request to MUTE and back
+ // (this flag is on by default)
+ };
+ }
+
+#endif // C_UPNPRENDERINGSTATEMACHINECONSTANTS_H
+