aboutsummaryrefslogtreecommitdiff
path: root/libmp3lame/id3tag.h
diff options
context:
space:
mode:
Diffstat (limited to 'libmp3lame/id3tag.h')
-rw-r--r--libmp3lame/id3tag.h91
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