X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=afh.h;h=35cc7ef102644f1c394db52cd6cd21af51395c21;hp=ffccce95fbb12720d40e5549e60781bc6c5e7fe4;hb=4e3d8370476eee8537d8dc325d588fca43928098;hpb=4df56926d10669ec120510957d3aa3fddb16e3c6 diff --git a/afh.h b/afh.h index ffccce95..35cc7ef1 100644 --- a/afh.h +++ b/afh.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005-2007 Andre Noll + * Copyright (C) 2005-2009 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -23,9 +23,6 @@ /** \endcond */ -/** Size of the audio_file info string. */ -#define AUDIO_FILE_INFO_SIZE 256 - /** Audio format dependent information. */ struct afh_info { /** The number of chunks this audio file contains. */ @@ -33,7 +30,7 @@ struct afh_info { /** The length of the audio file in seconds. */ long unsigned seconds_total; /** A string that gets filled in by the audio format handler. */ - char info_string[AUDIO_FILE_INFO_SIZE]; + char *info_string; /** * The table that specifies the offset of the individual pieces in * the current audio file. @@ -94,12 +91,18 @@ struct audio_format_handler { * * \sa struct afh_info */ - int (*get_file_info)(char *map, size_t numbytes, + int (*get_file_info)(char *map, size_t numbytes, int fd, struct afh_info *afi); }; void afh_init(void); int guess_audio_format(const char *name); int compute_afhi(const char *path, char *data, size_t size, - struct afh_info *afhi); + int fd, struct afh_info *afhi); const char *audio_format_name(int); +void afh_get_chunk(long unsigned chunk_num, struct afh_info *afhi, + void *map, const char **buf, size_t *len); +uint32_t afh_get_largest_chunk_size(struct afh_info *afhi); +void afh_get_header(struct afh_info *afhi, void *map, const char **buf, size_t *len); +char *make_taginfo(char *title, char *artist, char *album, char *year, + char *comment);