/** * Created by jimsugg on 5/1/16. */ import { BaDmId, VideoMode, ZoneType, ContentItemType, MediaStateContainerType, EventType, CompareOperator, TransitionType } from './baDmDataTypes' import { DmMediaObject } from './baDmMediaObject'; export interface DmObject { // Properties readonly id : BaDmId; readonly name : string; } export interface DmHtmlSite extends DmObject { // Properties readonly localContent : boolean; readonly url : string; readonly queryString : string; } export interface DmContentItem extends DmObject { readonly type: ContentItemType; } export interface DmMediaContentItem extends DmContentItem { // Properties readonly media : DmMediaObject; readonly volume : number; } export interface DmHtmlContentItem extends DmContentItem { readonly siteId : BaDmId; readonly enableExternalData : boolean readonly enableMouseEvents : boolean; readonly displayCursor : boolean; readonly hwzOn : boolean; } export interface DmUserVariable extends DmObject { // Properties readonly name : string; readonly value : string; readonly defaultValue : string; } export interface DmConditionState extends DmObject { // Properties readonly userVariable : DmUserVariable; readonly compareOperator : CompareOperator; readonly compareValue : string; } export interface DmCondition extends DmConditionState { // Computed properties readonly isTrue : boolean; } export interface DmTransitionState extends DmObject { readonly eventId: BaDmId; readonly targetMediaStateId: BaDmId; readonly type: TransitionType; readonly condition?: DmConditionState; // TODO - conditional transition chains must be ordered (linked list?) } export interface DmTransition extends DmTransitionState { readonly isDefaultTarget: boolean; } export interface DmTimer { interval : number; } export type DmEventData = DmTimer | undefined; // To be extended with other event data types export interface DmEventState extends DmObject { readonly type : EventType; readonly mediaStateId: BaDmId; readonly data: DmEventData; } export interface DmEvent extends DmEventState { } export interface DmMediaStateContainer { id: BaDmId, type: MediaStateContainerType } export interface DmMediaStateState extends DmObject { // Properties readonly container: DmMediaStateContainer; readonly contentItem : DmContentItem; } export interface DmMediaState extends DmMediaStateState { // Methods } export interface DmPlaylist extends DmObject { } export interface DmZoneState extends DmObject { readonly type: ZoneType; readonly nonInteractive: boolean; readonly initialMediaStateId: BaDmId; } export interface DmZone extends DmZoneState { // Computed properties readonly containerObject: DmMediaStateContainer; } export interface DmSignState { // Properties readonly id: BaDmId, readonly name : string; readonly videoMode : VideoMode; } export interface DmSign extends DmSignState { // Methods } export interface DmExportImportStreamer extends DmObject { // Methods Write(object : DmObject) : string; //need a way to handle error Read(input : string) : DmObject; //need a way to handle error } export interface DmExportImport extends DmObject { // Properties streamer : DmExportImportStreamer // Methods Write(object : DmObject) : string; Read(input : string) : DmObject; }