Tag Parser 12.4.0
C++ library for reading and writing MP4 (iTunes), ID3, Vorbis, Opus, FLAC and Matroska tags
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
abstractchapter.cpp
Go to the documentation of this file.
1#include "./abstractchapter.h"
3
4#include <sstream>
5
6using namespace std;
7using namespace CppUtilities;
8
9namespace TagParser {
10
13
23 : m_id(0)
24 , m_startTime(-1)
25 , m_endTime(-1)
26 , m_hidden(false)
27 , m_enabled(true)
28{
29}
30
37
42{
43 stringstream ss;
44 ss << "ID: " << id();
45 if (!names().empty()) {
46 ss << ", name: \"" << names().front() << "\"";
47 }
48 if (!startTime().isNegative()) {
49 ss << ", start: " << startTime().toString(TimeSpanOutputFormat::WithMeasures);
50 }
51 return ss.str();
52}
53
58{
59 m_id = 0;
60 m_names.clear();
62 m_tracks.clear();
63 m_hidden = false;
64 m_enabled = true;
65}
66
75{
76 clear();
77 internalParse(diag, progress);
78}
79
86{
87 progress.stopIfAborted();
88 clear();
89 internalParse(diag, progress);
90 for (size_t i = 0, count = nestedChapterCount(); i < count; ++i) {
91 nestedChapter(i)->parseNested(diag, progress);
92 }
93}
94
105} // namespace TagParser
The AbortableProgressFeedback class provides feedback about an ongoing operation via callbacks.
void stopIfAborted() const
Throws an OperationAbortedException if aborted.
void parseNested(Diagnostics &diag, AbortableProgressFeedback &progress)
Parses the chapter and nested chapters recursively.
virtual std::size_t nestedChapterCount() const
Returns the number of nested chapters.
const std::vector< LocaleAwareString > & names() const
Returns the chapter name.
std::vector< std::uint64_t > m_tracks
virtual void internalParse(Diagnostics &diag, AbortableProgressFeedback &progress)=0
Internally called to parse the chapter.
CppUtilities::TimeSpan m_endTime
CppUtilities::TimeSpan m_startTime
void parse(Diagnostics &diag, AbortableProgressFeedback &progress)
Parses the chapter.
virtual void clear()
Resets the object to its initial state.
std::string label() const
Returns a label for the chapter.
CppUtilities::TimeSpan startTime() const
Returns the start time if known; otherwise returns a negative time span.
virtual AbstractChapter * nestedChapter(std::size_t index)
Returns the nested chapter with the specified index.
std::uint64_t id() const
Returns the chapter ID if known; otherwise returns zero.
AbstractChapter()
Constructs a new chapter.
virtual ~AbstractChapter()
Destroys the chapter.
std::vector< LocaleAwareString > m_names
The Diagnostics class is a container for DiagMessage.
Contains all classes and functions of the TagInfo library.
Definition aaccodebook.h:10
The AbstractChapterPrivate struct contains private fields of the AbstractChapter class.