id3dev 26.01
An ID3 metadata library
Loading...
Searching...
No Matches
id3v2TagIdentity.h
Go to the documentation of this file.
1
11
12#ifndef ID3V2_TAG_IDENTITY
13#define ID3V2_TAG_IDENTITY
14
15#ifdef __cplusplus
16extern "C"{
17#endif
18
19
20#include "id3v2Types.h"
21
22
23/*
24 Tag Header
25*/
26
27//mem functions
28
29Id3v2TagHeader *id3v2CreateTagHeader(uint8_t majorVersion, uint8_t minorVersion, uint8_t flags,
30 Id3v2ExtendedTagHeader *extendedHeader);
31
33
34//flag functions
35
37
39
41
43
44bool id3v2WriteFooterIndicator(Id3v2TagHeader *header, bool bit);
45
47
49
51
53
55
56/*
57 Extended Tag Header
58*/
59
60//mem functions
61
62Id3v2ExtendedTagHeader *id3v2CreateExtendedTagHeader(uint32_t padding, uint32_t crc, bool update, bool tagRestrictions,
63 uint8_t restrictions);
64
66
67//tag restriction functions
68
69bool id3v2WriteTagSizeRestriction(Id3v2TagHeader *header, uint8_t bits);
70
72
73bool id3v2WriteTextFieldsSizeRestriction(Id3v2TagHeader *header, uint8_t bits);
74
76
77bool id3v2WriteImageSizeRestriction(Id3v2TagHeader *header, uint8_t bits);
78
80
82
84
86
88
90
91/*
92 Tag
93*/
94
95//mem
96
97Id3v2Tag *id3v2CreateTag(Id3v2TagHeader *header, List *frames);
98
99void id3v2DestroyTag(Id3v2Tag **toDelete);
100
101
102/*
103 output
104*/
105
106uint8_t *id3v2ExtendedTagHeaderSerialize(Id3v2ExtendedTagHeader *ext, uint8_t version, size_t *outl);
107
108char *id3v2ExtendedTagHeaderToJSON(const Id3v2ExtendedTagHeader *ext, uint8_t version);
109
110uint8_t *id3v2TagHeaderSerialize(Id3v2TagHeader *header, uint32_t uintSize, size_t *outl);
111
112char *id3v2TagHeaderToJSON(const Id3v2TagHeader *header);
113
114
115#ifdef __cplusplus
116} //extern c end
117#endif
118
119#endif
char * id3v2TagHeaderToJSON(const Id3v2TagHeader *header)
Converts an ID3v2 tag header structure to JSON string representation.
Id3v2Tag * id3v2CreateTag(Id3v2TagHeader *header, List *frames)
Creates and allocates an ID3v2 tag structure.
int id3v2ReadImageSizeRestriction(Id3v2TagHeader *header)
Reads the image size restriction from an ID3v2.4 extended header.
void id3v2DestroyTag(Id3v2Tag **toDelete)
Frees an ID3v2 tag and all associated resources, nullifying the pointer.
bool id3v2WriteUnsynchronisationIndicator(Id3v2TagHeader *header, bool bit)
Sets or clears the unsynchronisation flag in the tag header.
int id3v2ReadFooterIndicator(Id3v2TagHeader *header)
Reads the footer presence flag from an ID3v2.4 tag header.
int id3v2ReadTextFieldsSizeRestriction(Id3v2TagHeader *header)
Reads the text fields size restriction from an ID3v2.4 extended header.
Id3v2ExtendedTagHeader * id3v2CreateExtendedTagHeader(uint32_t padding, uint32_t crc, bool update, bool tagRestrictions, uint8_t restrictions)
Creates and allocates an ID3v2 extended tag header structure.
int id3v2ReadImageEncodingRestriction(Id3v2TagHeader *header)
Reads the image encoding restriction from an ID3v2.4 extended header.
int id3v2ReadUnsynchronisationIndicator(Id3v2TagHeader *header)
Reads the unsynchronisation flag from a tag header.
bool id3v2WriteExtendedHeaderIndicator(Id3v2TagHeader *header, bool bit)
Sets or clears the extended header flag in ID3v2.3/ID3v2.4 tag headers.
int id3v2ReadExperimentalIndicator(Id3v2TagHeader *header)
Reads the experimental indicator flag from an ID3v2.3/ID3v2.4 tag header.
void id3v2DestroyTagHeader(Id3v2TagHeader **toDelete)
Frees an ID3v2 tag header and nullifies the pointer.
uint8_t * id3v2ExtendedTagHeaderSerialize(Id3v2ExtendedTagHeader *ext, uint8_t version, size_t *outl)
Serializes an ID3v2 extended tag header into a byte stream.
bool id3v2WriteFooterIndicator(Id3v2TagHeader *header, bool bit)
Sets or clears the footer presence flag in ID3v2.4 tag headers.
bool id3v2WriteCompressionIndicator(Id3v2TagHeader *header, bool bit)
Sets or clears the compression flag in ID3v2.2 tag headers.
bool id3v2WriteTextEncodingRestriction(Id3v2TagHeader *header, bool bit)
Sets the text encoding restriction in an ID3v2.4 extended header.
void id3v2DestroyExtendedTagHeader(Id3v2ExtendedTagHeader **toDelete)
Frees an ID3v2 extended tag header and nullifies the pointer.
Id3v2TagHeader * id3v2CreateTagHeader(uint8_t majorVersion, uint8_t minorVersion, uint8_t flags, Id3v2ExtendedTagHeader *extendedHeader)
Creates and allocates an ID3v2 tag header structure.
bool id3v2WriteExperimentalIndicator(Id3v2TagHeader *header, bool bit)
Sets or clears the experimental indicator flag in ID3v2.3/ID3v2.4 tag headers.
int id3v2ReadExtendedHeaderIndicator(Id3v2TagHeader *header)
Reads the extended header flag from an ID3v2.3/ID3v2.4 tag header.
bool id3v2WriteImageSizeRestriction(Id3v2TagHeader *header, uint8_t bits)
Sets the image size restriction in an ID3v2.4 extended header.
int id3v2ReadTextEncodingRestriction(Id3v2TagHeader *header)
Reads the text encoding restriction from an ID3v2.4 extended header.
uint8_t * id3v2TagHeaderSerialize(Id3v2TagHeader *header, uint32_t uintSize, size_t *outl)
Serializes an ID3v2 tag header into a byte stream.
int id3v2ReadCompressionIndicator(Id3v2TagHeader *header)
Reads the compression flag from an ID3v2.2 tag header.
char * id3v2ExtendedTagHeaderToJSON(const Id3v2ExtendedTagHeader *ext, uint8_t version)
Converts an ID3v2 extended tag header structure to JSON string representation.
bool id3v2WriteImageEncodingRestriction(Id3v2TagHeader *header, bool bit)
Sets the image encoding restriction in an ID3v2.4 extended header.
bool id3v2WriteTagSizeRestriction(Id3v2TagHeader *header, uint8_t bits)
Sets the tag size restriction in an ID3v2.4 extended header.
int id3v2ReadTagSizeRestriction(Id3v2TagHeader *header)
Reads the tag size restriction from an ID3v2.4 extended header.
bool id3v2ClearTagRestrictions(Id3v2TagHeader *header)
Clears all tag restrictions from an ID3v2.4 extended header.
bool id3v2WriteTextFieldsSizeRestriction(Id3v2TagHeader *header, uint8_t bits)
Sets the text encoding restriction in an ID3v2.4 extended header.
Definitions for ID3v2.x tag structure, constants, and genre enumeration.
struct _Id3v2Tag Id3v2Tag
Complete ID3v2 tag structure containing header and metadata frames.
struct _Id3v2ExtendedTagHeader Id3v2ExtendedTagHeader
Optional ID3v2 extended header containing supplementary tag metadata.
struct _Id3v2TagHeader Id3v2TagHeader
ID3v2 tag header containing version and parsing information.