diff options
Diffstat (limited to 'firmware/export/id3.h')
| -rw-r--r-- | firmware/export/id3.h | 76 |
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 |