enum karaoke_type { KARAOKE_HIGHLIGHT, KARAOKE_FILL_K, KARAOKE_FILL_KF, KARAOKE_OUTLINE }; class kryEventKaraokeTime; class kryEventKaraokeText : public kryEvent { public: kryEventKaraokeText(); ~kryEventKaraokeText(); gboolean GetIsSilence(); void SetIsSilence(gboolean val); gboolean GetIsLocked(); void SetIsLocked(gboolean val); gboolean GetIsTimed(); void SetIsTimed(gboolean val); static void MarkerStartValueChanged(KryMarker *marker, int old_val, kryEventKaraokeText *event); static void MarkerEndValueChanged(KryMarker *marker, int old_val, kryEventKaraokeText *event); KryMarker *GetMarkerStart(); KryMarker *GetMarkerEnd(); kryEventKaraokeTime *GetPartTime(); void SetPartTime(kryEventKaraokeTime *part); virtual kryEventKaraokeText *GetEventPrev(); void SetEventPrev(kryEventKaraokeText *part); virtual kryEventKaraokeText *GetEventNext(); void SetEventNext(kryEventKaraokeText *part); kryEvent *GetCommandPrev(); void SetCommandPrev(kryEvent *part); kryEvent *GetCommandNext(); void SetCommandNext(kryEvent *part); int GetDuration(); void SetDuration(int duration); char *GetText(); void SetText(char *text); virtual void CreateUI() = 0; enum karaoke_type GetKaraokeType(); void SetKaraokeType(enum karaoke_type type); protected: kryEventKaraokeTime *m_part_time; gboolean m_is_silence; gboolean m_is_locked; gboolean m_is_timed; KryMarker *m_marker_start; KryMarker *m_marker_end; kryEventKaraokeText *m_event_prev; kryEventKaraokeText *m_event_next; kryEvent *m_command_prev; kryEvent *m_command_next; int m_duration; enum karaoke_type m_type; };