id3dev 26.01
An ID3 metadata library
Loading...
Searching...
No Matches
id3v2Context.h
Go to the documentation of this file.
1
11
12#ifndef ID3V2_CONTEXT
13#define ID3V2_CONTEXT
14
15#ifdef __cplusplus
16extern "C"{
17#endif
18
19#include "id3v2Types.h"
20
21unsigned long id3v2djb2(const char *str);
22
23//mem
24
25Id3v2ContentContext *id3v2CreateContentContext(Id3v2ContextType type, size_t key, size_t max, size_t min);
26
28
29
30// List/Hash API required functions
31
32void id3v2DeleteContentContext(void *toBeDeleted);
33
34int id3v2CompareContentContext(const void *first, const void *second);
35
36char *id3v2PrintContentContext(const void *toBePrinted);
37
38void *id3v2CopyContentContext(const void *toBeCopied);
39
40
41void id3v2DeleteContentContextList(void *toBeDeleted);
42
43char *id3v2PrintContentContextList(const void *toBePrinted);
44
45void *id3v2CopyContentContextList(const void *toBeCopied);
46
47// context generators
48
50
52
54
56
57List *id3v2CreateAttachedPictureFrameContext(unsigned int version);
58
60
62
64
66
68
69List *id3v2CreateRegistrationFrameContext(void); //ENCR GRID
71
73
74List *id3v2CreateEqualizationFrameContext(unsigned int version);
75
77
79
81
83
85
87
89
91
93
95
96List *id3v2CreateRelativeVolumeAdjustmentFrameContext(unsigned int version);
97
99
101
103
105
107
109
111
113
115
116// pairings
117
118HashTable *id3v2CreateDefaultIdentifierContextPairings(unsigned int version);
119
120bool id3v2InsertIdentifierContextPair(HashTable *identifierContextPairs, char key[ID3V2_FRAME_ID_MAX_SIZE],
121 List *context);
122
123
124// convi
125
126uint8_t *id3v2ContextSerialize(Id3v2ContentContext *cc, size_t *outl);
127
129
130#ifdef __cplusplus
131} //extern c end
132#endif
133
134#endif
List * id3v2CreateGeneralEncapsulatedObjectFrameContext(void)
Creates a context definition list for general encapsulated object frames (GEOB).
List * id3v2CreateURLFrameContext(void)
Creates a context definition list for standard ID3v2 URL frames.
List * id3v2CreateAudioSeekPointIndexFrameContext(void)
Creates a context definition list for Audio Seek Point Index frames (ASPI).
List * id3v2CreateRecommendedBufferSizeFrameContext(void)
Creates a context definition list for recommended buffer size frames (RBUF).
bool id3v2InsertIdentifierContextPair(HashTable *identifierContextPairs, char key[ID3V2_FRAME_ID_MAX_SIZE], List *context)
Inserts a new frame identifier and context pairing into an existing frame mapping table.
List * id3v2CreateCommentFrameContext(void)
Creates a context definition list for comment frames (COMM).
void id3v2DeleteContentContext(void *toBeDeleted)
List/Hash API required functions.
List * id3v2CreateUniqueFileIdentifierFrameContext(void)
Creates a context definition list for unique file identifier frames (UFID).
List * id3v2CreateEncryptedMetaFrameContext(void)
Creates a context definition list for encrypted metadata frames (ENCR).
List * id3v2CreateSynchronisedLyricFrameContext(void)
Creates a context definition list for synchronised lyrics/text frames (SYLT).
unsigned long id3v2djb2(const char *str)
Computes a DJB2 hash value for a null-terminated string.
List * id3v2CreateOwnershipFrameContext(void)
Creates a context definition list for ownership frames (OWNE).
HashTable * id3v2CreateDefaultIdentifierContextPairings(unsigned int version)
Creates a default mapping of frame identifiers to their corresponding parse contexts for all ID3v2 ve...
List * id3v2CreateSignatureFrameContext(void)
Creates a context definition list for signature frames (SIGN).
void * id3v2CopyContentContextList(const void *toBeCopied)
Creates a deep copy of a content context list.
List * id3v2CreateMPEGLocationLookupTableFrameContext(void)
Creates a context definition list for MPEG location lookup table frames (MLLT).
List * id3v2CreateEqualizationFrameContext(unsigned int version)
Creates a context definition list for equalization frames (EQU/EQUA/EQU2).
List * id3v2CreateUserDefinedTextFrameContext(void)
Creates a context definition list for user-defined text frames (TXXX).
List * id3v2CreateGenericFrameContext(void)
Creates a context definition list for generic frames with unknown or unrecognized structure.
List * id3v2CreatePrivateFrameContext(void)
Creates a context definition list for private frames (PRIV).
void id3v2DestroyContentContext(Id3v2ContentContext **toDelete)
Frees all memory allocated for a content context and nullifies the pointer.
uint8_t * id3v2ContextSerialize(Id3v2ContentContext *cc, size_t *outl)
Creates a binary representation of a content context structure for serialization.
List * id3v2CreateRegistrationFrameContext(void)
Creates a context definition list for encryption method registration (ENCR) or group identification (...
List * id3v2CreateMusicCDIdentifierFrameContext(void)
Creates a context definition list for music CD identifier frames (MCDI).
List * id3v2CreateTextFrameContext(void)
Context list generation.
List * id3v2CreateSeekFrameContext(void)
Creates a context definition list for seek frames (SEEK).
List * id3v2CreateAttachedPictureFrameContext(unsigned int version)
Creates a context definition list for attached picture frames (APIC/PIC).
List * id3v2CreateLinkedInformationFrameContext(void)
Creates a context definition list for linked information frames (LINK).
List * id3v2CreateUserDefinedURLFrameContext(void)
Creates a context definition list for user-defined URL frames (WXXX).
char * id3v2PrintContentContext(const void *toBePrinted)
Generates a string representation of a content context for debugging.
List * id3v2CreateEventTimingCodesFrameContext(void)
Creates a context definition list for event timing codes frames (ETCO).
List * id3v2CreateReverbFrameContext(void)
Creates a context definition list for reverb frames (RVRB).
char * id3v2PrintContentContextList(const void *toBePrinted)
Generates a string representation of a content context list for debugging.
List * id3v2CreatePositionSynchronisationFrameContext(void)
Creates a context definition list for position synchronisation frames (POSS).
List * id3v2CreateAudioEncryptionFrameContext(void)
Creates a context definition list for Audio Encryption frames (AENC).
List * id3v2CreatePopularimeterFrameContext(void)
Creates a context definition list for popularimeter frames (POPM).
List * id3v2CreateInvolvedPeopleListFrameContext(void)
Creates a context definition list for involved people list frames (IPLS) in ID3v2....
void id3v2DeleteContentContextList(void *toBeDeleted)
Frees all memory allocated for a list of content contexts.
List * id3v2CreateSynchronisedTempoCodesFrameContext(void)
Creates a context definition list for synchronised tempo codes frames (SYTC).
List * id3v2CreateTermsOfUseFrameContext(void)
Creates a context definition list for terms of use frames (USER).
char * id3v2ContextToJSON(const Id3v2ContentContext *cc)
Converts a content context structure to its JSON representation.
List * id3v2CreateUnsynchronisedLyricFrameContext(void)
Creates a context definition list for unsynchronised lyrics/text frames (USLT).
List * id3v2CreatePlayCounterFrameContext(void)
Creates a context definition list for play counter frames (PCNT).
List * id3v2CreateRelativeVolumeAdjustmentFrameContext(unsigned int version)
Creates a context definition list for relative volume adjustment frames (RVA/RVAD/RVA2).
List * id3v2CreateCommercialFrameContext(void)
Creates a context definition list for commercial frames (COMR).
Id3v2ContentContext * id3v2CreateContentContext(Id3v2ContextType type, size_t key, size_t max, size_t min)
Creates a content context structure defining entry constraints and metadata.
int id3v2CompareContentContext(const void *first, const void *second)
Performs comparison of two content context structures.
void * id3v2CopyContentContext(const void *toBeCopied)
Creates a deep copy of a content context structure.
Definitions for ID3v2.x tag structure, constants, and genre enumeration.
struct _Id3v2ContentContext Id3v2ContentContext
Parsing instructions for a single field within an ID3v2 frame.
#define ID3V2_FRAME_ID_MAX_SIZE
Maximum size in bytes for a frame ID field (4 bytes).
Definition id3v2Types.h:70
enum _Id3v2ContextType Id3v2ContextType
Context types for parsing and writing ID3v2 frame content fields.