class krySSAKaraokeParser : public krySSACommandParser { public: krySSAKaraokeParser(kryString str, kryList *parts, kryEventKaraokeText **part_start, kryEventKaraokeText **part_end); void AddUnparsedString(int offset); void OnCommandGroupStart(kryString str, int offset); void OnCommandGroupEnd(kryString str, int offset); void OnCommand(kryString &str, int offset, int length, kryArray ¶ms, kryArray ¶m_offsets); void OnString(kryString &str, int offset); private: int m_duration; kryEventKaraokeText *m_prev_part; kryEventKaraokeTime *m_part_time; kryEvent *m_part_command; kryEventKaraokeText **m_part_start; kryEventKaraokeText **m_part_end; kryList *m_parts; kryString *m_str; int m_prevpos; gboolean m_is_command; enum karaoke_type m_karaoke_type; int m_index; };