TagLib  2.3
eventtimingcodesframe.h
Go to the documentation of this file.
1/***************************************************************************
2 copyright : (C) 2014 by Urs Fleisch
3 email : ufleisch@users.sourceforge.net
4 ***************************************************************************/
5
6/***************************************************************************
7 * This library is free software; you can redistribute it and/or modify *
8 * it under the terms of the GNU Lesser General Public License version *
9 * 2.1 as published by the Free Software Foundation. *
10 * *
11 * This library is distributed in the hope that it will be useful, but *
12 * WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
14 * Lesser General Public License for more details. *
15 * *
16 * You should have received a copy of the GNU Lesser General Public *
17 * License along with this library; if not, write to the Free Software *
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
19 * 02110-1301 USA *
20 * *
21 * Alternatively, this file is available under the Mozilla Public *
22 * License Version 1.1. You may obtain a copy of the License at *
23 * http://www.mozilla.org/MPL/ *
24 ***************************************************************************/
25
26#ifndef TAGLIB_EVENTTIMINGCODESFRAME_H
27#define TAGLIB_EVENTTIMINGCODESFRAME_H
28
29#include "tlist.h"
30#include "id3v2frame.h"
31
32namespace TagLib {
33
34 namespace ID3v2 {
35
37
41 {
42 friend class FrameFactory;
43
44 public:
45
59
108
113 SynchedEvent(unsigned int ms, EventType t) : time(ms), type(t) {}
114 unsigned int time;
116 };
117
122
127
131 explicit EventTimingCodesFrame(const ByteVector &data);
132
137
140
144 String toString() const override;
145
150
155
162
169
170 protected:
171 // Reimplementations.
172
173 void parseFields(const ByteVector &data) override;
174 ByteVector renderFields() const override;
175
176 private:
180 EventTimingCodesFrame(const ByteVector &data, Header *h);
181
182 class EventTimingCodesFramePrivate;
184 std::unique_ptr<EventTimingCodesFramePrivate> d;
185 };
186
187 } // namespace ID3v2
188} // namespace TagLib
189#endif
A byte vector.
Definition tbytevector.h:46
EventTimingCodesFrame(const ByteVector &data)
EventTimingCodesFrame & operator=(const EventTimingCodesFrame &)=delete
TimestampFormat timestampFormat() const
EventTimingCodesFrame(const EventTimingCodesFrame &)=delete
SynchedEventList synchedEvents() const
void setTimestampFormat(TimestampFormat f)
void setSynchedEvents(const SynchedEventList &e)
friend class FrameFactory
Definition eventtimingcodesframe.h:42
TagLib::List< SynchedEvent > SynchedEventList
Definition eventtimingcodesframe.h:121
void parseFields(const ByteVector &data) override
EventType
Definition eventtimingcodesframe.h:65
@ NotPredefinedSynch5
Definition eventtimingcodesframe.h:94
@ ThemeEnd
Definition eventtimingcodesframe.h:86
@ NotPredefinedSynch4
Definition eventtimingcodesframe.h:93
@ NotPredefinedSynch1
Definition eventtimingcodesframe.h:90
@ NotPredefinedSynch3
Definition eventtimingcodesframe.h:92
@ RefrainStart
Definition eventtimingcodesframe.h:73
@ OutroEnd
Definition eventtimingcodesframe.h:71
@ NotPredefinedSynch9
Definition eventtimingcodesframe.h:98
@ Profanity
Definition eventtimingcodesframe.h:87
@ ThemeStart
Definition eventtimingcodesframe.h:75
@ MainPartStart
Definition eventtimingcodesframe.h:69
@ RefrainEnd
Definition eventtimingcodesframe.h:85
@ TimeChange
Definition eventtimingcodesframe.h:78
@ IntroStart
Definition eventtimingcodesframe.h:68
@ SustainedNoiseEnd
Definition eventtimingcodesframe.h:81
@ SustainedNoise
Definition eventtimingcodesframe.h:80
@ NotPredefinedSynch8
Definition eventtimingcodesframe.h:97
@ OutroStart
Definition eventtimingcodesframe.h:70
@ NotPredefinedSynchB
Definition eventtimingcodesframe.h:100
@ IntroEnd
Definition eventtimingcodesframe.h:82
@ NotPredefinedSynchF
Definition eventtimingcodesframe.h:104
@ AudioEnd
Definition eventtimingcodesframe.h:105
@ VerseEnd
Definition eventtimingcodesframe.h:84
@ NotPredefinedSynchE
Definition eventtimingcodesframe.h:103
@ ProfanityEnd
Definition eventtimingcodesframe.h:88
@ Padding
Definition eventtimingcodesframe.h:66
@ NotPredefinedSynch2
Definition eventtimingcodesframe.h:91
@ NotPredefinedSynchD
Definition eventtimingcodesframe.h:102
@ MomentaryUnwantedNoise
Definition eventtimingcodesframe.h:79
@ NotPredefinedSynchC
Definition eventtimingcodesframe.h:101
@ NotPredefinedSynch6
Definition eventtimingcodesframe.h:95
@ KeyChange
Definition eventtimingcodesframe.h:77
@ VariationStart
Definition eventtimingcodesframe.h:76
@ EndOfInitialSilence
Definition eventtimingcodesframe.h:67
@ NotPredefinedSynch7
Definition eventtimingcodesframe.h:96
@ MainPartEnd
Definition eventtimingcodesframe.h:83
@ VerseStart
Definition eventtimingcodesframe.h:72
@ AudioFileEnds
Definition eventtimingcodesframe.h:106
@ NotPredefinedSynchA
Definition eventtimingcodesframe.h:99
@ InterludeStart
Definition eventtimingcodesframe.h:74
@ NotPredefinedSynch0
Definition eventtimingcodesframe.h:89
String toString() const override
TimestampFormat
Definition eventtimingcodesframe.h:49
@ AbsoluteMpegFrames
Definition eventtimingcodesframe.h:54
@ Unknown
The timestamp is of unknown format.
Definition eventtimingcodesframe.h:51
@ AbsoluteMilliseconds
Definition eventtimingcodesframe.h:57
ByteVector renderFields() const override
ID3v2 frame header implementation.
Definition id3v2frame.h:293
Frame(const Frame &)=delete
A generic, implicitly shared list.
Definition tlist.h:54
A wide string class suitable for unicode.
Definition tstring.h:83
An ID3v2 implementation.
Definition flacfile.h:39
A namespace for all TagLib related classes and functions.
Definition apefile.h:41
SynchedEvent(unsigned int ms, EventType t)
Definition eventtimingcodesframe.h:113
unsigned int time
Definition eventtimingcodesframe.h:114
EventType type
Definition eventtimingcodesframe.h:115
#define TAGLIB_EXPORT
Definition taglib_export.h:40
#define TAGLIB_MSVC_SUPPRESS_WARNING_NEEDS_TO_HAVE_DLL_INTERFACE
Definition taglib_export.h:55