57 lines
No EOL
1.2 KiB
C++
57 lines
No EOL
1.2 KiB
C++
#ifndef MKVP_CUES_HPP
|
|
#define MKVP_CUES_HPP
|
|
|
|
#include "memory.hpp"
|
|
#include "cuepoint.hpp"
|
|
#include "ebmlelement.hpp"
|
|
#include <vector>
|
|
|
|
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<CuePoint*, mem::StlAllocator<CuePoint*> > CuePointVect_t;
|
|
CuePointVect_t m_cue_points;
|
|
long long m_pos;
|
|
};
|
|
|
|
} // namespace mkvparser
|
|
|
|
#endif // MKVP_CUES_HPP
|