smil.h revision fd81cca9448f3ec45db258eb73b8de41f301e4e1
#ifndef __SMIL_H__
#define __SMIL_H__
/**
* Phoebe DOM Implementation.
*
* This is a C++ approximation of the W3C DOM model, which follows
* fairly closely the specifications in the various .idl files, copies of
* which are provided for reference. Most important is this one:
*
*
* Authors:
* Bob Jamison
*
* Copyright (C) 2005 Bob Jamison
*
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "dom.h"
#include "views.h"
#include "events.h"
#include <vector>
{
{
{
{
//Local definitions
//forward declarations
/*#########################################################################
###########################################################################
## D A T A T Y P E S
###########################################################################
#########################################################################*/
/*#########################################################################
## ElementLayout
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return title; }
/**
*
*/
/**
*
*/
{ return backgroundColor; }
/**
*
*/
{ backgroundColor = val; }
/**
*
*/
{ return height; }
/**
*
*/
/**
*
*/
{ return width; }
/**
*
*/
//##################
//# Non-API methods
//##################
/**
*
*/
ElementLayout() {}
/**
*
*/
{
}
/**
*
*/
virtual ~ElementLayout() {}
long height;
long width;
};
/*#########################################################################
## SMILRegionInterface
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return regionElement; }
/**
*
*/
//##################
//# Non-API methods
//##################
/**
*
*/
{ regionElement = NULL; }
/**
*
*/
/**
*
*/
virtual ~SMILRegionInterface() {}
};
/*#########################################################################
## Time
#########################################################################*/
/**
*
*/
{
/**
*
*/
virtual bool getResolved()
{ return resolved; }
/**
*
*/
virtual double getResolvedOffset()
{ return resolvedOffset; }
typedef enum
{
SMIL_TIME_INDEFINITE = 0,
SMIL_TIME_OFFSET = 1,
SMIL_TIME_SYNC_BASED = 2,
SMIL_TIME_WALLCLOCK = 4,
} TimeTypes;
/**
*
*/
virtual unsigned short getTimeType()
{ return timeType; }
/**
*
*/
{ return offset; }
/**
*
*/
/**
*
*/
{ return baseElement; }
/**
*
*/
/**
*
*/
virtual bool getBaseBegin()
{ return baseBegin; }
/**
*
*/
/**
*
*/
{ return eventStr; }
/**
*
*/
/**
*
*/
{ return marker; }
/**
*
*/
//##################
//# Non-API methods
//##################
/**
*
*/
Time()
{
resolved = false;
resolvedOffset = 0.0;
offset = 0.0;
baseElement = NULL;
baseBegin = false;
eventStr = "";
marker = "";
}
/**
*
*/
{
}
/**
*
*/
bool resolved;
double resolvedOffset;
unsigned short timeType;
double offset;
bool baseBegin;
};
/*#########################################################################
## TimeList
#########################################################################*/
/**
*
*/
{
/**
*
*/
{
{
return tim;
}
}
/**
*
*/
{
}
//##################
//# Non-API methods
//##################
/**
*
*/
TimeList() {}
/**
*
*/
{
}
/**
*
*/
};
/*#########################################################################
## ElementTime
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return beginTime; }
/**
*
*/
/**
*
*/
{ return endTime; }
/**
*
*/
/**
*
*/
{ return dur; }
/**
*
*/
typedef enum
{
RESTART_ALWAYS = 0,
RESTART_NEVER = 1,
} RestartTypes;
/**
*
*/
virtual unsigned short getRestart()
{ return restart; }
/**
*
*/
// fillTypes
typedef enum
{
FILL_REMOVE = 0,
FILL_FREEZE = 1
} FillTypes;
/**
*
*/
{ return fill; }
/**
*
*/
/**
*
*/
virtual double getRepeatCount()
{ return repeatCount; }
/**
*
*/
{ repeatCount = val; }
/**
*
*/
virtual double getRepeatDur()
{ return repeatDur; }
/**
*
*/
/**
*
*/
virtual bool beginElement()
{
return true;
}
/**
*
*/
virtual bool endElement()
{
return true;
}
/**
*
*/
virtual void pauseElement()
{
}
/**
*
*/
virtual void resumeElement()
{
}
/**
*
*/
{
}
//##################
//# Non-API methods
//##################
/**
*
*/
{
dur = 0.0;
fill = FILL_REMOVE;
repeatCount = 0.0;
repeatDur = 0.0;
}
/**
*
*/
{
}
/**
*
*/
virtual ~ElementTime() {}
double dur;
unsigned short restart;
unsigned short fill;
double repeatCount;
double repeatDur;
};
/*#########################################################################
## ElementTimeManipulation
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return speed; }
/**
*
*/
/**
*
*/
virtual double getAccelerate()
{ return accelerate; }
/**
*
*/
{ accelerate = val; }
/**
*
*/
virtual double getDecelerate()
{ return decelerate; }
/**
*
*/
{ decelerate = val; }
/**
*
*/
virtual bool getAutoReverse()
{ return autoReverse; }
/**
*
*/
{ autoReverse = val; }
//##################
//# Non-API methods
//##################
/**
*
*/
{
speed = 0.0;
accelerate = 0.0;
decelerate = 0.0;
autoReverse = false;
}
/**
*
*/
{
}
/**
*
*/
double speed;
double accelerate;
double decelerate;
bool autoReverse;
};
/*#########################################################################
## ElementTimeContainer
#########################################################################*/
/**
*
*/
{
/**
*
*/
{
return list;
}
/**
*
*/
{
return list;
}
//##################
//# Non-API methods
//##################
/**
*
*/
ElementTimeContainer() {}
/**
*
*/
{
}
/**
*
*/
virtual ~ElementTimeContainer() {}
};
/*#########################################################################
## ElementSyncBehavior
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return syncBehavior; }
/**
*
*/
virtual double getSyncTolerance()
{ return syncTolerance; }
/**
*
*/
{ return defaultSyncBehavior; }
/**
*
*/
virtual double getDefaultSyncTolerance()
{ return defaultSyncTolerance; }
/**
*
*/
virtual bool getSyncMaster()
{ return syncMaster; }
//##################
//# Non-API methods
//##################
/**
*
*/
{
syncBehavior = "";
syncTolerance = 0.0;
defaultSyncBehavior = "";
defaultSyncTolerance = 0.0;
syncMaster = false;
}
/**
*
*/
{
}
/**
*
*/
virtual ~ElementSyncBehavior() {}
double syncTolerance;
double defaultSyncTolerance;
bool syncMaster;
};
/*#########################################################################
## ElementParallelTimeContainer
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return endSync; }
/**
*
*/
/**
*
*/
virtual double getImplicitDuration()
{ return implicitDuration; }
//##################
//# Non-API methods
//##################
/**
*
*/
{
endSync = "";
implicitDuration = 0.0;
}
/**
*
*/
{
}
/**
*
*/
double implicitDuration;
};
/*#########################################################################
## ElementSequentialTimeContainer
#########################################################################*/
/**
*
*/
{
//##################
//# Non-API methods
//##################
/**
*
*/
/**
*
*/
{
}
/**
*
*/
};
/*#########################################################################
## ElementExclusiveTimeContainer
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return endSync; }
/**
*
*/
/**
*
*/
{ return pausedElements; }
//##################
//# Non-API methods
//##################
/**
*
*/
/**
*
*/
{
}
/**
*
*/
};
/*#########################################################################
## ElementTimeControl
#########################################################################*/
/**
*
*/
{
/**
*
*/
{
return true;
}
/**
*
*/
{
return true;
}
/**
*
*/
{
return true;
}
/**
*
*/
{
return true;
}
//##################
//# Non-API methods
//##################
/**
*
*/
ElementTimeControl() {}
/**
*
*/
{
}
/**
*
*/
virtual ~ElementTimeControl() {}
};
/*#########################################################################
## ElementTargetAttributes
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return attributeName; }
/**
*
*/
{ attributeName = val; }
typedef enum
{
ATTRIBUTE_TYPE_AUTO = 0,
ATTRIBUTE_TYPE_CSS = 1,
/**
*
*/
virtual unsigned short getAttributeType()
{ return attributeType; }
/**
*
*/
{ attributeType = val; }
//##################
//# Non-API methods
//##################
/**
*
*/
{
attributeName = "";
}
/**
*
*/
{
}
/**
*
*/
unsigned short attributeType;
};
/*#########################################################################
## ElementTest
#########################################################################*/
/**
*
*/
{
/**
*
*/
virtual long getSystemBitrate()
{ return systemBitrate; }
/**
*
*/
{ systemBitrate = val; }
/**
*
*/
virtual bool getSystemCaptions()
{ return systemCaptions; }
/**
*
*/
{ systemCaptions = val; }
/**
*
*/
{ return systemLanguage; }
/**
*
*/
{ systemLanguage = val; }
/**
*
*/
virtual bool getSystemRequired()
{ return systemRequired; }
/**
*
*/
virtual bool getSystemScreenSize()
{ return systemScreenSize; }
/**
*
*/
virtual bool getSystemScreenDepth()
{ return systemScreenDepth; }
/**
*
*/
{ return systemOverdubOrSubtitle; }
/**
*
*/
{ systemOverdubOrSubtitle = val; }
/**
*
*/
virtual bool getSystemAudioDesc()
{ return systemBitrate; }
/**
*
*/
{ systemAudioDesc = val; }
//##################
//# Non-API methods
//##################
/**
*
*/
{
systemBitrate = 0;
systemCaptions = false;
systemLanguage = "";
systemRequired = false;
systemScreenSize = false;
systemScreenDepth = false;
systemOverdubOrSubtitle = "";
systemAudioDesc = false;
}
/**
*
*/
{
}
/**
*
*/
virtual ~ElementTest() {}
long systemBitrate;
bool systemCaptions;
bool systemRequired;
bool systemScreenSize;
bool systemScreenDepth;
bool systemAudioDesc;
};
/*#########################################################################
## TimeEvent
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return view; }
/**
*
*/
{ return detail; }
/**
*
*/
long /*detailArg*/)
{
}
//##################
//# Non-API methods
//##################
/**
*
*/
{
detail = 0;
}
/**
*
*/
{
}
/**
*
*/
long detail;
};
/*#########################################################################
###########################################################################
## I N T E R F A C E T Y P E S
###########################################################################
#########################################################################*/
/*#########################################################################
## SMILDocument
#########################################################################*/
/**
*
*/
{
//##################
//# Non-API methods
//##################
/**
*
*/
virtual ~SMILDocument() {}
};
/*#########################################################################
## SMILElement
#########################################################################*/
/**
*
*/
{
/**
*
*/
/**
*
*/
//##################
//# Non-API methods
//##################
/**
*
*/
virtual ~SMILElement() {}
};
/*#########################################################################
## SMILLayoutElement
#########################################################################*/
/**
*
*/
{
/**
*
*/
/**
*
*/
virtual bool getResolved() =0;
//##################
//# Non-API methods
//##################
/**
*
*/
virtual ~SMILLayoutElement() {}
};
/*#########################################################################
## SMILTopLayoutElement
#########################################################################*/
/**
*
*/
{
//##################
//# Non-API methods
//##################
/**
*
*/
virtual ~SMILTopLayoutElement() {}
};
/*#########################################################################
## SMILRootLayoutElement
#########################################################################*/
/**
*
*/
{
//##################
//# Non-API methods
//##################
/**
*
*/
virtual ~SMILRootLayoutElement() {}
};
/*#########################################################################
## SMILRegionElement
#########################################################################*/
/**
*
*/
{
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
//##################
//# Non-API methods
//##################
/**
*
*/
virtual ~SMILRegionElement() {}
};
/*#########################################################################
## SMILMediaElement
#########################################################################*/
/**
*
*/
{
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
//##################
//# Non-API methods
//##################
/**
*
*/
virtual ~SMILMediaElement() {}
};
/*#########################################################################
## SMILRefElement
#########################################################################*/
/**
*
*/
{
//##################
//# Non-API methods
//##################
/**
*
*/
virtual ~SMILRefElement() {}
};
/*#########################################################################
## SMILAnimation
#########################################################################*/
/**
*
*/
{
typedef enum
{
ADDITIVE_REPLACE = 0,
ADDITIVE_SUM = 1
/**
*
*/
virtual unsigned short getAdditive() =0;
/**
*
*/
typedef enum
{
ACCUMULATE_NONE = 0,
ACCUMULATE_SUM = 1
/**
*
*/
virtual unsigned short getAccumulate() =0;
/**
*
*/
typedef enum
{
CALCMODE_DISCRETE = 0,
CALCMODE_LINEAR = 1,
CALCMODE_PACED = 2,
CALCMODE_SPLINE = 3
/**
*
*/
virtual unsigned short getCalcMode() =0;
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
//##################
//# Non-API methods
//##################
/**
*
*/
virtual ~SMILAnimation() {}
};
/*#########################################################################
## SMILAnimateElement
#########################################################################*/
/**
*
*/
{
//##################
//# Non-API methods
//##################
/**
*
*/
virtual ~SMILAnimateElement() {}
};
/*#########################################################################
## SMILSetElement
#########################################################################*/
/**
*
*/
{
/**
*
*/
/**
*
*/
//##################
//# Non-API methods
//##################
/**
*
*/
virtual ~SMILSetElement() {}
};
/*#########################################################################
## SMILAnimateMotionElement
#########################################################################*/
/**
*
*/
{
/**
*
*/
/**
*
*/
/**
*
*/
/**
*
*/
//##################
//# Non-API methods
//##################
/**
*
*/
};
/*#########################################################################
## SMILAnimateColorElement
#########################################################################*/
/**
*
*/
{
//##################
//# Non-API methods
//##################
/**
*
*/
};
/*#########################################################################
## SMILSwitchElement
#########################################################################*/
/**
*
*/
{
/**
*
*/
//##################
//# Non-API methods
//##################
/**
*
*/
virtual ~SMILSwitchElement() {}
};
} //namespace smil
} //namespace dom
} //namespace w3c
} //namespace org
#endif /* __SMIL_H__ */
/*#########################################################################
## E N D O F F I L E
#########################################################################*/