123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- #pragma once
- #ifdef __ANDROID__
- #include "android/nsid3v2.h"
- #elif defined(_WIN32)
- #include "windows/nsid3v2.h"
- #elif defined(__linux__)
- #include "linux/nsid3v2.h"
- #elif defined(__APPLE__)
- #include "osx/nsid3v2.h"
- #endif
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- NSID3V2_EXPORT int NSID3v2_Header_Valid(const void *header_data);
- NSID3V2_EXPORT int NSID3v2_Header_FooterValid(const void *footer_data);
- NSID3V2_EXPORT int NSID3v2_Header_Create(nsid3v2_header_t *header, const void *header_data, size_t header_len);
- NSID3V2_EXPORT int NSID3v2_Header_New(nsid3v2_header_t *h, uint8_t version, uint8_t revision);
-
- NSID3V2_EXPORT int NSID3v2_Header_FooterCreate(nsid3v2_header_t *footer, const void *footer_data, size_t footer_len);
- NSID3V2_EXPORT int NSID3v2_Header_TagSize(const nsid3v2_header_t header, uint32_t *tag_size);
- NSID3V2_EXPORT int NSID3v2_Header_HasFooter(const nsid3v2_header_t header);
- NSID3V2_EXPORT int NSID3v2_Header_Destroy(nsid3v2_header_t header);
-
-
-
- NSID3V2_EXPORT int NSID3v2_Tag_Create(nsid3v2_tag_t *tag, const nsid3v2_header_t header, const void *bytes, size_t bytes_len);
- NSID3V2_EXPORT int NSID3v2_Tag_Destroy(nsid3v2_tag_t tag);
- NSID3V2_EXPORT int NSID3v2_Tag_GetFrame(const nsid3v2_tag_t tag, int frame_enum, nsid3v2_frame_t *frame);
- NSID3V2_EXPORT int NSID3v2_Tag_GetNextFrame(const nsid3v2_tag_t tag, const nsid3v2_frame_t start_frame, nsid3v2_frame_t *frame);
- NSID3V2_EXPORT int NSID3v2_Tag_RemoveFrame(nsid3v2_tag_t tag, nsid3v2_frame_t frame);
- NSID3V2_EXPORT int NSID3v2_Tag_CreateFrame(nsid3v2_tag_t tag, int frame_enum, int flags, nsid3v2_frame_t *frame);
- NSID3V2_EXPORT int NSID3v2_Tag_AddFrame(nsid3v2_tag_t tag, nsid3v2_frame_t frame);
- NSID3V2_EXPORT int NSID3v2_Tag_EnumerateFrame(const nsid3v2_tag_t tag, nsid3v2_frame_t position, nsid3v2_frame_t *frame);
- NSID3V2_EXPORT int NSID3v2_Tag_GetInformation(nsid3v2_tag_t tag, uint8_t *version, uint8_t *revision, int *flags);
-
- enum
- {
- NSID3V2_TEXT_SYSTEM=1,
- };
- NSID3V2_EXPORT int NSID3v2_Tag_TXXX_Find(const nsid3v2_tag_t tag, const char *description, nsid3v2_frame_t *out_frame, int text_flags);
- NSID3V2_EXPORT int NSID3v2_Tag_ID_Find(const nsid3v2_tag_t tag, const char *owner, nsid3v2_frame_t *out_frame, int text_flags);
- NSID3V2_EXPORT int NSID3v2_Tag_Comments_Find(const nsid3v2_tag_t tag, const char *description, nsid3v2_frame_t *out_frame, int text_flags);
- NSID3V2_EXPORT int NSID3v2_Tag_Text_Get(const nsid3v2_tag_t tag, int frame_enum, nx_string_t *value, int text_flags);
- NSID3V2_EXPORT int NSID3v2_Tag_TXXX_Get(const nsid3v2_tag_t tag, const char *description, nx_string_t *value, int text_flags);
- NSID3V2_EXPORT int NSID3v2_Tag_Popularimeter_GetRatingPlaycount(const nsid3v2_tag_t tag, const char *email, uint8_t *rating, uint64_t *playcount);
- NSID3V2_EXPORT int NSID3v2_Tag_Comments_Get(const nsid3v2_tag_t tag, const char *description, char language[3], nx_string_t *value, int text_flags);
- NSID3V2_EXPORT int NSID3v2_Tag_WXXX_Get(const nsid3v2_tag_t tag, const char *description, nx_string_t *value, int text_flags);
- NSID3V2_EXPORT int NSID3v2_Tag_ID_Get(const nsid3v2_tag_t tag, const char *owner, const void **id_data, size_t *length, int text_flags);
- NSID3V2_EXPORT int NSID3v2_Frame_GetInformation(nsid3v2_frame_t frame, int *type, int *flags);
- NSID3V2_EXPORT int NSID3v2_Frame_Text_Get(const nsid3v2_frame_t frame, nx_string_t *value, int text_flags);
- NSID3V2_EXPORT int NSID3v2_Frame_UserText_Get(const nsid3v2_frame_t frame, nx_string_t *description, nx_string_t *value, int text_flags);
- NSID3V2_EXPORT int NSID3v2_Frame_Private_Get(const nsid3v2_frame_t frame, nx_string_t *description, const void **data, size_t *length);
- NSID3V2_EXPORT int NSID3v2_Frame_Object_Get(const nsid3v2_frame_t frame, nx_string_t *mime, nx_string_t *filename, nx_string_t *description, const void **out_data, size_t *length, int text_flags);
- NSID3V2_EXPORT int NSID3v2_Frame_Popularity_Get(nsid3v2_frame_t frame, nx_string_t *email, uint8_t *rating, uint64_t *playcount, int text_flags);
- NSID3V2_EXPORT int NSID3v2_Frame_Picture_Get(const nsid3v2_frame_t frame, nx_string_t *mime, uint8_t *picture_type, nx_string_t *description, const void **picture_data, size_t *length, int text_flags);
- NSID3V2_EXPORT int NSID3v2_Frame_ID_Get(nsid3v2_frame_t frame, nx_string_t *owner, const void **id_data, size_t *length, int text_flags);
- NSID3V2_EXPORT int NSID3v2_Frame_Comments_Get(const nsid3v2_frame_t frame, nx_string_t *description, char language[3], nx_string_t *value, int text_flags);
- NSID3V2_EXPORT int NSID3v2_Frame_URL_Get(const nsid3v2_frame_t frame, nx_string_t *value, int text_flags);
- NSID3V2_EXPORT int NSID3v2_Frame_UserURL_Get(const nsid3v2_frame_t frame, nx_string_t *description, nx_string_t *value, int text_flags);
- NSID3V2_EXPORT int NSID3v2_Frame_Binary_Get(nsid3v2_frame_t frame, const void **binary, size_t *length);
- NSID3V2_EXPORT int NSID3v2_Frame_GetIdentifier(nsid3v2_frame_t frame, const char **identifier);
- enum
- {
- SerializedSize_Padding = (0x1 << 0),
- SerializedSize_AbsoluteSize = (0x2 << 0),
- SerializedSize_BlockSize = (0x3 << 0),
- SerializedSize_PaddingMask = (0x3 << 0),
-
- Serialize_Unsynchronize = (0x1 << 2),
- Serialize_NoUnsynchronize = (0x2 << 2),
- Serialize_UnsynchronizeMask = (0x3 << 2),
- Serialize_NoCompression = (0x1 << 4),
- Serialize_CompressionMask = (0x1 << 4),
- };
- NSID3V2_EXPORT int NSID3v2_Tag_SerializedSize(nsid3v2_tag_t tag, uint32_t *length, uint32_t padding_size, int flags);
- NSID3V2_EXPORT int NSID3v2_Tag_Serialize(nsid3v2_tag_t tag, void *data, uint32_t len, int flags);
- NSID3V2_EXPORT int NSID3v2_Tag_Text_Set(nsid3v2_tag_t tag, int frame_enum, nx_string_t value, int text_flags);
- NSID3V2_EXPORT int NSID3v2_Tag_TXXX_Set(nsid3v2_tag_t tag, const char *description, nx_string_t value, int text_flags);
- NSID3V2_EXPORT int NSID3v2_Tag_Comments_Set(nsid3v2_tag_t tag, const char *description, const char language[3], nx_string_t value, int text_flags);
- NSID3V2_EXPORT int NSID3v2_Tag_ID_Set(nsid3v2_tag_t tag, const char *owner, const void *id_data, size_t length, int text_flags);
- NSID3V2_EXPORT int NSID3v2_Frame_Text_Set(nsid3v2_frame_t frame, nx_string_t value, int text_flags);
- NSID3V2_EXPORT int NSID3v2_Frame_UserText_Set(nsid3v2_frame_t frame, const char *description, nx_string_t value, int text_flags);
- NSID3V2_EXPORT int NSID3v2_Frame_Comments_Set(nsid3v2_frame_t frame, const char *description, const char language[3], nx_string_t value, int text_flags);
- NSID3V2_EXPORT int NSID3v2_Frame_ID_Set(nsid3v2_frame_t frame, const char *owner, const void *id_data, size_t length, int text_flags);
- NSID3V2_EXPORT int NSID3v2_Frame_Picture_Set(nsid3v2_frame_t frame, nx_string_t mime, uint8_t picture_type, nx_string_t description, const void *picture_data, size_t length, int text_flags);
- enum
- {
- NSID3V2_FRAME_PICTURE,
- NSID3V2_FRAME_COMMENTS,
- NSID3V2_FRAME_POPULARIMETER,
- NSID3V2_FRAME_ALBUM,
- NSID3V2_FRAME_BPM,
- NSID3V2_FRAME_COMPOSER,
- NSID3V2_FRAME_CONTENTTYPE,
- NSID3V2_FRAME_COPYRIGHT,
- NSID3V2_FRAME_DATE,
- NSID3V2_FRAME_PLAYLISTDELAY,
- NSID3V2_FRAME_RECORDINGTIME,
- NSID3V2_FRAME_ENCODEDBY,
- NSID3V2_FRAME_LYRICIST,
- NSID3V2_FRAME_FILETYPE,
- NSID3V2_FRAME_TIME,
- NSID3V2_FRAME_CONTENTGROUP,
- NSID3V2_FRAME_TITLE,
- NSID3V2_FRAME_SUBTITLE,
- NSID3V2_FRAME_KEY,
- NSID3V2_FRAME_LANGUAGE,
- NSID3V2_FRAME_LENGTH,
- NSID3V2_FRAME_MEDIATYPE,
- NSID3V2_FRAME_MOOD,
- NSID3V2_FRAME_ORIGINALALBUM,
- NSID3V2_FRAME_ORIGINALARTIST,
- NSID3V2_FRAME_LEADARTIST,
- NSID3V2_FRAME_BAND,
- NSID3V2_FRAME_CONDUCTOR,
- NSID3V2_FRAME_REMIXER,
- NSID3V2_FRAME_PARTOFSET,
- NSID3V2_FRAME_PUBLISHER,
- NSID3V2_FRAME_TRACK,
- NSID3V2_FRAME_RECORDINGDATES,
- NSID3V2_FRAME_ISRC,
- NSID3V2_FRAME_ENCODERSETTINGS,
- NSID3V2_FRAME_YEAR,
- NSID3V2_FRAME_USER_TEXT,
- NSID3V2_FRAME_ID,
- };
-
- enum
- {
- NSID3V2_FRAMETYPE_UNKNOWN,
- NSID3V2_FRAMETYPE_TEXT,
- NSID3V2_FRAMETYPE_USERTEXT,
- NSID3V2_FRAMETYPE_COMMENTS,
- NSID3V2_FRAMETYPE_URL,
- NSID3V2_FRAMETYPE_USERURL,
- NSID3V2_FRAMETYPE_PRIVATE,
- NSID3V2_FRAMETYPE_OBJECT,
- NSID3V2_FRAMETYPE_POPULARITY,
- NSID3V2_FRAMETYPE_PICTURE,
- NSID3V2_FRAMETYPE_ID,
- };
-
- enum
- {
- NSID3V2_TAGFLAG_EXTENDED_HEADER = 1<<1,
- NSID3V2_TAGFLAG_UNSYNCHRONIZED = 1<<2,
- NSID3V2_TAGFLAG_HASFOOTER = 1<<3,
- NSID3V2_FRAMEFLAG_TAG_ALTER_PRESERVATION = 1<<1,
- NSID3V2_FRAMEFLAG_FILE_ALTER_PRESERVATION = 1<<2,
- NSID3V2_FRAMEFLAG_ENCRYPTED = 1<<3,
- NSID3V2_FRAMEFLAG_COMPRESSED = 1<<4,
- NSID3V2_FRAMEFLAG_GROUPED = 1<<5,
- NSID3V2_FRAMEFLAG_READONLY =1<<6,
- NSID3V2_FRAMEFLAG_UNSYNCHRONIZED =1<<7,
- NSID3V2_FRAMEFLAG_DATALENGTHINDICATED =1<<8,
- };
- #ifdef __cplusplus
- }
- #endif
|