diff options
Diffstat (limited to 'libmp3lame/id3tag.h')
-rw-r--r-- | libmp3lame/id3tag.h | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/libmp3lame/id3tag.h b/libmp3lame/id3tag.h new file mode 100644 index 0000000..15dbbad --- /dev/null +++ b/libmp3lame/id3tag.h @@ -0,0 +1,91 @@ + +#ifndef LAME_ID3_H +#define LAME_ID3_H + + +#define CHANGED_FLAG (1U << 0) +#define ADD_V2_FLAG (1U << 1) +#define V1_ONLY_FLAG (1U << 2) +#define V2_ONLY_FLAG (1U << 3) +#define SPACE_V1_FLAG (1U << 4) +#define PAD_V2_FLAG (1U << 5) + +enum { + MIMETYPE_NONE = 0, + MIMETYPE_JPEG, + MIMETYPE_PNG, + MIMETYPE_GIF, +}; + +typedef struct FrameDataNode +{ + struct FrameDataNode* nxt; + int fid; /* Frame Identifier */ + char lng[4]; /* 3-character language descriptor */ + struct { + union { + char* l; /* ptr to Latin-1 chars */ + unsigned short* u; /* ptr to UCS-2 text */ + unsigned char* b; /* ptr to raw bytes */ + } ptr; + size_t dim; + int enc; /* 0:Latin-1, 1:UCS-2, 2:RAW */ + } dsc, txt; +} FrameDataNode; + + +typedef struct id3tag_spec { + /* private data members */ + unsigned int flags; + int year; + char *title; + char *artist; + char *album; + char *comment; + int track_id3v1; + int genre_id3v1; + unsigned char *albumart; + unsigned int albumart_size; + unsigned int padding_size; + int albumart_mimetype; + char **values; + unsigned int num_values; + FrameDataNode* v2_head, *v2_tail; +} id3tag_spec; + + +/* write tag into stream at current position */ +extern int id3tag_write_v2(lame_global_flags * gfp); +extern int id3tag_write_v1(lame_global_flags * gfp); +/* + * NOTE: A version 2 tag will NOT be added unless one of the text fields won't + * fit in a version 1 tag (e.g. the title string is longer than 30 characters), + * or the "id3tag_add_v2" or "id3tag_v2_only" functions are used. + */ +/* experimental */ +int CDECL id3tag_set_textinfo_latin1( + lame_global_flags* gfp, + char const* id, + char const* text ); + +/* experimental */ +int CDECL id3tag_set_textinfo_ucs2( + lame_global_flags* gfp, + char const* id, + unsigned short const* text ); + +/* experimental */ +int CDECL id3tag_set_comment_latin1( + lame_global_flags* gfp, + char const* lang, + char const* desc, + char const* text ); + +/* experimental */ +int CDECL id3tag_set_comment_ucs2( + lame_global_flags* gfp, + char const* lang, + unsigned short const* desc, + unsigned short const* text ); + +#endif |