previous   next   contents   index

25 February, 2000

Appendix A: IDL Definitions

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

A.1: SYMM Document Object Model

smil.idl:

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


previous   next   contents   index