Tag Parser  9.3.0
C++ library for reading and writing MP4 (iTunes), ID3, Vorbis, Opus, FLAC and Matroska tags
opusidentificationheader.h
Go to the documentation of this file.
1 #ifndef TAG_PARSER_OPUSIDENTIFICATIONHEADER_H
2 #define TAG_PARSER_OPUSIDENTIFICATIONHEADER_H
3 
4 #include "../global.h"
5 
6 #include <cstdint>
7 
8 namespace TagParser {
9 
10 class OggIterator;
11 
13 public:
14  constexpr OpusIdentificationHeader();
15 
16  void parseHeader(OggIterator &iterator);
17 
18  constexpr std::uint8_t version() const;
19  constexpr std::uint8_t channels() const;
20  constexpr std::uint16_t preSkip() const;
21  constexpr std::uint32_t sampleRate() const;
22  constexpr std::uint16_t outputGain() const;
23  constexpr std::uint8_t channelMap() const;
24 
25 private:
26  std::uint8_t m_version;
27  std::uint8_t m_channels;
28  std::uint16_t m_preSkip;
29  std::uint32_t m_sampleRate;
30  std::uint16_t m_outputGain;
31  std::uint8_t m_channelMap;
32 };
33 
38  : m_version(0)
39  , m_channels(0)
40  , m_preSkip(0)
41  , m_sampleRate(0)
42  , m_outputGain(0)
43  , m_channelMap(0)
44 {
45 }
46 
50 constexpr std::uint8_t OpusIdentificationHeader::version() const
51 {
52  return m_version;
53 }
54 
58 constexpr std::uint8_t OpusIdentificationHeader::channels() const
59 {
60  return m_channels;
61 }
62 
70 constexpr std::uint16_t OpusIdentificationHeader::preSkip() const
71 {
72  return m_preSkip;
73 }
74 
80 constexpr std::uint32_t OpusIdentificationHeader::sampleRate() const
81 {
82  return m_sampleRate;
83 }
84 
91 constexpr std::uint16_t OpusIdentificationHeader::outputGain() const
92 {
93  return m_outputGain;
94 }
95 
103 constexpr std::uint8_t OpusIdentificationHeader::channelMap() const
104 {
105  return m_channelMap;
106 }
107 
108 } // namespace TagParser
109 
110 #endif // TAG_PARSER_OPUSIDENTIFICATIONHEADER_H
TagParser::VorbisCommentIds::version
constexpr TAG_PARSER_EXPORT const char * version()
Definition: vorbiscommentids.h:34
TagParser::OpusIdentificationHeader::version
constexpr std::uint8_t version() const
Returns the version (which should be 1 currently).
Definition: opusidentificationheader.h:50
TagParser::OggIterator
The OggIterator class helps iterating through all segments of an OGG bitstream.
Definition: oggiterator.h:11
TagParser::OpusIdentificationHeader::outputGain
constexpr std::uint16_t outputGain() const
Returns the output gain.
Definition: opusidentificationheader.h:91
TagParser::OpusIdentificationHeader::OpusIdentificationHeader
constexpr OpusIdentificationHeader()
Constructs a new Opus identification header.
Definition: opusidentificationheader.h:37
TagParser
Contains all classes and functions of the TagInfo library.
Definition: aaccodebook.h:10
TagParser::OpusIdentificationHeader::channels
constexpr std::uint8_t channels() const
Returns the number of channels for the Opus stream.
Definition: opusidentificationheader.h:58
TagParser::OpusIdentificationHeader::sampleRate
constexpr std::uint32_t sampleRate() const
Returns the INPUT sample rate.
Definition: opusidentificationheader.h:80
TAG_PARSER_EXPORT
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.
TagParser::OpusIdentificationHeader::preSkip
constexpr std::uint16_t preSkip() const
Returns "pre-skip" value for the Opus stream.
Definition: opusidentificationheader.h:70
TagParser::OpusIdentificationHeader::channelMap
constexpr std::uint8_t channelMap() const
Returns the channel mapping family.
Definition: opusidentificationheader.h:103
TagParser::OpusIdentificationHeader
The OpusIdentificationHeader class is an Opus identification header parser.
Definition: opusidentificationheader.h:12