View | Details | Raw Unified
Collapse All | Expand All

(-) metadata.c (-1 / +32 lines)
 Lines 41-46    Link Here 
#include "metadata.h"
#include "metadata.h"
#include "macros.h"
#include "macros.h"
#if !defined(FLAC_API_VERSION_CURRENT) || FLAC_API_VERSION_CURRENT < 8
#define LEGACY_FLAC
#else
#undef LEGACY_FLAC
#endif
struct _Metadata {
struct _Metadata {
	char *title;
	char *title;
 Lines 741-747    Link Here 
} CallbackData;
} CallbackData;
static FLAC__StreamDecoderReadStatus
static FLAC__StreamDecoderReadStatus
FLAC_read_callback (const FLAC__StreamDecoder *UNUSED(decoder), FLAC__byte buffer[], unsigned *bytes, void *client_data)
FLAC_read_callback (const FLAC__StreamDecoder *UNUSED(decoder),
                    FLAC__byte buffer[],
#if defined(LEGACY_FLAC)
		    unsigned *bytes,
#else
		    size_t *bytes,
#endif
		    void *client_data)
{
{
	CallbackData *data = (CallbackData *) client_data;
	CallbackData *data = (CallbackData *) client_data;
	GnomeVFSFileSize read;
	GnomeVFSFileSize read;
 Lines 829-850    Link Here 
	flac_decoder = FLAC__stream_decoder_new ();
	flac_decoder = FLAC__stream_decoder_new ();
#if defined(LEGACY_FLAC)
	FLAC__stream_decoder_set_read_callback (flac_decoder, FLAC_read_callback);
	FLAC__stream_decoder_set_read_callback (flac_decoder, FLAC_read_callback);
	FLAC__stream_decoder_set_write_callback (flac_decoder, FLAC_write_callback);
	FLAC__stream_decoder_set_write_callback (flac_decoder, FLAC_write_callback);
	FLAC__stream_decoder_set_metadata_callback (flac_decoder, FLAC_metadata_callback);
	FLAC__stream_decoder_set_metadata_callback (flac_decoder, FLAC_metadata_callback);
	FLAC__stream_decoder_set_error_callback (flac_decoder, FLAC_error_callback);
	FLAC__stream_decoder_set_error_callback (flac_decoder, FLAC_error_callback);
#endif
	callback_data = g_new0 (CallbackData, 1);
	callback_data = g_new0 (CallbackData, 1);
	callback_data->handle = handle;
	callback_data->handle = handle;
	callback_data->comment = comment;
	callback_data->comment = comment;
#if defined(LEGACY_FLAC)
	FLAC__stream_decoder_set_client_data (flac_decoder, callback_data);
	FLAC__stream_decoder_set_client_data (flac_decoder, callback_data);
#endif
	/* by default, only the STREAMINFO block is parsed and passed to
	/* by default, only the STREAMINFO block is parsed and passed to
	 * the metadata callback.  Here we instruct the decoder to also
	 * the metadata callback.  Here we instruct the decoder to also
	 * pass us the VORBISCOMMENT block if there is one. */
	 * pass us the VORBISCOMMENT block if there is one. */
	FLAC__stream_decoder_set_metadata_respond (flac_decoder, FLAC__METADATA_TYPE_VORBIS_COMMENT);
	FLAC__stream_decoder_set_metadata_respond (flac_decoder, FLAC__METADATA_TYPE_VORBIS_COMMENT);
#if defined(LEGACY_FLAC)
	FLAC__stream_decoder_init (flac_decoder);
	FLAC__stream_decoder_init (flac_decoder);
#else
	FLAC__stream_decoder_init_stream (flac_decoder,
					 FLAC_read_callback,
					 NULL,
					 NULL,
					 NULL,
					 NULL,
					 FLAC_write_callback,
					 FLAC_metadata_callback,
					 FLAC_error_callback,
					 callback_data
					 );
#endif
	/* this runs the decoding process, calling the callbacks as appropriate */
	/* this runs the decoding process, calling the callbacks as appropriate */
	if (FLAC__stream_decoder_process_until_end_of_metadata (flac_decoder) == 0) {
	if (FLAC__stream_decoder_process_until_end_of_metadata (flac_decoder) == 0) {