~centralelyon2010/inkscape/imagelinks2

« back to all changes in this revision

Viewing changes to src/dom/smil.h

  • Committer: ishmal
  • Date: 2006-04-12 13:25:21 UTC
  • Revision ID: ishmal@users.sourceforge.net-20060412132521-5ynoezpwbzq4d1c3
Add new rearranged /dom directory

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef __SMIL_H__
 
2
#define __SMIL_H__
 
3
/**
 
4
 * Phoebe DOM Implementation.
 
5
 *
 
6
 * This is a C++ approximation of the W3C DOM model, which follows
 
7
 * fairly closely the specifications in the various .idl files, copies of
 
8
 * which are provided for reference.  Most important is this one:
 
9
 *
 
10
 * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
 
11
 *
 
12
 * Authors:
 
13
 *   Bob Jamison
 
14
 *
 
15
 * Copyright (C) 2005 Bob Jamison
 
16
 *
 
17
 *  This library is free software; you can redistribute it and/or
 
18
 *  modify it under the terms of the GNU Lesser General Public
 
19
 *  License as published by the Free Software Foundation; either
 
20
 *  version 2.1 of the License, or (at your option) any later version.
 
21
 *
 
22
 *  This library is distributed in the hope that it will be useful,
 
23
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
24
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
25
 *  Lesser General Public License for more details.
 
26
 *
 
27
 *  You should have received a copy of the GNU Lesser General Public
 
28
 *  License along with this library; if not, write to the Free Software
 
29
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
30
 */
 
31
 
 
32
 
 
33
#include "dom.h"
 
34
#include "views.h"
 
35
#include "events.h"
 
36
 
 
37
#include <vector>
 
38
 
 
39
namespace org
 
