#ifndef MKVP_CUES_HPP #define MKVP_CUES_HPP #include "memory.hpp" #include "cuepoint.hpp" #include "ebmlelement.hpp" #include namespace mkvparser { class Track; class BlockEntry; class Cues : public mem::AllocBase { friend class Segment; Cues(Segment*, const EBMLElement&); ~Cues(); Cues(const Cues&); Cues& operator=(const Cues&); public: bool Find( //lower bound of time_ns long long time_ns, const Track*, const CuePoint*&, const CuePoint::TrackPosition*&) const; const CuePoint* GetFirst() const; const CuePoint* GetLast() const; const CuePoint* GetNext(const CuePoint*) const; const BlockEntry* GetBlock( const CuePoint*, const CuePoint::TrackPosition*) const; bool LoadCuePoint(); long GetCount() const; bool DoneParsing() const; const EBMLElement& GetEBMLElement() const { return m_elemInfo; } private: Segment* const m_pSegment; EBMLElement m_elemInfo; typedef std::vector > CuePointVect_t; CuePointVect_t m_cue_points; long long m_pos; }; } // namespace mkvparser #endif // MKVP_CUES_HPP