diff -r 000000000000 -r 72b543305e3a msg_plat/smil_engine_api/inc/smilobject.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/msg_plat/smil_engine_api/inc/smilobject.h Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,402 @@ +/* +* Copyright (c) 2003 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: smilobject declaration +* +*/ + + + +#ifndef SMILOBJECT_H +#define SMILOBJECT_H + +// INCLUDES +#include + +#include "smiltextbuf.h" + +#include "smiltime.h" +#include "smiltimelist.h" +#include "smilinstancetime.h" +#include "smilcondition.h" + +// CONSTANTS +//const TReal32 KFloatIndefinite = KMaxTReal32; +#define KFloatIndefinite KMaxTReal32 +const TReal32 KFloatUnspecified = -12346; + +// FORWARD DECLARATIONS +class CSmilTimeContainer; +class CSmilRegion; +class MSmilRegion; +class CSmilAnchor; +class CSmilPresentation; +class CSmilEvent; +class MSmilActive; +// CLASS DECLARATION + + +//< -- Fill values -- > +enum TFill { EFillAuto, EFillRemove, EFillFreeze, EFillHold, EFillTransition }; +//< -- Restart values --> +enum TRestart { ERestartAlways, ERestartNever, ERestartWhenNotActive }; +//< -- Endsync values --> +enum TEndsync { EEndsyncFirst, EEndsyncLast, EEndsyncAll, EEndsyncId }; + + +class CSmilObject : public CBase + { + + public: // Constructors and destructor + + virtual const TDesC* ClassName() const { _LIT(KN,"CSmilObject"); return &KN; } + + /** + * Destructor. + */ + virtual ~CSmilObject(); + + public: + /** + * Gets anchor object associated with this object. + * @return CSmilAnchor* - pointer to the anchor object + */ + IMPORT_C CSmilAnchor* Anchor() const; + + CSmilPresentation* Presentation() { return iPresentation; } + CSmilObject* NextSibling() { return iNext; } + CSmilObject* PreviousSibling() { return iPrevious; } + CSmilTimeContainer* ParentObject(); + virtual CSmilObject* FirstChild() const { return 0; } + virtual CSmilObject* LastChild() const { return 0; } + + TSmilTime Duration() const { return iDuration; } + TRestart Restart() const { return iRestart; } + + TSmilTime Min() const { return iMin; } + TSmilTime Max() const { return iMax; } + TPtrC Id() const; + TPtrC Title() const; + TFill Fill() const; + TSmilTime RepeatDur() const; + TReal32 RepeatCount() const; + + virtual TBool IsTimeContainer() const { return EFalse; } + virtual TBool IsSequence() const { return EFalse; } + virtual TBool IsParallel() const { return EFalse; } + virtual TBool IsExclusive() const { return EFalse; } + virtual TBool IsMedia() const { return EFalse; } + virtual TBool IsPrefetch() const { return EFalse; } + virtual TBool IsArea() const { return EFalse; } + virtual TBool IsA() const { return EFalse; } + + virtual TBool IsVisible() const { return EFalse; } + virtual TBool IsScrollable() const { return EFalse; } + + struct TInterval + { + TInterval() + { + iBegin = TSmilTime::KUnresolved; + iEnd = TSmilTime::KUnresolved; + } + + TInterval(const TSmilTime& aBegin, const TSmilTime& aEnd) + { + iBegin = aBegin; + iEnd = aEnd; + } + + TBool IsNull() { return iBegin.IsUnresolved(); } + TSmilTime Duration() { return iEnd - iBegin; } + + TSmilTime iBegin; + TSmilTime iEnd; + }; + + /** + * Unfreeze an object. + */ + virtual void Unfreeze() {}; + + /** + * Propagate an event throught the timing tree. + */ + virtual void PropagateEventL( const TSmilEvent& aEvent, const TSmilTime& aTime ); + + /** + * A common "proceed" function for all timed objects. + * Called each time a timed object receives the timing signal. + */ + virtual void ProceedL( const TSmilTime& aTps ); + + void ResolveL() { ResolveL(0); } + virtual void ResolveL( const TSmilTime& aTps ); + + // virtual void Seek( const TSmilTime& aTps, const TSmilTime& aTo ); + + /** + * A common "NotifyDependents" function for all timed objects. + */ + virtual void NotifyDependents( const TSmilTime& aTime ); + + /** + * Get the implicit duration of an object. + */ + virtual TSmilTime ImplicitDuration() const; + + /** + * End an object & geberate an end event. + */ + virtual void EndL( const TSmilTime& aTime ); + + /** + * Begin an object & generate a begin event. + */ + virtual void BeginL( const TSmilTime& aTime ); + + /** + * Reset the timing values of an object. + */ + virtual void Reset(); + + /** + * Repeat an object. + */ + virtual void RepeatL( const TSmilTime& aTime ); + + /** + * Sets the default timing values of an object. + */ + void Initialise(); + + /** + * Get the active time of an object. + */ + TSmilTime ActiveTime(); + + /** + * Does the object have a resolved begin time.? + */ + TBool HasBeginTime(); + + /** + * Does the object have a begin condition? + */ + TBool HasBeginEvent(); + + /** + * Does the object have a resolved end time?. + */ + TBool HasEndTime(); + + TBool HasEndEvent(); + + + void AddConditionL( const TSmilCondition& aCondition, TBool aBeginCondition ); + + + + void SetRestart( TRestart aVal ); + + /** + * Set the repeatCount value. + */ + void SetRepeatCount( TReal32 aRC ); + + /** + * Set the repeatDur value. + */ + void SetRepeatDur( TSmilTime aRD ); + + void SetFill(TFill aFill) { iFill = aFill; } + + /** + * Set the "id" string. + */ + void SetIdL( const TDesC& aString ); + + /** + * Set the "title" string. + */ + void SetTitleL( const TDesC& aString ); + + + void SetAnchor( CSmilAnchor* aReference ); + + void SetDuration( const TSmilTime& aDuration ); + + void SetEndTime( const TSmilTime& aEndTime ); + + + void SetMax( const TSmilTime& aMax ); + void SetMin( const TSmilTime& aMin ); + + /** + * Set the parent object. + */ + void SetParent( CSmilTimeContainer* aContainer ); + + /** + * Set the "next sibling. + */ + void SetNextSibling( CSmilObject* aNext ); + + /** + * Set the previous sibling. + */ + void SetPreviousSibling( CSmilObject* aPrevious ); + + /** + * Returns the next sibling. + */ + CSmilObject* NextSibling() const; + + /** + * Returns the previous sibling. + */ + CSmilObject* PreviousSibling() const; + + CSmilObject* NextAdjacent() const; + CSmilObject* PreviousAdjacent() const; + + CSmilPresentation* Presentation() const; + + + virtual void SetEndsyncL(TEndsync /* aEndsync*/, const TDesC& /*aId*/ = TPtrC()) { } + + TSmilTime EndTime() const; + TSmilTime BeginTime() const; + + TBool IsPlaying() const; + + void RecalcInterval( const TSmilTime& aTime ); + + virtual TSmilTime NextActivation( const TSmilTime& aTime ) const; + + TInterval FirstInterval(); + TInterval NextInterval(); + TBool HasMoreIntervals(); + + TSmilTime ParentSimpleEnd(); + + TInt ActualRepeat() const; + + TBool EndSpecified(); + TBool BeginSpecified(); + + TSmilTime RepeatBeginTime() const; + + TSmilTime CalcActiveEnd( TSmilTime aB ); + TSmilTime CalcActiveEnd( TSmilTime aB, TSmilTime aEnd ); + + void ResolveSimpleDuration(); + + TSmilTime CalcIntermediateActiveDuration() const; + + virtual void AttachedL(); + + virtual void PrintTree(int d=0) const; + + TBool IsRepeating() const; + + virtual void SetFocus(TBool ) { } + virtual TBool HasFocus() const { return EFalse; } + + virtual void SetFocusable(TBool ) { } + virtual TBool IsFocusable() const{ return EFalse; } + + + virtual CSmilObject* FindNamedObject(const TDesC& aName); + + void ResolveBeginTimeL(TSmilTime aTime); + void ResolveEndTimeL(TSmilTime aTime); + + TSmilTime LocalToGlobal(const TSmilTime& aTime); + TSmilTime GlobalToLocal(const TSmilTime& aTime); + + virtual void RewindL(const TSmilTime& aTime, const TSmilTime& aTo); + + virtual void SetPaused(TBool /*aPaused*/) {}; + + virtual void Redraw() {} + virtual MSmilRegion* GetRegion() const { return 0;} + virtual TPoint Center() const { return TPoint();} + + void AfterL(MSmilActive* iActive, const TSmilTime& aDelay, TBool aLazy = EFalse); + void CancelActive(MSmilActive* aActive); + + protected: + + /** + * C++ default constructor. + */ + CSmilObject(); + + /** + * Base-class Constructor. + */ + virtual void ConstructL(CSmilPresentation* aPresentation); + + protected: // Data + + // style properties + TSmilTime iDuration; + TSmilTime iRepeatDur; + TReal32 iRepeatCount; + TRestart iRestart; + TFill iFill; + TSmilTime iMin; + TSmilTime iMax; + RPointerArray iBeginConditions; + RPointerArray iEndConditions; + CSmilAnchor* iAnchor; + RSmilTextBuf iId; + RSmilTextBuf iTitle; + + + // object state + + TInterval iCurrentInterval; + + TBool iPlaying; + TBool iFirstInterval; + + TSmilTimeList iBeginList; + TSmilTimeList iEndList; + + TSmilTime iRepeatBeginTime; + TSmilTime iSimpleDuration; + TSmilTime iActiveDuration; + + TInt iActualRepeat; + + TBool iMinLimited; + + TBool iForcedRepeat; + + // tree management + + CSmilPresentation* iPresentation; + CSmilTimeContainer* iParentObject; + CSmilObject* iPrevious; + CSmilObject* iNext; + +}; + +#include "smiltimecontainer.h" + +#endif // ?INCLUDE_H + +// End of File +