diff options
Diffstat (limited to 'src/inputPlugins')
-rw-r--r-- | src/inputPlugins/flac_plugin.c | 13 | ||||
-rw-r--r-- | src/inputPlugins/mp3_plugin.c | 9 | ||||
-rw-r--r-- | src/inputPlugins/ogg_plugin.c | 43 |
3 files changed, 26 insertions, 39 deletions
diff --git a/src/inputPlugins/flac_plugin.c b/src/inputPlugins/flac_plugin.c index 23e2bcfea..a90270850 100644 --- a/src/inputPlugins/flac_plugin.c +++ b/src/inputPlugins/flac_plugin.c @@ -27,7 +27,6 @@ #include "../outputBuffer.h" #include "../replayGain.h" #include "../audio.h" -#include "../path.h" #include <stdio.h> #include <string.h> @@ -438,7 +437,7 @@ FLAC__StreamDecoderWriteStatus flacWrite(const FLAC__SeekableStreamDecoder *dec, return FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE; } -MpdTag * flacMetadataDup(char * utf8file, int * vorbisCommentFound) { +MpdTag * flacMetadataDup(char * file, int * vorbisCommentFound) { MpdTag * ret = NULL; FLAC__Metadata_SimpleIterator * it; FLAC__StreamMetadata * block = NULL; @@ -448,7 +447,7 @@ MpdTag * flacMetadataDup(char * utf8file, int * vorbisCommentFound) { *vorbisCommentFound = 0; it = FLAC__metadata_simple_iterator_new(); - if(!FLAC__metadata_simple_iterator_init(it,rmp2amp(utf8ToFsCharset(utf8file)),1,0)) { + if(!FLAC__metadata_simple_iterator_init(it, file ,1,0)) { FLAC__metadata_simple_iterator_delete(it); return ret; } @@ -530,14 +529,14 @@ MpdTag * flacMetadataDup(char * utf8file, int * vorbisCommentFound) { return ret; } -MpdTag * flacTagDup(char * utf8file) { +MpdTag * flacTagDup(char * file) { MpdTag * ret = NULL; int foundVorbisComment = 0; - ret = flacMetadataDup(utf8file,&foundVorbisComment); + ret = flacMetadataDup(file, &foundVorbisComment); if(!ret) return NULL; if(!foundVorbisComment) { - MpdTag * temp = id3Dup(utf8file); + MpdTag * temp = id3Dup(file); if(temp) { temp->time = ret->time; freeMpdTag(ret); @@ -545,8 +544,6 @@ MpdTag * flacTagDup(char * utf8file) { } } - if(ret) validateUtf8Tag(ret); - return ret; } diff --git a/src/inputPlugins/mp3_plugin.c b/src/inputPlugins/mp3_plugin.c index 594f17876..de23b6c7b 100644 --- a/src/inputPlugins/mp3_plugin.c +++ b/src/inputPlugins/mp3_plugin.c @@ -36,7 +36,6 @@ #include "../log.h" #include "../utils.h" #include "../tag.h" -#include "../path.h" #include <stdio.h> #include <string.h> @@ -613,21 +612,19 @@ int mp3_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream) { return 0; } -MpdTag * mp3_tagDup(char * utf8file) { +MpdTag * mp3_tagDup(char * file) { MpdTag * ret = NULL; int time; - ret = id3Dup(utf8file); + ret = id3Dup(file); - time = getMp3TotalTime(rmp2amp(utf8ToFsCharset(utf8file))); + time = getMp3TotalTime(file); if(time>=0) { if(!ret) ret = newMpdTag(); ret->time = time; } - if(ret) validateUtf8Tag(ret); - return ret; } diff --git a/src/inputPlugins/ogg_plugin.c b/src/inputPlugins/ogg_plugin.c index 4f44af4c2..4f49f286b 100644 --- a/src/inputPlugins/ogg_plugin.c +++ b/src/inputPlugins/ogg_plugin.c @@ -108,7 +108,9 @@ long ogg_tell_cb(void * vdata) { char * ogg_parseComment(char * comment, char * needle) { int len = strlen(needle); - if(strncasecmp(comment,needle,len)) return comment+len; + if(strncasecmp(comment, needle, len) == 0 && *(comment+len) == '=') { + return comment+len+1; + } return NULL; } @@ -274,16 +276,14 @@ int ogg_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream) return 0; } -MpdTag * oggTagDup(char * utf8file) { +MpdTag * oggTagDup(char * file) { MpdTag * ret = NULL; FILE * fp; OggVorbis_File vf; char ** comments; char * temp; - char * s1; - char * s2; - fp = fopen(rmp2amp(utf8ToFsCharset(utf8file)),"r"); + fp = fopen(file,"r"); if(!fp) return NULL; if(ov_open(fp,&vf,NULL,0)<0) { fclose(fp); @@ -296,33 +296,28 @@ MpdTag * oggTagDup(char * utf8file) { comments = ov_comment(&vf,-1)->user_comments; while(*comments) { - temp = strdup(*comments); - ++comments; - if(!(s1 = strtok(temp,"="))) continue; - s2 = strtok(NULL,""); - if(!s1 || !s2); - else if(0==strcasecmp(s1,"artist")) { + if((temp = ogg_parseComment(*comments,"artist"))) { if(!ret->artist) { - stripReturnChar(s2); - ret->artist = strdup(s2); + ret->artist = strdup(temp); + stripReturnChar(ret->artist); } - } - else if(0==strcasecmp(s1,"title")) { + } + else if((temp = ogg_parseComment(*comments,"title"))) { if(!ret->title) { - stripReturnChar(s2); - ret->title = strdup(s2); + ret->title = strdup(temp); + stripReturnChar(ret->title); } } - else if(0==strcasecmp(s1,"album")) { + else if((temp = ogg_parseComment(*comments,"album"))) { if(!ret->album) { - stripReturnChar(s2); - ret->album = strdup(s2); + ret->album = strdup(temp); + stripReturnChar(ret->album); } } - else if(0==strcasecmp(s1,"tracknumber")) { + else if((temp = ogg_parseComment(*comments,"tracknumber"))) { if(!ret->track) { - stripReturnChar(s2); - ret->track = strdup(s2); + ret->track = strdup(temp); + stripReturnChar(ret->track); } } free(temp); @@ -330,8 +325,6 @@ MpdTag * oggTagDup(char * utf8file) { ov_clear(&vf); - if(ret) validateUtf8Tag(ret); - return ret; } |