summaryrefslogtreecommitdiff
path: root/firmware/export/id3.h
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/export/id3.h')
-rw-r--r--firmware/export/id3.h76
1 files changed, 76 insertions, 0 deletions
diff --git a/firmware/export/id3.h b/firmware/export/id3.h
new file mode 100644
index 0000000..55ce002
--- /dev/null
+++ b/firmware/export/id3.h
@@ -0,0 +1,76 @@
+/***************************************************************************
+ * __________ __ ___.
+ * Open \______ \ ____ ____ | | _\_ |__ _______ ___
+ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+ * \/ \/ \/ \/ \/
+ * $Id$
+ *
+ * Copyright (C) 2002 by Daniel Stenberg
+ *
+ * All files in this archive are subject to the GNU General Public License.
+ * See the file COPYING in the source tree root for full license agreement.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ****************************************************************************/
+#ifndef ID3_H
+#define ID3_H
+
+#include "file.h"
+
+struct mp3entry {
+ char path[MAX_PATH];
+ char *title;
+ char *artist;
+ char *album;
+ int tracknum;
+ int version;
+ int layer;
+ int year;
+ unsigned char id3version;
+ unsigned char genre;
+ unsigned int bitrate;
+ unsigned int frequency;
+ unsigned int id3v2len;
+ unsigned int id3v1len;
+ unsigned int first_frame_offset; /* Byte offset to first real MP3 frame.
+ Used for skipping leading garbage to
+ avoid gaps between tracks. */
+ unsigned int filesize; /* in bytes */
+ unsigned int length; /* song length */
+ unsigned int elapsed; /* ms played */
+ long bpf; /* bytes per frame */
+ long tpf; /* time per frame */
+
+ /* Xing VBR fields */
+ bool vbr;
+ unsigned char vbrflags;
+ unsigned char toc[100];/* table of contents */
+
+ /* these following two fields are used for local buffering */
+ char id3v2buf[300];
+ char id3v1buf[3][32];
+
+ /* resume related */
+ int offset; /* bytes played */
+ int index; /* playlist index */
+};
+
+#define VBR_FRAMES_FLAG 0x01
+#define VBR_BYTES_FLAG 0x02
+#define VBR_TOC_FLAG 0x04
+
+enum {
+ ID3_VER_1_0 = 1,
+ ID3_VER_1_1,
+ ID3_VER_2_2,
+ ID3_VER_2_3,
+ ID3_VER_2_4
+};
+
+bool mp3info(struct mp3entry *entry, char *filename);
+
+#endif