2003-11-03 15:34:52 -05:00
|
|
|
/*
|
|
|
|
* $Id$
|
|
|
|
* Header file for mp3 scanner and monitor
|
|
|
|
*
|
|
|
|
* Copyright (C) 2003 Ron Pedde (ron@pedde.com)
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
|
|
* (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _MP3_SCANNER_H_
|
|
|
|
#define _MP3_SCANNER_H_
|
|
|
|
|
2004-10-15 16:10:39 -04:00
|
|
|
#include <sys/types.h>
|
|
|
|
|
2003-11-03 15:34:52 -05:00
|
|
|
typedef struct tag_mp3file {
|
|
|
|
char *path;
|
2005-06-02 00:17:54 -04:00
|
|
|
int index;
|
2003-11-03 15:34:52 -05:00
|
|
|
char *fname;
|
2004-03-16 02:54:37 -05:00
|
|
|
char *title; /* TIT2 */
|
|
|
|
char *artist; /* TPE1 */
|
|
|
|
char *album; /* TALB */
|
|
|
|
char *genre; /* TCON */
|
|
|
|
char *comment; /* COMM */
|
2004-02-22 22:27:49 -05:00
|
|
|
char *type;
|
2004-03-16 02:54:37 -05:00
|
|
|
char *composer; /* TCOM */
|
|
|
|
char *orchestra; /* TPE2 */
|
|
|
|
char *conductor; /* TPE3 */
|
|
|
|
char *grouping; /* TIT1 */
|
2004-11-04 00:04:46 -05:00
|
|
|
char *url; /* daap.songdataurl (asul) */
|
2003-11-11 21:59:45 -05:00
|
|
|
|
|
|
|
int bitrate;
|
|
|
|
int samplerate;
|
|
|
|
int song_length;
|
|
|
|
int file_size;
|
2004-03-16 02:54:37 -05:00
|
|
|
int year; /* TDRC */
|
2006-04-12 22:19:56 -04:00
|
|
|
|
2004-03-16 02:54:37 -05:00
|
|
|
int track; /* TRCK */
|
2004-01-27 00:30:06 -05:00
|
|
|
int total_tracks;
|
2003-11-11 21:59:45 -05:00
|
|
|
|
2004-03-16 02:54:37 -05:00
|
|
|
int disc; /* TPOS */
|
2004-02-18 15:34:08 -05:00
|
|
|
int total_discs;
|
|
|
|
|
2004-03-03 01:50:09 -05:00
|
|
|
int time_added;
|
|
|
|
int time_modified;
|
|
|
|
int time_played;
|
2005-03-11 01:39:40 -05:00
|
|
|
int play_count;
|
|
|
|
int rating;
|
2004-11-20 14:22:40 -05:00
|
|
|
int db_timestamp;
|
2005-03-11 01:39:40 -05:00
|
|
|
int disabled;
|
2004-09-07 23:48:09 -04:00
|
|
|
int bpm; /* TBPM */
|
2003-12-09 00:48:06 -05:00
|
|
|
|
2003-11-09 22:58:39 -05:00
|
|
|
int got_id3;
|
2005-03-11 01:39:40 -05:00
|
|
|
unsigned int id;
|
|
|
|
|
2006-02-26 03:46:24 -05:00
|
|
|
char *description; /* long file type */
|
2005-05-29 23:41:31 -04:00
|
|
|
char *codectype; /* song.codectype */
|
2006-02-26 03:46:24 -05:00
|
|
|
int item_kind; /* song or movie */
|
2004-11-04 00:04:46 -05:00
|
|
|
int data_kind; /* dmap.datakind (asdk) */
|
2005-03-19 05:02:19 -05:00
|
|
|
int force_update;
|
|
|
|
int sample_count;
|
2004-11-20 14:22:40 -05:00
|
|
|
char compilation;
|
2006-04-12 22:19:56 -04:00
|
|
|
|
2006-01-12 03:10:48 -05:00
|
|
|
/* iTunes 5+ */
|
|
|
|
int contentrating;
|
2006-04-12 22:19:56 -04:00
|
|
|
|
2006-01-12 03:10:48 -05:00
|
|
|
/* iTunes 6.0.2 */
|
|
|
|
int has_video;
|
2003-11-03 15:34:52 -05:00
|
|
|
} MP3FILE;
|
|
|
|
|
2005-04-19 00:47:59 -04:00
|
|
|
typedef struct tag_m3ufile {
|
|
|
|
int id; /**< integer id (miid) */
|
2005-05-29 23:41:31 -04:00
|
|
|
char *title; /**< playlist name as displayed in iTunes (minm) */
|
2005-04-19 00:47:59 -04:00
|
|
|
int type; /**< 0=static webmanaged, 1=smart, 2=static m3u (aeSP/MPTY) */
|
|
|
|
int items; /**< number of items (mimc) */
|
2005-05-29 23:41:31 -04:00
|
|
|
char *query; /**< where clause if type 1 (MSPS) */
|
2005-04-19 00:47:59 -04:00
|
|
|
int db_timestamp; /**< time last updated */
|
2005-05-29 23:41:31 -04:00
|
|
|
char *path; /**< path of underlying playlist (if type 2) */
|
2005-04-19 00:47:59 -04:00
|
|
|
int index; /**< index of playlist for paths with multiple playlists */
|
|
|
|
} M3UFILE;
|
|
|
|
|
2006-04-21 02:43:41 -04:00
|
|
|
typedef struct tag_packed_m3ufile {
|
|
|
|
char *id;
|
|
|
|
char *title;
|
|
|
|
char *type;
|
|
|
|
char *items;
|
|
|
|
char *query;
|
|
|
|
char *db_timestamp;
|
|
|
|
char *path;
|
|
|
|
char *index;
|
|
|
|
} PACKED_M3UFILE;
|
|
|
|
|
2006-04-12 22:19:56 -04:00
|
|
|
typedef struct tag_packed_mp3file {
|
|
|
|
char *id;
|
|
|
|
char *path;
|
|
|
|
char *fname;
|
|
|
|
char *title;
|
|
|
|
char *artist;
|
|
|
|
char *album;
|
|
|
|
char *genre;
|
|
|
|
char *comment;
|
|
|
|
char *type;
|
|
|
|
char *composer;
|
|
|
|
char *orchestra;
|
|
|
|
char *conductor;
|
|
|
|
char *grouping;
|
|
|
|
char *url;
|
|
|
|
char *bitrate;
|
|
|
|
char *samplerate;
|
|
|
|
char *song_length;
|
|
|
|
char *file_size;
|
|
|
|
char *year;
|
|
|
|
char *track;
|
|
|
|
char *total_tracks;
|
|
|
|
char *disc;
|
|
|
|
char *total_discs;
|
|
|
|
char *bpm;
|
|
|
|
char *compilation;
|
|
|
|
char *rating;
|
|
|
|
char *play_count;
|
|
|
|
char *data_kind;
|
|
|
|
char *item_kind;
|
|
|
|
char *description;
|
|
|
|
char *time_added;
|
|
|
|
char *time_modified;
|
|
|
|
char *time_played;
|
|
|
|
char *db_timestamp;
|
|
|
|
char *disabled;
|
|
|
|
char *sample_count;
|
|
|
|
char *force_update;
|
|
|
|
char *codectype;
|
|
|
|
char *idx;
|
|
|
|
char *has_video;
|
|
|
|
char *contentrating;
|
|
|
|
} PACKED_MP3FILE;
|
|
|
|
|
2005-04-24 17:15:18 -04:00
|
|
|
#define PL_STATICWEB 0
|
|
|
|
#define PL_SMART 1
|
|
|
|
#define PL_STATICFILE 2
|
|
|
|
#define PL_STATICXML 3
|
|
|
|
|
2006-04-27 02:59:46 -04:00
|
|
|
#define SCAN_NOT_COMPDIR 0
|
|
|
|
#define SCAN_IS_COMPDIR 1
|
|
|
|
#define SCAN_TEST_COMPDIR 2
|
|
|
|
|
2005-05-29 19:44:23 -04:00
|
|
|
#define WINAMP_GENRE_UNKNOWN 148
|
|
|
|
|
2006-04-27 02:59:46 -04:00
|
|
|
extern void scan_filename(char *path, int compdir, char *extensions);
|
|
|
|
|
2005-05-29 19:44:23 -04:00
|
|
|
extern char *scan_winamp_genre[];
|
2006-04-12 01:18:55 -04:00
|
|
|
extern int scan_init(char **patharray);
|
2004-06-14 15:01:06 -04:00
|
|
|
extern void make_composite_tags(MP3FILE *song);
|
|
|
|
|
2005-06-01 22:26:04 -04:00
|
|
|
#ifndef TRUE
|
|
|
|
# define TRUE 1
|
|
|
|
# define FALSE 0
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
2003-11-03 15:34:52 -05:00
|
|
|
#endif /* _MP3_SCANNER_H_ */
|