From c51ad71efaa975c64f6ad31dce5578307a5cba7b Mon Sep 17 00:00:00 2001 From: Warren Dukes Date: Tue, 18 May 2004 13:13:55 +0000 Subject: rework stuff so that we can use mime-type of streams to detect type of file git-svn-id: https://svn.musicpd.org/mpd/trunk@1062 09075e82-0dd4-0310-85a5-a0d7c8717e4f --- src/player.c | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) (limited to 'src/player.c') diff --git a/src/player.c b/src/player.c index 7f28670bf..a05b43b14 100644 --- a/src/player.c +++ b/src/player.c @@ -161,25 +161,29 @@ int playerInit() { } int playerGetDecodeType(char * utf8file) { - if(isRemoteUrl(utf8file)) return DECODE_TYPE_MP3; - if(!isFile(utf8file,NULL)) return -1; + if(isRemoteUrl(utf8file)) return DECODE_TYPE_URL; + if(isFile(utf8file,NULL)) return DECODE_TYPE_FILE; + return -1; +} + +int playerGetSuffix(char * utf8file) { #ifdef HAVE_MAD - if(hasMp3Suffix(utf8file)) return DECODE_TYPE_MP3; + if(hasMp3Suffix(utf8file)) return DECODE_SUFFIX_MP3; +#endif +#ifdef HAVE_OGG + if(hasOggSuffix(utf8file)) return DECODE_SUFFIX_OGG; #endif -#ifdef HAVE_OGG - if(hasOggSuffix(utf8file)) return DECODE_TYPE_OGG; +#ifdef HAVE_FAAD + if(hasAacSuffix(utf8file)) return DECODE_SUFFIX_AAC; + if(hasMp4Suffix(utf8file)) return DECODE_SUFFIX_MP4; #endif -#ifdef HAVE_FLAC - if(hasFlacSuffix(utf8file)) return DECODE_TYPE_FLAC; +#ifdef HAVE_FLAC + if(hasFlacSuffix(utf8file)) return DECODE_SUFFIX_FLAC; #endif #ifdef HAVE_AUDIOFILE - if(hasWaveSuffix(utf8file)) return DECODE_TYPE_AUDIOFILE; -#endif -#ifdef HAVE_FAAD - if(hasAacSuffix(utf8file)) return DECODE_TYPE_AAC; - if(hasMp4Suffix(utf8file)) return DECODE_TYPE_MP4; + if(hasWaveSuffix(utf8file)) return DECODE_SUFFIX_WAVE; #endif - return -1; + return -1; } int playerPlay(FILE * fp, char * utf8file) { @@ -208,6 +212,7 @@ int playerPlay(FILE * fp, char * utf8file) { return 0; } pc->decodeType = decodeType; + pc->fileSuffix = playerGetSuffix(utf8file); if(isRemoteUrl(utf8file)) { strncpy(pc->file,utf8file,MAXPATHLEN); @@ -366,6 +371,7 @@ int queueSong(char * utf8file) { decodeType = playerGetDecodeType(utf8file); if(decodeType < 0) return -1; pc->decodeType = decodeType; + pc->fileSuffix = playerGetSuffix(utf8file); pc->queueState = PLAYER_QUEUE_FULL; return 0; @@ -428,6 +434,7 @@ int playerSeek(FILE * fp, char * utf8file, float time) { return -1; } pc->decodeType = decodeType; + pc->fileSuffix = playerGetSuffix(utf8file); strncpy(pc->file,file,MAXPATHLEN); pc->file[MAXPATHLEN] = '\0'; -- cgit v1.2.3