decoder_api: pass constant path pointers

This commit is contained in:
Max Kellermann 2008-10-31 15:56:43 +01:00
parent 6d6e615825
commit 78448fe1a5
12 changed files with 43 additions and 29 deletions

View File

@ -246,7 +246,7 @@ static void aac_parse_header(AacBuffer * b, float *length)
} }
} }
static float getAacFloatTotalTime(char *file) static float getAacFloatTotalTime(const char *file)
{ {
AacBuffer b; AacBuffer b;
float length; float length;
@ -290,7 +290,7 @@ static float getAacFloatTotalTime(char *file)
return length; return length;
} }
static int getAacTotalTime(char *file) static int getAacTotalTime(const char *file)
{ {
int file_time = -1; int file_time = -1;
float length; float length;
@ -435,7 +435,7 @@ aac_stream_decode(struct decoder *mpd_decoder, struct input_stream *inStream)
static bool static bool
aac_decode(struct decoder *mpd_decoder, char *path) aac_decode(struct decoder *mpd_decoder, const char *path)
{ {
float file_time; float file_time;
float totalTime; float totalTime;
@ -569,7 +569,7 @@ aac_decode(struct decoder *mpd_decoder, char *path)
return true; return true;
} }
static struct tag *aacTagDup(char *file) static struct tag *aacTagDup(const char *file)
{ {
struct tag *ret = NULL; struct tag *ret = NULL;
int file_time = getAacTotalTime(file); int file_time = getAacTotalTime(file);

View File

@ -27,7 +27,7 @@
/* pick 1020 since its devisible for 8,16,24, and 32-bit audio */ /* pick 1020 since its devisible for 8,16,24, and 32-bit audio */
#define CHUNK_SIZE 1020 #define CHUNK_SIZE 1020
static int getAudiofileTotalTime(char *file) static int getAudiofileTotalTime(const char *file)
{ {
int total_time; int total_time;
AFfilehandle af_fp = afOpenFile(file, "r", NULL); AFfilehandle af_fp = afOpenFile(file, "r", NULL);
@ -42,7 +42,7 @@ static int getAudiofileTotalTime(char *file)
} }
static bool static bool
audiofile_decode(struct decoder *decoder, char *path) audiofile_decode(struct decoder *decoder, const char *path)
{ {
int fs, frame_count; int fs, frame_count;
AFfilehandle af_fp; AFfilehandle af_fp;
@ -115,7 +115,7 @@ audiofile_decode(struct decoder *decoder, char *path)
return true; return true;
} }
static struct tag *audiofileTagDup(char *file) static struct tag *audiofileTagDup(const char *file)
{ {
struct tag *ret = NULL; struct tag *ret = NULL;
int total_time = getAudiofileTotalTime(file); int total_time = getAudiofileTotalTime(file);

View File

@ -325,7 +325,7 @@ static bool ffmpeg_tag_internal(BasePtrs *base)
} }
//no tag reading in ffmpeg, check if playable //no tag reading in ffmpeg, check if playable
static struct tag *ffmpeg_tag(char *file) static struct tag *ffmpeg_tag(const char *file)
{ {
struct input_stream input; struct input_stream input;
BasePtrs base; BasePtrs base;

View File

@ -220,7 +220,7 @@ static FLAC__StreamDecoderWriteStatus flacWrite(const flac_decoder *dec,
} }
static struct tag * static struct tag *
flacMetadataDup(char *file, bool *vorbisCommentFound) flacMetadataDup(const char *file, bool *vorbisCommentFound)
{ {
struct tag *ret = NULL; struct tag *ret = NULL;
FLAC__Metadata_SimpleIterator *it; FLAC__Metadata_SimpleIterator *it;
@ -278,7 +278,7 @@ flacMetadataDup(char *file, bool *vorbisCommentFound)
return ret; return ret;
} }
static struct tag *flacTagDup(char *file) static struct tag *flacTagDup(const char *file)
{ {
struct tag *ret = NULL; struct tag *ret = NULL;
bool foundVorbisComment = false; bool foundVorbisComment = false;
@ -386,7 +386,7 @@ flac_decode(struct decoder * decoder, struct input_stream *inStream)
#if defined(FLAC_API_VERSION_CURRENT) && FLAC_API_VERSION_CURRENT > 7 && \ #if defined(FLAC_API_VERSION_CURRENT) && FLAC_API_VERSION_CURRENT > 7 && \
!defined(HAVE_OGGFLAC) !defined(HAVE_OGGFLAC)
static struct tag *oggflac_tag_dup(char *file) static struct tag *oggflac_tag_dup(const char *file)
{ {
struct tag *ret = NULL; struct tag *ret = NULL;
FLAC__Metadata_Iterator *it; FLAC__Metadata_Iterator *it;

View File

@ -20,6 +20,7 @@
#include "../utils.h" #include "../utils.h"
#include "../log.h" #include "../log.h"
#include <glib.h>
#include <mikmod.h> #include <mikmod.h>
/* this is largely copied from alsaplayer */ /* this is largely copied from alsaplayer */
@ -136,12 +137,17 @@ typedef struct _mod_Data {
SBYTE *audio_buffer; SBYTE *audio_buffer;
} mod_Data; } mod_Data;
static mod_Data *mod_open(char *path) static mod_Data *mod_open(const char *path)
{ {
char *path2;
MODULE *moduleHandle; MODULE *moduleHandle;
mod_Data *data; mod_Data *data;
if (!(moduleHandle = Player_Load(path, 128, 0))) path2 = g_strdup(path);
moduleHandle = Player_Load(path2, 128, 0);
g_free(path2);
if (moduleHandle == NULL)
return NULL; return NULL;
/* Prevent module from looping forever */ /* Prevent module from looping forever */
@ -166,7 +172,7 @@ static void mod_close(mod_Data * data)
} }
static bool static bool
mod_decode(struct decoder *decoder, char *path) mod_decode(struct decoder *decoder, const char *path)
{ {
mod_Data *data; mod_Data *data;
struct audio_format audio_format; struct audio_format audio_format;
@ -218,8 +224,9 @@ mod_decode(struct decoder *decoder, char *path)
return true; return true;
} }
static struct tag *modTagDup(char *file) static struct tag *modTagDup(const char *file)
{ {
char *path2;
struct tag *ret = NULL; struct tag *ret = NULL;
MODULE *moduleHandle; MODULE *moduleHandle;
char *title; char *title;
@ -229,7 +236,11 @@ static struct tag *modTagDup(char *file)
return NULL; return NULL;
} }
if (!(moduleHandle = Player_Load(file, 128, 0))) { path2 = g_strdup(file);
moduleHandle = Player_Load(path2, 128, 0);
g_free(path2);
if (moduleHandle == NULL) {
DEBUG("modTagDup: Failed to open file: %s\n", file); DEBUG("modTagDup: Failed to open file: %s\n", file);
MikMod_Exit(); MikMod_Exit();
return NULL; return NULL;
@ -240,7 +251,10 @@ static struct tag *modTagDup(char *file)
ret = tag_new(); ret = tag_new();
ret->time = 0; ret->time = 0;
title = xstrdup(Player_LoadTitle(file));
path2 = g_strdup(file);
title = xstrdup(Player_LoadTitle(path2));
g_free(path2);
if (title) if (title)
tag_add_item(ret, TAG_ITEM_TITLE, title); tag_add_item(ret, TAG_ITEM_TITLE, title);

View File

@ -791,7 +791,7 @@ static void mp3_data_finish(struct mp3_data *data)
} }
/* this is primarily used for getting total time for tags */ /* this is primarily used for getting total time for tags */
static int mp3_total_file_time(char *file) static int mp3_total_file_time(const char *file)
{ {
struct input_stream input_stream; struct input_stream input_stream;
struct mp3_data data; struct mp3_data data;
@ -1123,7 +1123,7 @@ mp3_decode(struct decoder *decoder, struct input_stream *input_stream)
return true; return true;
} }
static struct tag *mp3_tag_dup(char *file) static struct tag *mp3_tag_dup(const char *file)
{ {
struct tag *ret = NULL; struct tag *ret = NULL;
int total_time; int total_time;

View File

@ -301,7 +301,7 @@ mp4_decode(struct decoder *mpd_decoder, struct input_stream *inStream)
return true; return true;
} }
static struct tag *mp4DataDup(char *file, int *mp4MetadataFound) static struct tag *mp4DataDup(const char *file, int *mp4MetadataFound)
{ {
struct tag *ret = NULL; struct tag *ret = NULL;
struct input_stream inStream; struct input_stream inStream;
@ -390,7 +390,7 @@ static struct tag *mp4DataDup(char *file, int *mp4MetadataFound)
return ret; return ret;
} }
static struct tag *mp4TagDup(char *file) static struct tag *mp4TagDup(const char *file)
{ {
struct tag *ret = NULL; struct tag *ret = NULL;
int mp4MetadataFound = 0; int mp4MetadataFound = 0;

View File

@ -236,7 +236,7 @@ mpc_decode(struct decoder *mpd_decoder, struct input_stream *inStream)
return true; return true;
} }
static float mpcGetTime(char *file) static float mpcGetTime(const char *file)
{ {
struct input_stream inStream; struct input_stream inStream;
float total_time = -1; float total_time = -1;
@ -274,7 +274,7 @@ static float mpcGetTime(char *file)
return total_time; return total_time;
} }
static struct tag *mpcTagDup(char *file) static struct tag *mpcTagDup(const char *file)
{ {
struct tag *ret = NULL; struct tag *ret = NULL;
float total_time = mpcGetTime(file); float total_time = mpcGetTime(file);

View File

@ -254,7 +254,7 @@ fail:
} }
/* public functions: */ /* public functions: */
static struct tag *oggflac_TagDup(char *file) static struct tag *oggflac_TagDup(const char *file)
{ {
struct input_stream inStream; struct input_stream inStream;
OggFLAC__SeekableStreamDecoder *decoder; OggFLAC__SeekableStreamDecoder *decoder;

View File

@ -329,7 +329,7 @@ oggvorbis_decode(struct decoder *decoder, struct input_stream *inStream)
return true; return true;
} }
static struct tag *oggvorbis_TagDup(char *file) static struct tag *oggvorbis_TagDup(const char *file)
{ {
struct tag *ret; struct tag *ret;
FILE *fp; FILE *fp;

View File

@ -277,7 +277,7 @@ static ReplayGainInfo *wavpack_replaygain(WavpackContext *wpc)
/* /*
* Reads metainfo from the specified file. * Reads metainfo from the specified file.
*/ */
static struct tag *wavpack_tagdup(char *fname) static struct tag *wavpack_tagdup(const char *fname)
{ {
WavpackContext *wpc; WavpackContext *wpc;
struct tag *tag; struct tag *tag;
@ -533,7 +533,7 @@ wavpack_streamdecode(struct decoder * decoder, struct input_stream *is)
* Decodes a file. * Decodes a file.
*/ */
static bool static bool
wavpack_filedecode(struct decoder *decoder, char *fname) wavpack_filedecode(struct decoder *decoder, const char *fname)
{ {
char error[ERRORLEN]; char error[ERRORLEN];
WavpackContext *wpc; WavpackContext *wpc;

View File

@ -86,13 +86,13 @@ struct decoder_plugin {
* *
* returns -1 on error, 0 on success * returns -1 on error, 0 on success
*/ */
bool (*file_decode)(struct decoder *, char *path); bool (*file_decode)(struct decoder *, const char *path);
/** /**
* file should be the full path! Returns NULL if a tag cannot * file should be the full path! Returns NULL if a tag cannot
* be found or read * be found or read
*/ */
struct tag *(*tag_dup)(char *file); struct tag *(*tag_dup)(const char *file);
/* one or more of the INPUT_PLUGIN_STREAM_* values OR'd together */ /* one or more of the INPUT_PLUGIN_STREAM_* values OR'd together */
unsigned char stream_types; unsigned char stream_types;