owntone-server/src/mp3-scanner.h

98 lines
3.0 KiB
C
Raw Normal View History

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_
#include <sys/types.h>
2003-11-03 15:34:52 -05:00
typedef struct tag_mp3file {
char *path;
char *fname;
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;
char *composer; /* TCOM */
char *orchestra; /* TPE2 */
char *conductor; /* TPE3 */
char *grouping; /* TIT1 */
char *url; /* daap.songdataurl (asul) */
2003-11-11 21:59:45 -05:00
int bitrate;
int samplerate;
int song_length;
int file_size;
int year; /* TDRC */
2004-01-27 00:30:06 -05:00
int track; /* TRCK */
2004-01-27 00:30:06 -05:00
int total_tracks;
2003-11-11 21:59:45 -05:00
int disc; /* TPOS */
2004-02-18 15:34:08 -05:00
int total_discs;
int time_added;
int time_modified;
int time_played;
2005-03-11 01:39:40 -05:00
int play_count;
int rating;
int db_timestamp;
2005-03-11 01:39:40 -05:00
int disabled;
int bpm; /* TBPM */
2003-12-09 00:48:06 -05:00
int got_id3;
2005-03-11 01:39:40 -05:00
unsigned int id;
char *description; /* long file type */
char *codectype; /* song.codectype */
int item_kind; /* song or movie */
int data_kind; /* dmap.datakind (asdk) */
2005-03-19 05:02:19 -05:00
int force_update;
int sample_count;
char compilation;
2003-11-03 15:34:52 -05:00
} MP3FILE;
typedef struct tag_m3ufile {
int id; /**< integer id (miid) */
char *title; /**< playlist name as displayed in iTunes (minm) */
int type; /**< 0=static webmanaged, 1=smart, 2=static m3u (aeSP/MPTY) */
int items; /**< number of items (mimc) */
char *query; /**< where clause if type 1 (MSPS) */
int db_timestamp; /**< time last updated */
char *path; /**< path of underlying playlist (if type 2) */
int index; /**< index of playlist for paths with multiple playlists */
} M3UFILE;
2005-04-24 17:15:18 -04:00
#define PL_STATICWEB 0
#define PL_SMART 1
#define PL_STATICFILE 2
#define PL_STATICXML 3
2003-11-04 01:11:00 -05:00
extern int scan_init(char *path);
extern void make_composite_tags(MP3FILE *song);
2005-03-11 01:39:40 -05:00
/* FIXME: this should be refactored out of here... */
extern off_t aac_drilltoatom(FILE *aac_fp, char *atom_path, unsigned int *atom_length);
2005-03-11 01:39:40 -05:00
extern long scan_aac_findatom(FILE *fin, long max_offset, char *which_atom, int *atom_size);
2003-11-03 15:34:52 -05:00
#endif /* _MP3_SCANNER_H_ */