This appendix contains the complete OMG IDL for the SYMM Object Model definitions. The definitions are divided into SYMM.
The IDL files are also available as: http://www.w3.org/TR/2000/WD-smil-boston-dom-20000225/idl.zip
// File: smil.idl
#ifndef _SMIL_IDL_
#define _SMIL_IDL_
#include "dom.idl"
#include "views.idl"
#include "events.idl"
#pragma prefix "dom.w3c.org"
module smil
{
typedef dom::DOMString DOMString;
typedef dom::Element Element;
typedef dom::NodeList NodeList;
typedef dom::Document Document;
interface SMILRegionElement;
interface ElementLayout {
attribute DOMString title;
// raises(dom::DOMException) on setting
attribute DOMString backgroundColor;
// raises(dom::DOMException) on setting
attribute long height;
// raises(dom::DOMException) on setting
attribute long width;
// raises(dom::DOMException) on setting
};
interface SMILRegionInterface {
attribute SMILRegionElement region;
};
interface Time {
readonly attribute boolean resolved;
readonly attribute double resolvedOffset;
// TimeTypes
const unsigned short SMIL_TIME_INDEFINITE = 0;
const unsigned short SMIL_TIME_OFFSET = 1;
const unsigned short SMIL_TIME_SYNC_BASED = 2;
const unsigned short SMIL_TIME_EVENT_BASED = 3;
const unsigned short SMIL_TIME_WALLCLOCK = 4;
const unsigned short SMIL_TIME_MEDIA_MARKER = 5;
readonly attribute unsigned short timeType;
attribute double offset;
// raises(dom::DOMException) on setting
attribute Element baseElement;
// raises(dom::DOMException) on setting
attribute boolean baseBegin;
// raises(dom::DOMException) on setting
attribute DOMString event;
// raises(dom::DOMException) on setting
attribute DOMString marker;
// raises(dom::DOMException) on setting
};
interface TimeList {
Time item(in unsigned long index);
readonly attribute unsigned long length;
};
interface ElementTime {
attribute TimeList begin;
// raises(dom::DOMException) on setting
attribute TimeList end;
// raises(dom::DOMException) on setting
attribute float dur;
// raises(dom::DOMException) on setting
// restartTypes
const unsigned short RESTART_ALWAYS = 0;
const unsigned short RESTART_NEVER = 1;
const unsigned short RESTART_WHEN_NOT_ACTIVE = 2;
attribute unsigned short restart;
// raises(dom::DOMException) on setting
// fillTypes
const unsigned short FILL_REMOVE = 0;
const unsigned short FILL_FREEZE = 1;
attribute unsigned short fill;
// raises(dom::DOMException) on setting
attribute float repeatCount;
// raises(dom::DOMException) on setting
attribute float repeatDur;
// raises(dom::DOMException) on setting
boolean beginElement();
boolean endElement();
void pauseElement();
void resumeElement();
void seekElement(inout float seekTo);
};
interface ElementTimeManipulation {
attribute float speed;
// raises(dom::DOMException) on setting
attribute float accelerate;
// raises(dom::DOMException) on setting
attribute float decelerate;
// raises(dom::DOMException) on setting
attribute boolean autoReverse;
// raises(dom::DOMException) on setting
};
interface ElementTimeContainer : ElementTime {
readonly attribute NodeList timeChildren;
NodeList getActiveChildrenAt(in float instant);
};
interface ElementSyncBehavior {
readonly attribute DOMString syncBehavior;
readonly attribute float syncTolerance;
readonly attribute DOMString defaultSyncBehavior;
readonly attribute float defaultSyncTolerance;
readonly attribute boolean syncMaster;
};
interface ElementParallelTimeContainer : ElementTimeContainer {
attribute DOMString endSync;
// raises(dom::DOMException) on setting
float getImplicitDuration();
};
interface ElementSequentialTimeContainer : ElementTimeContainer {
};
interface ElementExclusiveTimeContainer : ElementTimeContainer {
attribute DOMString endSync;
// raises(dom::DOMException) on setting
NodeList getPausedElements();
};
interface ElementTimeControl {
boolean beginElement()
raises(dom::DOMException);
boolean beginElementAt(in float offset)
raises(dom::DOMException);
boolean endElement()
raises(dom::DOMException);
boolean endElementAt(in float offset)
raises(dom::DOMException);
};
interface ElementTargetAttributes {
attribute DOMString attributeName;
// attributeTypes
const unsigned short ATTRIBUTE_TYPE_AUTO = 0;
const unsigned short ATTRIBUTE_TYPE_CSS = 1;
const unsigned short ATTRIBUTE_TYPE_XML = 2;
attribute unsigned short attributeType;
};
interface ElementTest {
attribute long systemBitrate;
// raises(dom::DOMException) on setting
attribute boolean systemCaptions;
// raises(dom::DOMException) on setting
attribute DOMString systemLanguage;
// raises(dom::DOMException) on setting
readonly attribute boolean systemRequired;
readonly attribute boolean systemScreenSize;
readonly attribute boolean systemScreenDepth;
attribute DOMString systemOverdubOrSubtitle;
// raises(dom::DOMException) on setting
attribute boolean systemAudioDesc;
// raises(dom::DOMException) on setting
};
interface SMILDocument : Document, ElementSequentialTimeContainer {
};
interface SMILElement : Element {
attribute DOMString id;
// raises(dom::DOMException) on setting
};
interface SMILLayoutElement : SMILElement {
readonly attribute DOMString type;
readonly attribute boolean resolved;
};
interface SMILTopLayoutElement : SMILElement, ElementLayout {
};
interface SMILRootLayoutElement : SMILElement, ElementLayout {
};
interface SMILRegionElement : SMILElement, ElementLayout {
attribute DOMString fit;
// raises(dom::DOMException) on setting
attribute DOMString top;
// raises(dom::DOMException) on setting
attribute long zIndex;
// raises(dom::DOMException) on setting
};
interface TimeEvent : events::Event {
readonly attribute views::AbstractView view;
readonly attribute long detail;
void initTimeEvent(in DOMString typeArg,
in views::AbstractView viewArg,
in long detailArg);
};
interface SMILMediaElement : ElementTime, SMILElement {
attribute DOMString abstractAttr;
// raises(dom::DOMException) on setting
attribute DOMString alt;
// raises(dom::DOMException) on setting
attribute DOMString author;
// raises(dom::DOMException) on setting
attribute DOMString clipBegin;
// raises(dom::DOMException) on setting
attribute DOMString clipEnd;
// raises(dom::DOMException) on setting
attribute DOMString copyright;
// raises(dom::DOMException) on setting
attribute DOMString longdesc;
// raises(dom::DOMException) on setting
attribute DOMString port;
// raises(dom::DOMException) on setting
attribute DOMString readIndex;
// raises(dom::DOMException) on setting
attribute DOMString rtpformat;
// raises(dom::DOMException) on setting
attribute DOMString src;
// raises(dom::DOMException) on setting
attribute DOMString stripRepeat;
// raises(dom::DOMException) on setting
attribute DOMString title;
// raises(dom::DOMException) on setting
attribute DOMString transport;
// raises(dom::DOMException) on setting
attribute DOMString type;
// raises(dom::DOMException) on setting
};
interface SMILRefElement : SMILMediaElement {
};
interface SMILAnimation : SMILElement, ElementTargetAttributes, ElementTime, ElementTimeControl {
// additiveTypes
const unsigned short ADDITIVE_REPLACE = 0;
const unsigned short ADDITIVE_SUM = 1;
attribute unsigned short additive;
// raises(dom::DOMException) on setting
// accumulateTypes
const unsigned short ACCUMULATE_NONE = 0;
const unsigned short ACCUMULATE_SUM = 1;
attribute unsigned short accumulate;
// raises(dom::DOMException) on setting
// calcModeTypes
const unsigned short CALCMODE_DISCRETE = 0;
const unsigned short CALCMODE_LINEAR = 1;
const unsigned short CALCMODE_PACED = 2;
const unsigned short CALCMODE_SPLINE = 3;
attribute unsigned short calcMode;
// raises(dom::DOMException) on setting
attribute DOMString keySplines;
// raises(dom::DOMException) on setting
attribute TimeList keyTimes;
// raises(dom::DOMException) on setting
attribute DOMString values;
// raises(dom::DOMException) on setting
attribute DOMString from;
// raises(dom::DOMException) on setting
attribute DOMString to;
// raises(dom::DOMException) on setting
attribute DOMString by;
// raises(dom::DOMException) on setting
};
interface SMILAnimateElement : SMILAnimation {
};
interface SMILSetElement : ElementTimeControl, ElementTime, ElementTargetAttributes, SMILElement {
attribute DOMString to;
};
interface SMILAnimateMotionElement : SMILAnimateElement {
attribute DOMString path;
// raises(dom::DOMException) on setting
attribute DOMString origin;
// raises(dom::DOMException) on setting
};
interface SMILAnimateColorElement : SMILAnimation {
};
interface SMILSwitchElement : SMILElement {
Element getSelectedElement();
};
};
#endif // _SMIL_IDL_