40
{
 
41
namespace w3c
 
42
{
 
43
namespace dom
 
44
{
 
45
namespace smil
 
46
{
 
47
 
 
48
 
 
49
 
 
50
 
 
51
//Local definitions
 
52
typedef dom::DOMString DOMString;
 
53
typedef dom::Element Element;
 
54
typedef dom::NodeList NodeList;
 
55
typedef dom::Document Document;
 
56
 
 
57
//forward declarations
 
58
class ElementExclusiveTimeContainer;
 
59
class ElementLayout;
 
60
class ElementParallelTimeContainer;
 
61
class ElementSequentialTimeContainer;
 
62
class ElementSyncBehavior;
 
63
class ElementTargetAttributes;
 
64
class ElementTest;
 
65
class ElementTime;
 
66
class ElementTimeContainer;
 
67
class ElementTimeControl;
 
68
class ElementTimeManipulation;
 
69
class SMILAnimateColorElement;
 
70
class SMILAnimateElement;
 
71
class SMILAnimateMotionElement;
 
72
class SMILAnimation;
 
73
class SMILDocument;
 
74
class SMILElement;
 
75
class SMILLayoutElement;
 
76
class SMILMediaElement;
 
77
class SMILRefElement;
 
78
class SMILRegionElement;
 
79
class SMILRegionInterface;
 
80
class SMILRootLayoutElement;
 
81
class SMILSetElement;
 
82
class SMILSwitchElement;
 
83
class SMILTopLayoutElement;
 
84
class Time;
 
85
class TimeEvent;
 
86
class TimeList;
 
87
 
 
88
 
 
89
 
 
90
/*#########################################################################
 
91
###########################################################################
 
92
##  D A T A    T Y P E S
 
93
###########################################################################
 
94
#########################################################################*/
 
95
 
 
96
 
 
97
 
 
98
/*#########################################################################
 
99
## ElementLayout
 
100
#########################################################################*/
 
101
 
 
102
/**
 
103
 *
 
104
 */
 
105
class ElementLayout
 
106
{
 
107
public:
 
108
 
 
109
 
 
110
    /**
 
111
     *
 
112
     */
 
113
    virtual DOMString getTitle()
 
114
        { return title; }
 
115
 
 
116
    /**
 
117
     *
 
118
     */
 
119
    virtual void setTitle(const DOMString &val) throw(dom::DOMException)
 
120
        { title = val; }
 
121
 
 
122
    /**
 
123
     *
 
124
     */
 
125
    virtual DOMString getBackgroundColor()
 
126
        { return backgroundColor; }
 
127
 
 
128
    /**
 
129
     *
 
130
     */
 
131
    virtual void setBackgroundColor(const DOMString &val) throw(dom::DOMException)
 
132
        { backgroundColor = val; }
 
133
 
 
134
    /**
 
135
     *
 
136
     */
 
137
    virtual long getHeight()
 
138
        { return height; }
 
139
 
 
140
    /**
 
141
     *
 
142
     */
 
143
    virtual void setHeight(long val) throw(dom::DOMException)
 
144
        { height = val; }
 
145
 
 
146
    /**
 
147
     *
 
148
     */
 
149
    virtual long getWidth()
 
150
        { return width; }
 
151
 
 
152
    /**
 
153
     *
 
154
     */
 
155
    virtual void setWidth(long val) throw(dom::DOMException)
 
156
        { width = val; }
 
157
 
 
158
 
 
159
 
 
160
    //##################
 
161
    //# Non-API methods
 
162
    //##################
 
163
 
 
164
    /**
 
165
     *
 
166
     */
 
167
    ElementLayout() {}
 
168
 
 
169
    /**
 
170
     *
 
171
     */
 
172
    ElementLayout(const ElementLayout &other)
 
173
        {
 
174
        title           = other.title;
 
175
        backgroundColor = other.backgroundColor;
 
176
        height          = other.height;
 
177
        width           = other.width;
 
178
        }
 
179
 
 
180
    /**
 
181
     *
 
182
     */
 
183
    virtual ~ElementLayout() {}
 
184
 
 
185
protected:
 
186
 
 
187
    DOMString title;
 
188
    DOMString backgroundColor;
 
189
    long height;
 
190
    long width;
 
191
 
 
192
};
 
193
 
 
194
 
 
195
/*#########################################################################
 
196
## SMILRegionInterface
 
197
#########################################################################*/
 
198
 
 
199
/**
 
200
 *
 
201
 */
 
202
class SMILRegionInterface
 
203
{
 
204
public:
 
205
 
 
206
    /**
 
207
     *
 
208
     */
 
209
    virtual SMILRegionElement *getRegion()
 
210
        { return regionElement; }
 
211
    /**
 
212
     *
 
213
     */
 
214
    virtual void setRegion(const SMILRegionElement *val)
 
215
        { regionElement = (SMILRegionElement *)val; }
 
216
 
 
217
    //##################
 
218
    //# Non-API methods
 
219
    //##################
 
220
 
 
221
    /**
 
222
     *
 
223
     */
 
224
    SMILRegionInterface()
 
225
        { regionElement = NULL; }
 
226
 
 
227
    /**
 
228
     *
 
229
     */
 
230
    SMILRegionInterface(const SMILRegionInterface &other)
 
231
       { regionElement = other.regionElement; }
 
232
 
 
233
    /**
 
234
     *
 
235
     */
 
236
    virtual ~SMILRegionInterface() {}
 
237
 
 
238
protected:
 
239
 
 
240
    SMILRegionElement *regionElement;
 
241
 
 
242
};
 
243
 
 
244
 
 
245
/*#########################################################################
 
246
## Time
 
247
#########################################################################*/
 
248
 
 
249
/**
 
250
 *
 
251
 */
 
252
class Time
 
253
{
 
254
public:
 
255
 
 
256
 
 
257
    /**
 
258
     *
 
259
     */
 
260
    virtual bool getResolved()
 
261
        { return resolved; }
 
262
 
 
263
    /**
 
264
     *
 
265
     */
 
266
    virtual double getResolvedOffset()
 
267
        { return resolvedOffset; }
 
268
 
 
269
    typedef enum
 
270
        {
 
271
        SMIL_TIME_INDEFINITE           = 0,
 
272
        SMIL_TIME_OFFSET               = 1,
 
273
        SMIL_TIME_SYNC_BASED           = 2,
 
274
        SMIL_TIME_EVENT_BASED          = 3,
 
275
        SMIL_TIME_WALLCLOCK            = 4,
 
276
        SMIL_TIME_MEDIA_MARKER         = 5
 
277
        } TimeTypes;
 
278
 
 
279
 
 
280
 
 
281
    /**
 
282
     *
 
283
     */
 
284
    virtual unsigned short getTimeType()
 
285
        { return timeType; }
 
286
 
 
287
 
 
288
    /**
 
289
     *
 
290
     */
 
291
    virtual double getOffset()
 
292
        { return offset; }
 
293
 
 
294
    /**
 
295
     *
 
296
     */
 
297
    virtual void setOffset(double val) throw (dom::DOMException)
 
298
        { offset = val; }
 
299
 
 
300
    /**
 
301
     *
 
302
     */
 
303
    virtual Element *getBaseElement()
 
304
        { return baseElement; }
 
305
 
 
306
    /**
 
307
     *
 
308
     */
 
309
    virtual void setBaseElement(const Element *val) throw (dom::DOMException)
 
310
        { baseElement = (Element *)val; }
 
311
 
 
312
    /**
 
313
     *
 
314
     */
 
315
    virtual bool getBaseBegin()
 
316
        { return baseBegin; }
 
317
 
 
318
    /**
 
319
     *
 
320
     */
 
321
    virtual void setBaseBegin(bool val) throw (dom::DOMException)
 
322
        { baseBegin = val; }
 
323
 
 
324
    /**
 
325
     *
 
326
     */
 
327
    virtual DOMString getEvent()
 
328
        { return eventStr; }
 
329
 
 
330
    /**
 
331
     *
 
332
     */
 
333
    virtual void setEvent(const DOMString &val) throw (dom::DOMException)
 
334
        { eventStr = val; }
 
335
 
 
336
    /**
 
337
     *
 
338
     */
 
339
    virtual DOMString getMarker()
 
340
        { return marker; }
 
341
 
 
342
    /**
 
343
     *
 
344
     */
 
345
    virtual void setMarker(const DOMString &val) throw (dom::DOMException)
 
346
        { marker = val; }
 
347
 
 
348
 
 
349
 
 
350
    //##################
 
351
    //# Non-API methods
 
352
    //##################
 
353
 
 
354
    /**
 
355
     *
 
356
     */
 
357
    Time()
 
358
        {
 
359
        resolved       = false;
 
360
        resolvedOffset = 0.0;
 
361
        timeType       = SMIL_TIME_INDEFINITE;
 
362
        offset         = 0.0;
 
363
        baseElement    = NULL;
 
364
        baseBegin      = false;
 
365
        eventStr       = "";
 
366
        marker         = "";
 
367
        }
 
368
 
 
369
    /**
 
370
     *
 
371
     */
 
372
    Time(const Time &other)
 
373
       {
 
374
        resolved       = other.resolved;
 
375
        resolvedOffset = other.resolvedOffset;
 
376
        timeType       = other.timeType;
 
377
        offset         = other.offset;
 
378
        baseElement    = other.baseElement;
 
379
        baseBegin      = other.baseBegin;
 
380
        eventStr       = other.eventStr;
 
381
        marker         = other.marker;
 
382
       }
 
383
 
 
384
    /**
 
385
     *
 
386
     */
 
387
    virtual ~Time() {}
 
388
 
 
389
protected:
 
390
 
 
391
    bool           resolved;
 
392
    double         resolvedOffset;
 
393
    unsigned short timeType;
 
394
    double         offset;
 
395
    Element *      baseElement;
 
396
    bool           baseBegin;
 
397
    DOMString      eventStr;
 
398
    DOMString      marker;
 
399
 
 
400
};
 
401
 
 
402
 
 
403
/*#########################################################################
 
404
## TimeList
 
405
#########################################################################*/
 
406
 
 
407
/**
 
408
 *
 
409
 */
 
410
class TimeList
 
411
{
 
412
public:
 
413
 
 
414
 
 
415
    /**
 
416
     *
 
417
     */
 
418
    virtual Time item(unsigned long index)
 
419
        {
 
420
        if (index >=items.size())
 
421
            {
 
422
            Time tim;
 
423
            return tim;
 
424
            }
 
425
        return items[index];
 
426
        }
 
427
 
 
428
    /**
 
429
     *
 
430
     */
 
431
    virtual unsigned long getLength()
 
432
        {
 
433
        return items.size();
 
434
        }
 
435
 
 
436
    //##################
 
437
    //# Non-API methods
 
438
    //##################
 
439
 
 
440
    /**
 
441
     *
 
442
     */
 
443
    TimeList() {}
 
444
 
 
445
    /**
 
446
     *
 
447
     */
 
448
    TimeList(const TimeList &other)
 
449
        {
 
450
        items = other.items;
 
451
        }
 
452
 
 
453
    /**
 
454
     *
 
455
     */
 
456
    virtual ~TimeList() {}
 
457
 
 
458
protected:
 
459
 
 
460
    std::vector<Time>items;
 
461
 
 
462
 
 
463
};
 
464
 
 
465
 
 
466
/*#########################################################################
 
467
## ElementTime
 
468
#########################################################################*/
 
469
 
 
470
/**
 
471
 *
 
472
 */
 
473
class ElementTime
 
474
{
 
475
public:
 
476
 
 
477
 
 
478
    /**
 
479
     *
 
480
     */
 
481
    virtual TimeList getBegin()
 
482
        { return beginTime; }
 
483
 
 
484
    /**
 
485
     *
 
486
     */
 
487
    virtual void setBegin(const TimeList &val) throw(dom::DOMException)
 
488
        { beginTime = val; }
 
489
    /**
 
490
     *
 
491
     */
 
492
    virtual TimeList getEnd()
 
493
        { return endTime; }
 
494
 
 
495
    /**
 
496
     *
 
497
     */
 
498
    virtual void setEnd(const TimeList &val) throw(dom::DOMException)
 
499
        { endTime = val; }
 
500
 
 
501
    /**
 
502
     *
 
503
     */
 
504
    virtual double getDur()
 
505
        { return dur; }
 
506
 
 
507
    /**
 
508
     *
 
509
     */
 
510
    virtual void setDur(double val) throw(dom::DOMException)
 
511
        { dur = val; }
 
512
 
 
513
    typedef enum
 
514
        {
 
515
        RESTART_ALWAYS                 = 0,
 
516
        RESTART_NEVER                  = 1,
 
517
        RESTART_WHEN_NOT_ACTIVE        = 2
 
518
        } RestartTypes;
 
519
 
 
520
    /**
 
521
     *
 
522
     */
 
523
    virtual unsigned short getRestart()
 
524
        { return restart; }
 
525
 
 
526
    /**
 
527
     *
 
528
     */
 
529
    virtual void setRestart(unsigned short val) throw (dom::DOMException)
 
530
        { restart = val; }
 
531
 
 
532
 
 
533
    // fillTypes
 
534
    typedef enum
 
535
        {
 
536
        FILL_REMOVE                    = 0,
 
537
        FILL_FREEZE                    = 1
 
538
        } FillTypes;
 
539
 
 
540
 
 
541
    /**
 
542
     *
 
543
     */
 
544
    virtual unsigned short getFill()
 
545
        { return fill; }
 
546
 
 
547
    /**
 
548
     *
 
549
     */
 
550
    virtual void setFill(unsigned short val) throw (dom::DOMException)
 
551
        { fill = val; }
 
552
 
 
553
    /**
 
554
     *
 
555
     */
 
556
    virtual double getRepeatCount()
 
557
        { return repeatCount; }
 
558
 
 
559
    /**
 
560
     *
 
561
     */
 
562
    virtual void setRepeatCount(double val) throw (dom::DOMException)
 
563
        { repeatCount = val; }
 
564
 
 
565
    /**
 
566
     *
 
567
     */
 
568
    virtual double getRepeatDur()
 
569
        { return repeatDur; }
 
570
 
 
571
    /**
 
572
     *
 
573
     */
 
574
    virtual void setRepeatDur(double val) throw (dom::DOMException)
 
575
        { repeatDur = val; }
 
576
 
 
577
    /**
 
578
     *
 
579
     */
 
580
    virtual bool beginElement()
 
581
        {
 
582
        return true;
 
583
        }
 
584
 
 
585
    /**
 
586
     *
 
587
     */
 
588
    virtual bool endElement()
 
589
        {
 
590
        return true;
 
591
        }
 
592
 
 
593
    /**
 
594
     *
 
595
     */
 
596
    virtual void pauseElement()
 
597
        {
 
598
        }
 
599
 
 
600
    /**
 
601
     *
 
602
     */
 
603
    virtual void resumeElement()
 
604
        {
 
605
        }
 
606
 
 
607
    /**
 
608
     *
 
609
     */
 
610
    virtual void seekElement(double &seekTo)
 
611
        {
 
612
        }
 
613
 
 
614
 
 
615
    //##################
 
616
    //# Non-API methods
 
617
    //##################
 
618
 
 
619
    /**
 
620
     *
 
621
     */
 
622
    ElementTime()
 
623
        {
 
624
        dur         = 0.0;
 
625
        restart     = RESTART_ALWAYS;
 
626
        fill        = FILL_REMOVE;
 
627
        repeatCount = 0.0;
 
628
        repeatDur   = 0.0;
 
629
        }
 
630
 
 
631
    /**
 
632
     *
 
633
     */
 
634
    ElementTime(const ElementTime &other)
 
635
       {
 
636
       beginTime   = other.beginTime;
 
637
       endTime     = other.endTime;
 
638
       dur         = other.dur;
 
639
       restart     = other.restart;
 
640
       fill        = other.fill;
 
641
       repeatCount = other.repeatCount;
 
642
       repeatDur   = other.repeatDur;
 
643
       }
 
644
 
 
645
    /**
 
646
     *
 
647
     */
 
648
    virtual ~ElementTime() {}
 
649
 
 
650
 
 
651
protected:
 
652
 
 
653
    TimeList       beginTime;
 
654
    TimeList       endTime;
 
655
    double         dur;
 
656
    unsigned short restart;
 
657
    unsigned short fill;
 
658
    double         repeatCount;
 
659
    double         repeatDur;
 
660
 
 
661
 
 
662
};
 
663
 
 
664
 
 
665
/*#########################################################################
 
666
## ElementTimeManipulation
 
667
#########################################################################*/
 
668
 
 
669
/**
 
670
 *
 
671
 */
 
672
class ElementTimeManipulation
 
673
{
 
674
public:
 
675
 
 
676
    /**
 
677
     *
 
678
     */
 
679
    virtual double getSpeed()
 
680
        { return speed; }
 
681
    /**
 
682
     *
 
683
     */
 
684
    virtual void setSpeed(double val) throw (dom::DOMException)
 
685
        { speed = val; }
 
686
    /**
 
687
     *
 
688
     */
 
689
    virtual double getAccelerate()
 
690
        { return accelerate; }
 
691
 
 
692
    /**
 
693
     *
 
694
     */
 
695
    virtual void setAccelerate(double val) throw (dom::DOMException)
 
696
        { accelerate = val; }
 
697
 
 
698
    /**
 
699
     *
 
700
     */
 
701
    virtual double getDecelerate()
 
702
        { return decelerate; }
 
703
 
 
704
    /**
 
705
     *
 
706
     */
 
707
    virtual void setDecelerate(double val) throw (dom::DOMException)
 
708
        { decelerate = val; }
 
709
 
 
710
    /**
 
711
     *
 
712
     */
 
713
    virtual bool getAutoReverse()
 
714
        { return autoReverse; }
 
715
 
 
716
    /**
 
717
     *
 
718
     */
 
719
    virtual void setAutoReverse(bool val) throw (dom::DOMException)
 
720
        { autoReverse = val; }
 
721
 
 
722
 
 
723
    //##################
 
724
    //# Non-API methods
 
725
    //##################
 
726
 
 
727
    /**
 
728
     *
 
729
     */
 
730
    ElementTimeManipulation()
 
731
        {
 
732
        speed       = 0.0;
 
733
        accelerate  = 0.0;
 
734
        decelerate  = 0.0;
 
735
        autoReverse = false;
 
736
        }
 
737
 
 
738
    /**
 
739
     *
 
740
     */
 
741
    ElementTimeManipulation(const ElementTimeManipulation &other)
 
742
        {
 
743
        speed       = other.speed;
 
744
        accelerate  = other.accelerate;
 
745
        decelerate  = other.decelerate;
 
746
        autoReverse = other.autoReverse;
 
747
        }
 
748
 
 
749
    /**
 
750
     *
 
751
     */
 
752
    virtual ~ElementTimeManipulation() {}
 
753
 
 
754
 
 
755
protected:
 
756
 
 
757
    double speed;
 
758
    double accelerate;
 
759
    double decelerate;
 
760
    bool autoReverse;
 
761
 
 
762
};
 
763
 
 
764
 
 
765
/*#########################################################################
 
766
## ElementTimeContainer
 
767
#########################################################################*/
 
768
 
 
769
/**
 
770
 *
 
771
 */
 
772
class ElementTimeContainer : public ElementTime
 
773
{
 
774
public:
 
775
 
 
776
 
 
777
    /**
 
778
     *
 
779
     */
 
780
    virtual NodeList getTimeChildren()
 
781
        {
 
782
        NodeList list;
 
783
        return list;
 
784
        }
 
785
 
 
786
    /**
 
787
     *
 
788
     */
 
789
    virtual NodeList getActiveChildrenAt(double instant)
 
790
        {
 
791
        NodeList list;
 
792
        return list;
 
793
        }
 
794
 
 
795
    //##################
 
796
    //# Non-API methods
 
797
    //##################
 
798
 
 
799
    /**
 
800
     *
 
801
     */
 
802
    ElementTimeContainer() {}
 
803
 
 
804
    /**
 
805
     *
 
806
     */
 
807
    ElementTimeContainer(const ElementTimeContainer &other) : ElementTime(other)
 
808
        {
 
809
        }
 
810
 
 
811
    /**
 
812
     *
 
813
     */
 
814
    virtual ~ElementTimeContainer() {}
 
815
 
 
816
protected:
 
817
 
 
818
 
 
819
};
 
820
 
 
821
 
 
822
/*#########################################################################
 
823
## ElementSyncBehavior
 
824
#########################################################################*/
 
825
 
 
826
/**
 
827
 *
 
828
 */
 
829
class ElementSyncBehavior
 
830
{
 
831
public:
 
832
 
 
833
    /**
 
834
     *
 
835
     */
 
836
    virtual DOMString getSyncBehavior()
 
837
        { return syncBehavior; }
 
838
 
 
839
    /**
 
840
     *
 
841
     */
 
842
    virtual double getSyncTolerance()
 
843
        { return syncTolerance; }
 
844
 
 
845
    /**
 
846
     *
 
847
     */
 
848
    virtual DOMString getDefaultSyncBehavior()
 
849
        { return defaultSyncBehavior; }
 
850
 
 
851
    /**
 
852
     *
 
853
     */
 
854
    virtual double getDefaultSyncTolerance()
 
855
        { return defaultSyncTolerance; }
 
856
 
 
857
    /**
 
858
     *
 
859
     */
 
860
    virtual bool getSyncMaster()
 
861
        { return syncMaster; }
 
862
 
 
863
    //##################
 
864
    //# Non-API methods
 
865
    //##################
 
866
 
 
867
    /**
 
868
     *
 
869
     */
 
870
    ElementSyncBehavior()
 
871
        {
 
872
        syncBehavior         = "";
 
873
        syncTolerance        = 0.0;
 
874
        defaultSyncBehavior  = "";
 
875
        defaultSyncTolerance = 0.0;
 
876
        syncMaster           = false;
 
877
        }
 
878
 
 
879
    /**
 
880
     *
 
881
     */
 
882
    ElementSyncBehavior(const ElementSyncBehavior &other)
 
883
        {
 
884
        syncBehavior         = other.syncBehavior;
 
885
        syncTolerance        = other.syncTolerance;
 
886
        defaultSyncBehavior  = other.defaultSyncBehavior;
 
887
        defaultSyncTolerance = other.defaultSyncTolerance;
 
888
        syncMaster           = other.syncMaster;
 
889
        }
 
890
 
 
891
    /**
 
892
     *
 
893
     */
 
894
    virtual ~ElementSyncBehavior() {}
 
895
 
 
896
protected:
 
897
 
 
898
    DOMString syncBehavior;
 
899
    double    syncTolerance;
 
900
    DOMString defaultSyncBehavior;
 
901
    double    defaultSyncTolerance;
 
902
    bool      syncMaster;
 
903
 
 
904
};
 
905
 
 
906
 
 
907
/*#########################################################################
 
908
## ElementParallelTimeContainer
 
909
#########################################################################*/
 
910
 
 
911
/**
 
912
 *
 
913
 */
 
914
class ElementParallelTimeContainer : public ElementTimeContainer
 
915
{
 
916
public:
 
917
 
 
918
    /**
 
919
     *
 
920
     */
 
921
    virtual DOMString getEndSync()
 
922
        { return endSync; }
 
923
 
 
924
    /**
 
925
     *
 
926
     */
 
927
    virtual void setEndSync(const DOMString &val) throw (dom::DOMException)
 
928
        { endSync = val; }
 
929
 
 
930
    /**
 
931
     *
 
932
     */
 
933
    virtual double getImplicitDuration()
 
934
        { return implicitDuration; }
 
935
 
 
936
    //##################
 
937
    //# Non-API methods
 
938
    //##################
 
939
 
 
940
    /**
 
941
     *
 
942
     */
 
943
    ElementParallelTimeContainer()
 
944
        {
 
945
        endSync          = "";
 
946
        implicitDuration = 0.0;
 
947
        }
 
948
 
 
949
    /**
 
950
     *
 
951
     */
 
952
    ElementParallelTimeContainer(const ElementParallelTimeContainer &other)
 
953
                                : ElementTimeContainer(other)
 
954
        {
 
955
        endSync          = other.endSync;
 
956
        implicitDuration = other.implicitDuration;
 
957
        }
 
958
 
 
959
    /**
 
960
     *
 
961
     */
 
962
    virtual ~ElementParallelTimeContainer() {}
 
963
 
 
964
protected:
 
965
 
 
966
    DOMString endSync;
 
967
    double implicitDuration;
 
968
 
 
969
};
 
970
 
 
971
 
 
972
/*#########################################################################
 
973
## ElementSequentialTimeContainer
 
974
#########################################################################*/
 
975
 
 
976
/**
 
977
 *
 
978
 */
 
979
class ElementSequentialTimeContainer : public ElementTimeContainer
 
980
{
 
981
public:
 
982
 
 
983
 
 
984
    //##################
 
985
    //# Non-API methods
 
986
    //##################
 
987
 
 
988
    /**
 
989
     *
 
990
     */
 
991
    ElementSequentialTimeContainer() {}
 
992
 
 
993
    /**
 
994
     *
 
995
     */
 
996
    ElementSequentialTimeContainer(const ElementSequentialTimeContainer &other)
 
997
                             : ElementTimeContainer(other)
 
998
        {
 
999
        }
 
1000
 
 
1001
    /**
 
1002
     *
 
1003
     */
 
1004
    virtual ~ElementSequentialTimeContainer() {}
 
1005
 
 
1006
 
 
1007
};
 
1008
 
 
1009
 
 
1010
/*#########################################################################
 
1011
## ElementExclusiveTimeContainer
 
1012
#########################################################################*/
 
1013
 
 
1014
/**
 
1015
 *
 
1016
 */
 
1017
class ElementExclusiveTimeContainer : public ElementTimeContainer
 
1018
{
 
1019
public:
 
1020
 
 
1021
    /**
 
1022
     *
 
1023
     */
 
1024
    virtual DOMString getEndSync()
 
1025
        { return endSync; }
 
1026
 
 
1027
    /**
 
1028
     *
 
1029
     */
 
1030
    virtual void setEndSync(const DOMString &val) throw (dom::DOMException)
 
1031
        { endSync = val; }
 
1032
 
 
1033
    /**
 
1034
     *
 
1035
     */
 
1036
    virtual NodeList getPausedElements()
 
1037
        { return pausedElements; }
 
1038
 
 
1039
    //##################
 
1040
    //# Non-API methods
 
1041
    //##################
 
1042
 
 
1043
    /**
 
1044
     *
 
1045
     */
 
1046
    ElementExclusiveTimeContainer() {}
 
1047
 
 
1048
    /**
 
1049
     *
 
1050
     */
 
1051
    ElementExclusiveTimeContainer(const ElementExclusiveTimeContainer &other)
 
1052
                    : ElementTimeContainer(other)
 
1053
        {
 
1054
        endSync        = other.endSync;
 
1055
        pausedElements = other.pausedElements;
 
1056
        }
 
1057
 
 
1058
    /**
 
1059
     *
 
1060
     */
 
1061
    virtual ~ElementExclusiveTimeContainer() {}
 
1062
 
 
1063
protected:
 
1064
 
 
1065
    DOMString endSync;
 
1066
    NodeList pausedElements;
 
1067
 
 
1068
 
 
1069
};
 
1070
 
 
1071
 
 
1072
/*#########################################################################
 
1073
## ElementTimeControl
 
1074
#########################################################################*/
 
1075
 
 
1076
/**
 
1077
 *
 
1078
 */
 
1079
class ElementTimeControl
 
1080
{
 
1081
public:
 
1082
 
 
1083
    /**
 
1084
     *
 
1085
     */
 
1086
    virtual bool beginElement() throw(dom::DOMException)
 
1087
        {
 
1088
        return true;
 
1089
        }
 
1090
 
 
1091
    /**
 
1092
     *
 
1093
     */
 
1094
    virtual bool beginElementAt(double offset) throw(dom::DOMException)
 
1095
        {
 
1096
        return true;
 
1097
        }
 
1098
 
 
1099
    /**
 
1100
     *
 
1101
     */
 
1102
    virtual bool endElement() throw(dom::DOMException)
 
1103
        {
 
1104
        return true;
 
1105
        }
 
1106
 
 
1107
    /**
 
1108
     *
 
1109
     */
 
1110
    virtual bool endElementAt(double offset) throw(dom::DOMException)
 
1111
        {
 
1112
        return true;
 
1113
        }
 
1114
 
 
1115
    //##################
 
1116
    //# Non-API methods
 
1117
    //##################
 
1118
 
 
1119
    /**
 
1120
     *
 
1121
     */
 
1122
    ElementTimeControl() {}
 
1123
 
 
1124
    /**
 
1125
     *
 
1126
     */
 
1127
    ElementTimeControl(const ElementTimeControl &other)
 
1128
        {
 
1129
        }
 
1130
 
 
1131
    /**
 
1132
     *
 
1133
     */
 
1134
    virtual ~ElementTimeControl() {}
 
1135
 
 
1136
 
 
1137
};
 
1138
 
 
1139
 
 
1140
/*#########################################################################
 
1141
## ElementTargetAttributes
 
1142
#########################################################################*/
 
1143
 
 
1144
/**
 
1145
 *
 
1146
 */
 
1147
class ElementTargetAttributes
 
1148
{
 
1149
public:
 
1150
 
 
1151
 
 
1152
    /**
 
1153
     *
 
1154
     */
 
1155
    virtual DOMString getAttributeName()
 
1156
        { return attributeName; }
 
1157
 
 
1158
    /**
 
1159
     *
 
1160
     */
 
1161
    virtual void setAttributeName(const DOMString &val)
 
1162
        { attributeName = val; }
 
1163
 
 
1164
    typedef enum
 
1165
        {
 
1166
        ATTRIBUTE_TYPE_AUTO            = 0,
 
1167
        ATTRIBUTE_TYPE_CSS             = 1,
 
1168
        ATTRIBUTE_TYPE_XML             = 2
 
1169
        } AttributeTypes;
 
1170
 
 
1171
    /**
 
1172
     *
 
1173
     */
 
1174
    virtual unsigned short getAttributeType()
 
1175
        { return attributeType; }
 
1176
 
 
1177
    /**
 
1178
     *
 
1179
     */
 
1180
    virtual void setAttributeType(unsigned short val)
 
1181
        { attributeType = val; }
 
1182
 
 
1183
    //##################
 
1184
    //# Non-API methods
 
1185
    //##################
 
1186
 
 
1187
    /**
 
1188
     *
 
1189
     */
 
1190
    ElementTargetAttributes()
 
1191
        {
 
1192
        attributeName = "";
 
1193
        attributeType = ATTRIBUTE_TYPE_AUTO;
 
1194
        }
 
1195
 
 
1196
    /**
 
1197
     *
 
1198
     */
 
1199
    ElementTargetAttributes(const ElementTargetAttributes &other)
 
1200
       {
 
1201
       attributeName = other.attributeName;
 
1202
       attributeType = other.attributeType;
 
1203
       }
 
1204
 
 
1205
    /**
 
1206
     *
 
1207
     */
 
1208
    virtual ~ElementTargetAttributes() {}
 
1209
 
 
1210
protected:
 
1211
 
 
1212
    DOMString      attributeName;
 
1213
    unsigned short attributeType;
 
1214
 
 
1215
};
 
1216
 
 
1217
 
 
1218
/*#########################################################################
 
1219
## ElementTest
 
1220
#########################################################################*/
 
1221
 
 
1222
/**
 
1223
 *
 
1224
 */
 
1225
class ElementTest
 
1226
{
 
1227
public:
 
1228
 
 
1229
 
 
1230
    /**
 
1231
     *
 
1232
     */
 
1233
    virtual long getSystemBitrate()
 
1234
        { return systemBitrate; }
 
1235
 
 
1236
    /**
 
1237
     *
 
1238
     */
 
1239
    virtual void setSystemBitrate(long val) throw (dom::DOMException)
 
1240
        { systemBitrate = val; }
 
1241
 
 
1242
    /**
 
1243
     *
 
1244
     */
 
1245
    virtual bool getSystemCaptions()
 
1246
        { return systemCaptions; }
 
1247
 
 
1248
    /**
 
1249
     *
 
1250
     */
 
1251
    virtual void setSystemCaptions(bool val) throw (dom::DOMException)
 
1252
        { systemCaptions = val; }
 
1253
 
 
1254
    /**
 
1255
     *
 
1256
     */
 
1257
    virtual DOMString getSystemLanguage()
 
1258
        { return systemLanguage; }
 
1259
 
 
1260
    /**
 
1261
     *
 
1262
     */
 
1263
    virtual void setSystemLanguage(const DOMString &val) throw (dom::DOMException)
 
1264
        { systemLanguage = val; }
 
1265
 
 
1266
    /**
 
1267
     *
 
1268
     */
 
1269
    virtual bool getSystemRequired()
 
1270
        { return systemRequired; }
 
1271
 
 
1272
    /**
 
1273
     *
 
1274
     */
 
1275
    virtual bool getSystemScreenSize()
 
1276
        { return systemScreenSize; }
 
1277
 
 
1278
    /**
 
1279
     *
 
1280
     */
 
1281
    virtual bool getSystemScreenDepth()
 
1282
        { return systemScreenDepth; }
 
1283
 
 
1284
    /**
 
1285
     *
 
1286
     */
 
1287
    virtual DOMString getSystemOverdubOrSubtitle()
 
1288
        { return systemOverdubOrSubtitle; }
 
1289
 
 
1290
    /**
 
1291
     *
 
1292
     */
 
1293
    virtual void setSystemOverdubOrSubtitle(const DOMString &val) throw (dom::DOMException)
 
1294
        { systemOverdubOrSubtitle = val; }
 
1295
 
 
1296
    /**
 
1297
     *
 
1298
     */
 
1299
    virtual bool getSystemAudioDesc()
 
1300
        { return systemBitrate; }
 
1301
 
 
1302
    /**
 
1303
     *
 
1304
     */
 
1305
    virtual void setSystemAudioDesc(bool val)  throw (dom::DOMException)
 
1306
        { systemAudioDesc = val; }
 
1307
 
 
1308
 
 
1309
    //##################
 
1310
    //# Non-API methods
 
1311
    //##################
 
1312
 
 
1313
    /**
 
1314
     *
 
1315
     */
 
1316
    ElementTest()
 
1317
        {
 
1318
        systemBitrate           = 0;
 
1319
        systemCaptions          = false;
 
1320
        systemLanguage          = "";
 
1321
        systemRequired          = false;
 
1322
        systemScreenSize        = false;
 
1323
        systemScreenDepth       = false;
 
1324
        systemOverdubOrSubtitle = "";
 
1325
        systemAudioDesc         = false;
 
1326
        }
 
1327
 
 
1328
    /**
 
1329
     *
 
1330
     */
 
1331
    ElementTest(const ElementTest &other)
 
1332
       {
 
1333
        systemBitrate           = other.systemBitrate;
 
1334
        systemCaptions          = other.systemCaptions;
 
1335
        systemLanguage          = other.systemLanguage;
 
1336
        systemRequired          = other.systemRequired;
 
1337
        systemScreenSize        = other.systemScreenSize;
 
1338
        systemScreenDepth       = other.systemScreenDepth;
 
1339
        systemOverdubOrSubtitle = other.systemOverdubOrSubtitle;
 
1340
        systemAudioDesc         = other.systemAudioDesc;
 
1341
       }
 
1342
 
 
1343
    /**
 
1344
     *
 
1345
     */
 
1346
    virtual ~ElementTest() {}
 
1347
 
 
1348
 
 
1349
protected:
 
1350
 
 
1351
 
 
1352
    long      systemBitrate;
 
1353
    bool      systemCaptions;
 
1354
    DOMString systemLanguage;
 
1355
    bool      systemRequired;
 
1356
    bool      systemScreenSize;
 
1357
    bool      systemScreenDepth;
 
1358
    DOMString systemOverdubOrSubtitle;
 
1359
    bool      systemAudioDesc;
 
1360
};
 
1361
 
 
1362
 
 
1363
/*#########################################################################
 
1364
## TimeEvent
 
1365
#########################################################################*/
 
1366
 
 
1367
/**
 
1368
 *
 
1369
 */
 
1370
class TimeEvent : public events::Event
 
1371
{
 
1372
public:
 
1373
 
 
1374
    /**
 
1375
     *
 
1376
     */
 
1377
    virtual views::View getView()
 
1378
        { return view; }
 
1379
 
 
1380
    /**
 
1381
     *
 
1382
     */
 
1383
    virtual long getDetail()
 
1384
        { return detail; }
 
1385
 
 
1386
    /**
 
1387
     *
 
1388
     */
 
1389
    virtual void initTimeEvent(const DOMString &typeArg,
 
1390
                               const views::View *viewArg,
 
1391
                               long detailArg)
 
1392
        {
 
1393
        }
 
1394
 
 
1395
    //##################
 
1396
    //# Non-API methods
 
1397
    //##################
 
1398
 
 
1399
    /**
 
1400
     *
 
1401
     */
 
1402
    TimeEvent()
 
1403
        {
 
1404
        detail = 0;
 
1405
        }
 
1406
 
 
1407
    /**
 
1408
     *
 
1409
     */
 
1410
    TimeEvent(const TimeEvent &other) : events::Event(other)
 
1411
        {
 
1412
        view   = other.view;
 
1413
        detail = other.detail;
 
1414
        }
 
1415
 
 
1416
    /**
 
1417
     *
 
1418
     */
 
1419
    virtual ~TimeEvent() {}
 
1420
 
 
1421
 
 
1422
protected:
 
1423
 
 
1424
    views::View view;
 
1425
    long detail;
 
1426
 
 
1427
 
 
1428
};
 
1429
 
 
1430
 
 
1431
 
 
1432
 
 
1433
/*#########################################################################
 
1434
###########################################################################
 
1435
##  I N T E R F A C E    T Y P E S
 
1436
###########################################################################
 
1437
#########################################################################*/
 
1438
 
 
1439
 
 
1440
 
 
1441
 
 
1442
/*#########################################################################
 
1443
## SMILDocument
 
1444
#########################################################################*/
 
1445
 
 
1446
/**
 
1447
 *
 
1448
 */
 
1449
class SMILDocument : virtual public Document,
 
1450
                     public ElementSequentialTimeContainer
 
1451
{
 
1452
public:
 
1453
 
 
1454
 
 
1455
    //##################
 
1456
    //# Non-API methods
 
1457
    //##################
 
1458
 
 
1459
    /**
 
1460
     *
 
1461
     */
 
1462
    virtual ~SMILDocument() {}
 
1463
 
 
1464
 
 
1465
};
 
1466
 
 
1467
 
 
1468
/*#########################################################################
 
1469
## SMILElement
 
1470
#########################################################################*/
 
1471
 
 
1472
/**
 
1473
 *
 
1474
 */
 
1475
class SMILElement : virtual public Element
 
1476
{
 
1477
public:
 
1478
 
 
1479
    /**
 
1480
     *
 
1481
     */
 
1482
    virtual DOMString getId() =0;
 
1483
 
 
1484
    /**
 
1485
     *
 
1486
     */
 
1487
    virtual void setId(const DOMString &val) throw (dom::DOMException) =0;
 
1488
 
 
1489
 
 
1490
    //##################
 
1491
    //# Non-API methods
 
1492
    //##################
 
1493
 
 
1494
    /**
 
1495
     *
 
1496
     */
 
1497
    virtual ~SMILElement() {}
 
1498
 
 
1499
 
 
1500
};
 
1501
 
 
1502
 
 
1503
/*#########################################################################
 
1504
## SMILLayoutElement
 
1505
#########################################################################*/
 
1506
 
 
1507
/**
 
1508
 *
 
1509
 */
 
1510
class SMILLayoutElement : virtual public SMILElement
 
1511
{
 
1512
public:
 
1513
 
 
1514
    /**
 
1515
     *
 
1516
     */
 
1517
    virtual DOMString getType() =0;
 
1518
 
 
1519
    /**
 
1520
     *
 
1521
     */
 
1522
    virtual bool getResolved() =0;
 
1523
 
 
1524
    //##################
 
1525
    //# Non-API methods
 
1526
    //##################
 
1527
 
 
1528
    /**
 
1529
     *
 
1530
     */
 
1531
    virtual ~SMILLayoutElement() {}
 
1532
 
 
1533
 
 
1534
};
 
1535
 
 
1536
 
 
1537
/*#########################################################################
 
1538
## SMILTopLayoutElement
 
1539
#########################################################################*/
 
1540
 
 
1541
/**
 
1542
 *
 
1543
 */
 
1544
class SMILTopLayoutElement : virtual public SMILElement,
 
1545
                             virtual public ElementLayout
 
1546
{
 
1547
public:
 
1548
 
 
1549
 
 
1550
    //##################
 
1551
    //# Non-API methods
 
1552
    //##################
 
1553
 
 
1554
    /**
 
1555
     *
 
1556
     */
 
1557
    virtual ~SMILTopLayoutElement() {}
 
1558
 
 
1559
 
 
1560
};
 
1561
 
 
1562
 
 
1563
/*#########################################################################
 
1564
## SMILRootLayoutElement
 
1565
#########################################################################*/
 
1566
 
 
1567
/**
 
1568
 *
 
1569
 */
 
1570
class SMILRootLayoutElement : virtual public SMILElement,
 
1571
                              virtual public ElementLayout
 
1572
{
 
1573
public:
 
1574
 
 
1575
 
 
1576
    //##################
 
1577
    //# Non-API methods
 
1578
    //##################
 
1579
 
 
1580
    /**
 
1581
     *
 
1582
     */
 
1583
    virtual ~SMILRootLayoutElement() {}
 
1584
 
 
1585
 
 
1586
};
 
1587
 
 
1588
 
 
1589
/*#########################################################################
 
1590
## SMILRegionElement
 
1591
#########################################################################*/
 
1592
 
 
1593
/**
 
1594
 *
 
1595
 */
 
1596
class SMILRegionElement : virtual public SMILElement,
 
1597
                          virtual public ElementLayout
 
1598
{
 
1599
public:
 
1600
 
 
1601
 
 
1602
    /**
 
1603
     *
 
1604
     */
 
1605
    virtual DOMString getFit() =0;
 
1606
 
 
1607
    /**
 
1608
     *
 
1609
     */
 
1610
    virtual void setFit(const DOMString &val) throw (dom::DOMException) =0;
 
1611
 
 
1612
    /**
 
1613
     *
 
1614
     */
 
1615
    virtual DOMString getTop() =0;
 
1616
 
 
1617
    /**
 
1618
     *
 
1619
     */
 
1620
    virtual void setTop(const DOMString &val) throw (dom::DOMException) =0;
 
1621
 
 
1622
    /**
 
1623
     *
 
1624
     */
 
1625
    virtual long getZIndex() =0;
 
1626
 
 
1627
    /**
 
1628
     *
 
1629
     */
 
1630
    virtual void setZIndex(long val) throw (dom::DOMException) =0;
 
1631
 
 
1632
 
 
1633
    //##################
 
1634
    //# Non-API methods
 
1635
    //##################
 
1636
 
 
1637
    /**
 
1638
     *
 
1639
     */
 
1640
    virtual ~SMILRegionElement() {}
 
1641
 
 
1642
 
 
1643
};
 
1644
 
 
1645
 
 
1646
 
 
1647
/*#########################################################################
 
1648
## SMILMediaElement
 
1649
#########################################################################*/
 
1650
 
 
1651
/**
 
1652
 *
 
1653
 */
 
1654
class SMILMediaElement : virtual public ElementTime,
 
1655
                         virtual public SMILElement
 
1656
{
 
1657
public:
 
1658
 
 
1659
 
 
1660
    /**
 
1661
     *
 
1662
     */
 
1663
    virtual DOMString getAbstractAttr() =0;
 
1664
 
 
1665
    /**
 
1666
     *
 
1667
     */
 
1668
    virtual void setAbstractAttr(const DOMString &val) throw (dom::DOMException) =0;
 
1669
 
 
1670
    /**
 
1671
     *
 
1672
     */
 
1673
    virtual DOMString getAlt() =0;
 
1674
 
 
1675
    /**
 
1676
     *
 
1677
     */
 
1678
    virtual void setAlt(const DOMString &val) throw (dom::DOMException) =0;
 
1679
 
 
1680
    /**
 
1681
     *
 
1682
     */
 
1683
    virtual DOMString getAuthor() =0;
 
1684
 
 
1685
    /**
 
1686
     *
 
1687
     */
 
1688
    virtual void setAuthor(const DOMString &val) throw (dom::DOMException) =0;
 
1689
 
 
1690
    /**
 
1691
     *
 
1692
     */
 
1693
    virtual DOMString getClipBegin() =0;
 
1694
 
 
1695
    /**
 
1696
     *
 
1697
     */
 
1698
    virtual void setClipBegin(const DOMString &val) throw (dom::DOMException) =0;
 
1699
 
 
1700
    /**
 
1701
     *
 
1702
     */
 
1703
    virtual DOMString getClipEnd() =0;
 
1704
 
 
1705
    /**
 
1706
     *
 
1707
     */
 
1708
    virtual void setClipEnd(const DOMString &val) throw (dom::DOMException) =0;
 
1709
 
 
1710
    /**
 
1711
     *
 
1712
     */
 
1713
    virtual DOMString getCopyright() =0;
 
1714
 
 
1715
    /**
 
1716
     *
 
1717
     */
 
1718
    virtual void setCopyright(const DOMString &val) throw (dom::DOMException) =0;
 
1719
 
 
1720
    /**
 
1721
     *
 
1722
     */
 
1723
    virtual DOMString getLongdesc() =0;
 
1724
 
 
1725
    /**
 
1726
     *
 
1727
     */
 
1728
    virtual void setLongdesc(const DOMString &val) throw (dom::DOMException) =0;
 
1729
 
 
1730
    /**
 
1731
     *
 
1732
     */
 
1733
    virtual DOMString getPort() =0;
 
1734
 
 
1735
    /**
 
1736
     *
 
1737
     */
 
1738
    virtual void setPort(const DOMString &val) throw (dom::DOMException) =0;
 
1739
 
 
1740
    /**
 
1741
     *
 
1742
     */
 
1743
    virtual DOMString getReadIndex() =0;
 
1744
 
 
1745
    /**
 
1746
     *
 
1747
     */
 
1748
    virtual void setReadIndex(const DOMString &val) throw (dom::DOMException) =0;
 
1749
 
 
1750
    /**
 
1751
     *
 
1752
     */
 
1753
    virtual DOMString getRtpformat() =0;
 
1754
 
 
1755
    /**
 
1756
     *
 
1757
     */
 
1758
    virtual void setRtpformat(const DOMString &val) throw (dom::DOMException) =0;
 
1759
 
 
1760
    /**
 
1761
     *
 
1762
     */
 
1763
    virtual DOMString getSrc() =0;
 
1764
 
 
1765
    /**
 
1766
     *
 
1767
     */
 
1768
    virtual void setSrc(const DOMString &val) throw (dom::DOMException) =0;
 
1769
 
 
1770
    /**
 
1771
     *
 
1772
     */
 
1773
    virtual DOMString getStripRepeat() =0;
 
1774
 
 
1775
    /**
 
1776
     *
 
1777
     */
 
1778
    virtual void setStripRepeat(const DOMString &val) throw (dom::DOMException) =0;
 
1779
 
 
1780
    /**
 
1781
     *
 
1782
     */
 
1783
    virtual DOMString getTitle() =0;
 
1784
 
 
1785
    /**
 
1786
     *
 
1787
     */
 
1788
    virtual void setTitle(const DOMString &val) throw (dom::DOMException) =0;
 
1789
 
 
1790
    /**
 
1791
     *
 
1792
     */
 
1793
    virtual DOMString getTransport() =0;
 
1794
 
 
1795
    /**
 
1796
     *
 
1797
     */
 
1798
    virtual void setTransport(const DOMString &val) throw (dom::DOMException) =0;
 
1799
 
 
1800
    /**
 
1801
     *
 
1802
     */
 
1803
    virtual DOMString getType() =0;
 
1804
 
 
1805
    /**
 
1806
     *
 
1807
     */
 
1808
    virtual void setType(const DOMString &val) throw (dom::DOMException) =0;
 
1809
 
 
1810
 
 
1811
 
 
1812
    //##################
 
1813
    //# Non-API methods
 
1814
    //##################
 
1815
 
 
1816
    /**
 
1817
     *
 
1818
     */
 
1819
    virtual ~SMILMediaElement() {}
 
1820
 
 
1821
 
 
1822
};
 
1823
 
 
1824
 
 
1825
/*#########################################################################
 
1826
## SMILRefElement
 
1827
#########################################################################*/
 
1828
 
 
1829
/**
 
1830
 *
 
1831
 */
 
1832
class SMILRefElement : virtual public SMILMediaElement
 
1833
{
 
1834
public:
 
1835
 
 
1836
 
 
1837
    //##################
 
1838
    //# Non-API methods
 
1839
    //##################
 
1840
 
 
1841
    /**
 
1842
     *
 
1843
     */
 
1844
    virtual ~SMILRefElement() {}
 
1845
 
 
1846
 
 
1847
};
 
1848
 
 
1849
 
 
1850
/*#########################################################################
 
1851
## SMILAnimation
 
1852
#########################################################################*/
 
1853
 
 
1854
/**
 
1855
 *
 
1856
 */
 
1857
class SMILAnimation : virtual public SMILElement,
 
1858
                      virtual public ElementTargetAttributes,
 
1859
                      virtual public ElementTime,
 
1860
                      virtual public ElementTimeControl
 
1861
{
 
1862
public:
 
1863
 
 
1864
    typedef enum
 
1865
        {
 
1866
        ADDITIVE_REPLACE               = 0,
 
1867
        ADDITIVE_SUM                   = 1
 
1868
        } AdditiveTypes;
 
1869
 
 
1870
 
 
1871
    /**
 
1872
     *
 
1873
     */
 
1874
    virtual unsigned short getAdditive() =0;
 
1875
 
 
1876
    /**
 
1877
     *
 
1878
     */
 
1879
    virtual void setAdditive(unsigned short val) throw (dom::DOMException)=0;
 
1880
 
 
1881
    typedef enum
 
1882
        {
 
1883
        ACCUMULATE_NONE                = 0,
 
1884
        ACCUMULATE_SUM                 = 1
 
1885
        } AccumulateTypes;
 
1886
 
 
1887
 
 
1888
    /**
 
1889
     *
 
1890
     */
 
1891
    virtual unsigned short getAccumulate() =0;
 
1892
 
 
1893
    /**
 
1894
     *
 
1895
     */
 
1896
    virtual void setAccumulate(unsigned short val) throw (dom::DOMException)=0;
 
1897
 
 
1898
    typedef enum
 
1899
        {
 
1900
        CALCMODE_DISCRETE              = 0,
 
1901
        CALCMODE_LINEAR                = 1,
 
1902
        CALCMODE_PACED                 = 2,
 
1903
        CALCMODE_SPLINE                = 3
 
1904
        } CalcModeTypes;
 
1905
 
 
1906
 
 
1907
    /**
 
1908
     *
 
1909
     */
 
1910
    virtual unsigned short getCalcMode() =0;
 
1911
 
 
1912
    /**
 
1913
     *
 
1914
     */
 
1915
    virtual void setCalcMode(unsigned short val) throw (dom::DOMException)=0;
 
1916
 
 
1917
    /**
 
1918
     *
 
1919
     */
 
1920
    virtual DOMString getKeySplines() =0;
 
1921
 
 
1922
    /**
 
1923
     *
 
1924
     */
 
1925
    virtual void setKeySplines(const DOMString &val) throw (dom::DOMException)=0;
 
1926
 
 
1927
    /**
 
1928
     *
 
1929
     */
 
1930
    virtual TimeList getKeyTimes() =0;
 
1931
 
 
1932
    /**
 
1933
     *
 
1934
     */
 
1935
    virtual void setKeyTimes(const TimeList &val) throw (dom::DOMException)=0;
 
1936
 
 
1937
    /**
 
1938
     *
 
1939
     */
 
1940
    virtual DOMString getValues() =0;
 
1941
 
 
1942
    /**
 
1943
     *
 
1944
     */
 
1945
    virtual void setValues(const DOMString &val) throw (dom::DOMException)=0;
 
1946
 
 
1947
    /**
 
1948
     *
 
1949
     */
 
1950
    virtual DOMString getFrom() =0;
 
1951
 
 
1952
    /**
 
1953
     *
 
1954
     */
 
1955
    virtual void setFrom(const DOMString &val) throw (dom::DOMException)=0;
 
1956
 
 
1957
    /**
 
1958
     *
 
1959
     */
 
1960
    virtual DOMString getTo() =0;
 
1961
 
 
1962
    /**
 
1963
     *
 
1964
     */
 
1965
    virtual void setTo(const DOMString &val) throw (dom::DOMException)=0;
 
1966
 
 
1967
    /**
 
1968
     *
 
1969
     */
 
1970
    virtual DOMString getBy() =0;
 
1971
 
 
1972
    /**
 
1973
     *
 
1974
     */
 
1975
    virtual void setBy(const DOMString &val) throw (dom::DOMException)=0;
 
1976
 
 
1977
    //##################
 
1978
    //# Non-API methods
 
1979
    //##################
 
1980
 
 
1981
    /**
 
1982
     *
 
1983
     */
 
1984
    virtual ~SMILAnimation() {}
 
1985
 
 
1986
 
 
1987
};
 
1988
 
 
1989
 
 
1990
/*#########################################################################
 
1991
## SMILAnimateElement
 
1992
#########################################################################*/
 
1993
 
 
1994
/**
 
1995
 *
 
1996
 */
 
1997
class SMILAnimateElement : virtual public SMILAnimation
 
1998
{
 
1999
public:
 
2000
 
 
2001
 
 
2002
    //##################
 
2003
    //# Non-API methods
 
2004
    //##################
 
2005
 
 
2006
    /**
 
2007
     *
 
2008
     */
 
2009
    virtual ~SMILAnimateElement() {}
 
2010
 
 
2011
 
 
2012
};
 
2013
 
 
2014
 
 
2015
/*#########################################################################
 
2016
## SMILSetElement
 
2017
#########################################################################*/
 
2018
 
 
2019
/**
 
2020
 *
 
2021
 */
 
2022
class SMILSetElement : virtual public ElementTimeControl,
 
2023
                       virtual public ElementTime,
 
2024
                       virtual public ElementTargetAttributes,
 
2025
                       virtual public SMILElement
 
2026
{
 
2027
public:
 
2028
 
 
2029
    /**
 
2030
     *
 
2031
     */
 
2032
    virtual DOMString getTo() =0;
 
2033
 
 
2034
    /**
 
2035
     *
 
2036
     */
 
2037
    virtual void setTo(const DOMString &val) =0;
 
2038
 
 
2039
    //##################
 
2040
    //# Non-API methods
 
2041
    //##################
 
2042
 
 
2043
    /**
 
2044
     *
 
2045
     */
 
2046
    virtual ~SMILSetElement() {}
 
2047
 
 
2048
 
 
2049
};
 
2050
 
 
2051
 
 
2052
/*#########################################################################
 
2053
## SMILAnimateMotionElement
 
2054
#########################################################################*/
 
2055
 
 
2056
/**
 
2057
 *
 
2058
 */
 
2059
class SMILAnimateMotionElement : virtual public SMILAnimateElement
 
2060
{
 
2061
public:
 
2062
 
 
2063
    /**
 
2064
     *
 
2065
     */
 
2066
    virtual DOMString getPath() =0;
 
2067
 
 
2068
    /**
 
2069
     *
 
2070
     */
 
2071
    virtual void setPath(const DOMString &val) throw(dom::DOMException) =0;
 
2072
 
 
2073
    /**
 
2074
     *
 
2075
     */
 
2076
    virtual DOMString getOrigin() =0;
 
2077
 
 
2078
    /**
 
2079
     *
 
2080
     */
 
2081
    virtual void setOrigin(const DOMString &val) throw(dom::DOMException) =0;
 
2082
 
 
2083
 
 
2084
    //##################
 
2085
    //# Non-API methods
 
2086
    //##################
 
2087
 
 
2088
    /**
 
2089
     *
 
2090
     */
 
2091
    virtual ~SMILAnimateMotionElement() {}
 
2092
 
 
2093
 
 
2094
};
 
2095
 
 
2096
 
 
2097
/*#########################################################################
 
2098
## SMILAnimateColorElement
 
2099
#########################################################################*/
 
2100
 
 
2101
/**
 
2102
 *
 
2103
 */
 
2104
class SMILAnimateColorElement : virtual public SMILAnimation
 
2105
{
 
2106
public:
 
2107
 
 
2108
 
 
2109
    //##################
 
2110
    //# Non-API methods
 
2111
    //##################
 
2112
 
 
2113
    /**
 
2114
     *
 
2115
     */
 
2116
    virtual ~SMILAnimateColorElement() {}
 
2117
 
 
2118
 
 
2119
};
 
2120
 
 
2121
 
 
2122
 
 
2123
 
 
2124
 
 
2125
/*#########################################################################
 
2126
## SMILSwitchElement
 
2127
#########################################################################*/
 
2128
 
 
2129
/**
 
2130
 *
 
2131
 */
 
2132
class SMILSwitchElement : virtual public SMILElement
 
2133
{
 
2134
public:
 
2135
 
 
2136
    /**
 
2137
     *
 
2138
     */
 
2139
    virtual Element *getSelectedElement() =0;
 
2140
 
 
2141
    //##################
 
2142
    //# Non-API methods
 
2143
    //##################
 
2144
 
 
2145
    /**
 
2146
     *
 
2147
     */
 
2148
    virtual ~SMILSwitchElement() {}
 
2149
 
 
2150
 
 
2151
};
 
2152
 
 
2153
 
 
2154
 
 
2155
 
 
2156
 
 
2157
}  //namespace smil
 
2158
}  //namespace dom
 
2159
}  //namespace w3c
 
2160
}  //namespace org
 
2161
 
 
2162
#endif   /* __SMIL_H__ */
 
2163
 
 
2164
/*#########################################################################
 
2165
## E N D    O F    F I L E
 
2166
#########################################################################*/
 
2167