Tag Parser  6.5.0
C++ library for reading and writing MP4 (iTunes), ID3, Vorbis, Opus, FLAC and Matroska tags
id3v1tag.h
Go to the documentation of this file.
1 #ifndef ID3V1TAG_H
2 #define ID3V1TAG_H
3 
4 #include "../tag.h"
5 
6 namespace Media
7 {
8 
10 {
11 public:
12  Id3v1Tag();
13 
14  static constexpr TagType tagType = TagType::Id3v1Tag;
15  TagType type() const;
16  const char *typeName() const;
17  bool canEncodingBeUsed(TagTextEncoding encoding) const;
18  const TagValue &value(KnownField value) const;
19  bool setValue(KnownField field, const TagValue &value);
20  bool setValueConsideringTypeInfo(KnownField field, const TagValue &value, const std::string &typeInfo);
21  bool hasField(KnownField field) const;
22  void removeAllFields();
23  unsigned int fieldCount() const;
24  bool supportsField(KnownField field) const;
25  void ensureTextValuesAreProperlyEncoded();
26 
27  void parse(std::istream &sourceStream, bool autoSeek);
28  void parse(std::iostream &sourceStream);
29  void make(std::ostream &targetStream);
30 
31 private:
32  void readValue(TagValue &value, size_t maxLength, const char *buffer);
33  void writeValue(const TagValue &value, size_t length, char *buffer, std::ostream &targetStream);
34 
35  TagValue m_title;
36  TagValue m_artist;
37  TagValue m_album;
38  TagValue m_year;
39  TagValue m_comment;
40  TagValue m_trackPos;
41  TagValue m_genre;
42 };
43 
44 }
45 
46 #endif // ID3V1TAG_H
The TagValue class wraps values of different types.
Definition: tagvalue.h:64
KnownField
Specifies the field.
Definition: tag.h:42
TagTextEncoding
Specifies the text encoding.
Definition: tagvalue.h:22
The Tag class is used to store, read and write tag information.
Definition: tag.h:98
Implementation of Media::Tag for ID3v1 tags.
Definition: id3v1tag.h:9
TagType
Specifies the tag type.
Definition: tag.h:21
Contains all classes and functions of the TagInfo library.
Definition: exceptions.h:9
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.