1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- #pragma once
- #include "foundation/types.h"
- namespace ID3v2
- {
- class Header
- {
- public:
- Header();
- Header(uint8_t version, uint8_t revision);
- Header(const void *data);
- Header(const Header *copy, uint32_t new_size);
- void Parse(const void *data);
- int Serialize(void *data);
- int SerializeAsHeader(void *data);
- int SerializeAsFooter(void *data);
- /* Does this seem like a valid ID3v2 header? */
- bool Valid() const;
- bool FooterValid() const;
- /* how much space the tag occupies on disk */
- uint32_t TagSize() const;
- bool HasExtendedHeader() const;
- uint8_t GetVersion() const;
- uint8_t GetRevision() const;
- bool Unsynchronised() const;
- bool HasFooter() const;
- void SetFooter(bool footer);
- enum
- {
- SIZE=10,
- };
- void ClearExtendedHeader();
- void ClearUnsynchronized();
- private:
- uint8_t marker[3];
- uint8_t version;
- uint8_t revision;
- uint8_t flags;
- uint32_t size;
- };
- }
|