/*
- * Copyright (C) 2003-2009 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2003-2013 Andre Noll <maan@systemlinux.org>
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
#include "afh.h"
#include "string.h"
-/** \cond some defines and structs which are only used in this file */
-
/*
* MIN_CONSEC_GOOD_FRAMES defines how many consecutive valid MP3 frames we need
* to see before we decide we are looking at a real MP3 file
unsigned int emphasis;
};
-/** \endcond */
static const int frequencies[3][4] = {
{22050,24000,16000,50000}, /* MPEG 2.0 */
{44100,48000,32000,50000}, /* MPEG 1.0 */
#include <id3tag.h>
-static char *get_latin1(id3_ucs4_t const *string)
+static char *get_utf8(id3_ucs4_t const *string)
{
if (!string)
return NULL;
- return (char *)id3_ucs4_latin1duplicate(string);
+ return (char *)id3_ucs4_utf8duplicate(string);
}
static char *get_stringlist(union id3_field *field)
char *result = NULL;
for (k = 0; k < nstrings; k++) {
- char *tmp = (char *)get_latin1(id3_field_getstrings(field, k));
+ char *tmp = (char *)get_utf8(id3_field_getstrings(field, k));
if (result) {
char *tmp2 = result;
result = make_message("%s %s", tmp2, tmp);
{
id3_ucs4_t const *string = id3_field_getfullstring(field);
- return get_latin1(string);
+ return get_utf8(string);
}
#define FOR_EACH_FIELD(f, j, fr) for (j = 0; j < (fr)->nfields && \
}
for (i = 0; i < id3_t->nframes; i++) {
struct id3_frame *fr = id3_t->frames[i];
- if (!strcmp(fr->id, "TIT2")) {
+ if (!strcmp(fr->id, ID3_FRAME_TITLE)) {
if (!tags->title)
tags->title = get_strings(fr);
continue;
}
- if (!strcmp(fr->id, "TPE1")) {
+ if (!strcmp(fr->id, ID3_FRAME_ARTIST)) {
if (!tags->artist)
tags->artist = get_strings(fr);
continue;
}
- if (!strcmp(fr->id, "TALB")) {
+ if (!strcmp(fr->id, ID3_FRAME_ALBUM)) {
if (!tags->album)
tags->album = get_strings(fr);
continue;
}
- if (!strcmp(fr->id, "TDRC")) {
+ if (!strcmp(fr->id, ID3_FRAME_YEAR)) {
if (!tags->year)
tags->year = get_strings(fr);
continue;
}
- if (!strcmp(fr->id, "COMM")) {
+ if (!strcmp(fr->id, ID3_FRAME_COMMENT)) {
if (!tags->comment)
tags->comment = get_strings(fr);
continue;
if (ret < 0)
continue;
fl = ret;
- tmp.tv_sec = fl;
+ tmp.tv_sec = fl - header.padding;
tmp.tv_usec = 0;
tv_divide(br * 125, &tmp, &cct);
tv_add(&cct, &total_time, &tmp);