26#include "id3dependencies/LinkedListLib/include/LinkedList.h"
27#include "id3dependencies/HashTableLib/include/hashTable.h"
28#include "id3dependencies/ByteStream/include/byteDefines.h"
31#define ID3V2_TAG_ID_SIZE 3
34#define ID3V2_TAG_ID_MAGIC_NUMBER_H 0x494433
37#define ID3V2_TAG_ID_MAGIC_NUMBER_F 0x334449
40#define ID3V2_TAG_VERSION_2 2
43#define ID3V2_TAG_VERSION_3 3
46#define ID3V2_TAG_VERSION_4 4
49#define ID3V2_ENCODING_ISO_8859_1 BYTE_ISO_8859_1
52#define ID3V2_ENCODING_UTF16LE BYTE_UTF16LE
55#define ID3V2_ENCODING_UTF16BE BYTE_UTF16BE
58#define ID3V2_ENCODING_UTF8 BYTE_UTF8
61#define ID3V2_ENCODING_ASCII BYTE_ASCII
64#define ID3V2_ENCODING_OTHER BYTE_OTHER_ENCODING
70#define ID3V2_FRAME_ID_MAX_SIZE 4
76#define ID3V2_FRAME_FLAG_SIZE 2
Definitions for ID3v1 tag structure, constants, and genre enumeration.
struct _Id3v2ContentEntry Id3v2ContentEntry
Parsed data field from an ID3v2 frame.
struct _Id3v2ContentContext Id3v2ContentContext
Parsing instructions for a single field within an ID3v2 frame.
struct _Id3v2Tag Id3v2Tag
Complete ID3v2 tag structure containing header and metadata frames.
#define ID3V2_FRAME_ID_MAX_SIZE
Maximum size in bytes for a frame ID field (4 bytes).
_Id3v2ContextType
Context types for parsing and writing ID3v2 frame content fields.
@ noEncoding_context
Raw character data with no encoding or null terminator.
@ iter_context
Iterator for repeating context sequences.
@ numeric_context
Integer values of 8, 16, 32, or 64 bits.
@ encodedString_context
Text string with encoding determined by prior context with the key 'encoding'.
@ latin1Encoding_context
Latin-1 (ISO-8859-1) null-terminated string.
@ adjustment_context
Dynamic upper bound adjustment based on prior context with key 'adjustment'.
@ binary_context
Binary data block with no terminator.
@ bit_context
Bit-level field (1-8 bits).
@ precision_context
Floating-point values (float or double).
@ unknown_context
Error/invalid context state (-1).
struct _Id3v2ExtendedTagHeader Id3v2ExtendedTagHeader
Optional ID3v2 extended header containing supplementary tag metadata.
enum _Id3v2ContextType Id3v2ContextType
Context types for parsing and writing ID3v2 frame content fields.
struct _Id3v2Frame Id3v2Frame
Complete ID3v2 frame structure with header, parsing contexts, and data.
struct _Id3v2FrameHeader Id3v2FrameHeader
ID3v2 frame header containing identification and processing flags.
struct _Id3v2TagHeader Id3v2TagHeader
ID3v2 tag header containing version and parsing information.
Parsing instructions for a single field within an ID3v2 frame.
size_t min
Minimum size in bytes (or bits for bit_context, or start index for iter_context).
size_t max
Maximum size in bytes (or bits for bit_context, or iteration count for iter_context).
Id3v2ContextType type
Context type determining parsing behavior (string, binary, numeric, etc.)
size_t key
Hashed identifier string for this field. Used to reference this context from other contexts (e....
Parsed data field from an ID3v2 frame.
size_t size
Size in bytes of the data pointed to by entry.
void * entry
Pointer to extracted field data (string, binary, numeric, etc.). Type determined by corresponding con...
Complete ID3v2 frame structure with header, parsing contexts, and data.
Id3v2FrameHeader * header
Frame header containing ID, flags, and processing parameters.
List * contexts
Linked list of Id3v2ContentContext parsing instructions defining frame field structure.
List * entries
Linked list of Id3v2ContentEntry parsed data fields corresponding to contexts.
Complete ID3v2 tag structure containing header and metadata frames.
List * frames
Linked list of Id3v2Frame structures containing all tag metadata.
Id3v2TagHeader * header
Tag header with version, flags, and optional extended header.