ok, dottemag's id3v1_encoding config parameter should now work.
dottemag can you test it? i made one little tweak git-svn-id: https://svn.musicpd.org/mpd/trunk@2620 09075e82-0dd4-0310-85a5-a0d7c8717e4f
This commit is contained in:
20
src/tag.c
20
src/tag.c
@@ -54,6 +54,7 @@ char * mpdTagItemKeys[TAG_NUM_OF_ITEM_TYPES] =
|
|||||||
};
|
};
|
||||||
|
|
||||||
static mpd_sint8 ignoreTagItems[TAG_NUM_OF_ITEM_TYPES];
|
static mpd_sint8 ignoreTagItems[TAG_NUM_OF_ITEM_TYPES];
|
||||||
|
static char * id3v1_encoding = NULL;
|
||||||
|
|
||||||
void initTagConfig() {
|
void initTagConfig() {
|
||||||
int quit = 0;
|
int quit = 0;
|
||||||
@@ -63,6 +64,11 @@ void initTagConfig() {
|
|||||||
ConfigParam * param;
|
ConfigParam * param;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
param = getConfigParam(CONF_ID3V1_ENCODING);
|
||||||
|
if(param) id3v1_encoding = param->value;
|
||||||
|
|
||||||
|
/* parse the "metadata_to_use" config parameter below */
|
||||||
|
|
||||||
memset(ignoreTagItems, 0, TAG_NUM_OF_ITEM_TYPES);
|
memset(ignoreTagItems, 0, TAG_NUM_OF_ITEM_TYPES);
|
||||||
|
|
||||||
param = getConfigParam(CONF_METADATA_TO_USE);
|
param = getConfigParam(CONF_METADATA_TO_USE);
|
||||||
@@ -115,6 +121,7 @@ MpdTag * getID3Info(struct id3_tag * tag, char * id, int type, MpdTag * mpdTag)
|
|||||||
struct id3_frame const * frame;
|
struct id3_frame const * frame;
|
||||||
id3_ucs4_t const * ucs4;
|
id3_ucs4_t const * ucs4;
|
||||||
id3_utf8_t * utf8;
|
id3_utf8_t * utf8;
|
||||||
|
id3_latin1_t * latin1;
|
||||||
union id3_field const * field;
|
union id3_field const * field;
|
||||||
unsigned int nstrings;
|
unsigned int nstrings;
|
||||||
int i;
|
int i;
|
||||||
@@ -133,7 +140,18 @@ MpdTag * getID3Info(struct id3_tag * tag, char * id, int type, MpdTag * mpdTag)
|
|||||||
ucs4 = id3_genre_name(ucs4);
|
ucs4 = id3_genre_name(ucs4);
|
||||||
}
|
}
|
||||||
|
|
||||||
utf8 = id3_ucs4_utf8duplicate(ucs4);
|
if(id3v1_encoding &&
|
||||||
|
(id3_tag_options(tag, 0, 0) & ID3_TAG_OPTION_ID3V1))
|
||||||
|
{
|
||||||
|
latin1 = id3_ucs4_latin1duplicate(ucs4);
|
||||||
|
if(!latin1) continue;
|
||||||
|
|
||||||
|
setCharSetConversion("UTF-8", id3v1_encoding);
|
||||||
|
utf8 = convStrDup(latin1);
|
||||||
|
free(latin1);
|
||||||
|
}
|
||||||
|
else utf8 = id3_ucs4_utf8duplicate(ucs4);
|
||||||
|
|
||||||
if(!utf8) continue;
|
if(!utf8) continue;
|
||||||
|
|
||||||
if( NULL == mpdTag ) mpdTag = newMpdTag();
|
if( NULL == mpdTag ) mpdTag = newMpdTag();
|
||||||
|
Reference in New Issue
Block a user