class kryScript; class kryEvent : public kryObject { public: kryEvent(); virtual ~kryEvent(); enum event_type { EVENT_BLANK = 1, EVENT_DIALOG = 2, EVENT_COMMENT_DIALOG = 4, EVENT_COMMENT_STRING = 8, EVENT_COMMENT_BLANK = 16, EVENT_KARAOKE_TEXT = 32, EVENT_KARAOKE_TIME = 64, }; unsigned long GetStart(); static unsigned long GetStartStatic(kryEvent *event); unsigned long GetEnd(); static unsigned long GetEndStatic(kryEvent *event); void SetText(char *text); static void SetTextStatic(kryEvent *event, char *text); char *GetText(); static char *GetTextStatic(kryEvent *event); void SetType(enum event_type type); static void SetTypeStatic(kryEvent *event, enum event_type type); void SetTypeSub(enum event_type type); static char *GetTypeString(enum event_type type); char *GetTypeString(); char *GetTypeSubString(); enum event_type GetType(); static enum event_type GetTypeStatic(kryEvent *event); enum event_type GetTypeSub(); void SetIndex(int index); int GetIndex(); /*** THESE FUNCTIONS ARE ONLY FOR SETTING THE INITIAL VALUES ***/ /*** SetTime() must be used in other cases (or collision detection will not work properly ***/ void SetStart(int time); static void SetStartStatic(kryEvent *event, int time); void SetEnd(int time); static void SetEndStatic(kryEvent *event, int time); void SetTime(unsigned long start, unsigned long end); friend GList *sub_ssa_build_event_list(char *buffer); //friend char *sub_ssa_write_to(kryScript *script, char *filename); virtual kryEvent *Copy(); virtual gboolean IsDetailed(); enum { SIGNAL_BEFORE_TIME_CHANGED, SIGNAL_AFTER_TIME_CHANGED, SIGNAL_BEFORE_LAYER_CHANGED, SIGNAL_AFTER_LAYER_CHANGED, SIGNAL_BEFORE_NAME_CHANGED, SIGNAL_AFTER_NAME_CHANGED, SIGNAL_COUNT }; protected: unsigned long m_start; unsigned long m_end; unsigned int m_index; enum event_type m_type; enum event_type m_type_sub; // only used for BLANK main type char *m_text; };