tag: fix the shout and oggflac plugins

During the tag library refactoring, the shout plugin was disabled, and
I forgot about adapting it to the new API.  Apply the same fixes to
the oggflac decoder plugin.
This commit is contained in:
Max Kellermann 2008-08-29 15:02:49 +02:00
parent 37d77caa3c
commit 01f9684f70
2 changed files with 12 additions and 10 deletions

View File

@ -93,7 +93,7 @@ static void freeShoutData(ShoutData * sd)
if (sd->shoutConn) if (sd->shoutConn)
shout_free(sd->shoutConn); shout_free(sd->shoutConn);
if (sd->tag) if (sd->tag)
freeMpdTag(sd->tag); tag_free(sd->tag);
if (sd->timer) if (sd->timer)
timer_free(sd->timer); timer_free(sd->timer);
@ -403,15 +403,15 @@ static void copyTagToVorbisComment(ShoutData * sd)
int i; int i;
for (i = 0; i < sd->tag->numOfItems; i++) { for (i = 0; i < sd->tag->numOfItems; i++) {
switch (sd->tag->items[i].type) { switch (sd->tag->items[i]->type) {
case TAG_ITEM_ARTIST: case TAG_ITEM_ARTIST:
addTag(sd, "ARTIST", sd->tag->items[i].value); addTag(sd, "ARTIST", sd->tag->items[i]->value);
break; break;
case TAG_ITEM_ALBUM: case TAG_ITEM_ALBUM:
addTag(sd, "ALBUM", sd->tag->items[i].value); addTag(sd, "ALBUM", sd->tag->items[i]->value);
break; break;
case TAG_ITEM_TITLE: case TAG_ITEM_TITLE:
addTag(sd, "TITLE", sd->tag->items[i].value); addTag(sd, "TITLE", sd->tag->items[i]->value);
break; break;
default: default:
break; break;
@ -663,19 +663,19 @@ static int myShout_play(AudioOutput * audioOutput,
return 0; return 0;
} }
static void myShout_setTag(AudioOutput * audioOutput, struct tag *tag) static void myShout_setTag(AudioOutput * audioOutput, const struct tag *tag)
{ {
ShoutData *sd = (ShoutData *) audioOutput->data; ShoutData *sd = (ShoutData *) audioOutput->data;
if (sd->tag) if (sd->tag)
freeMpdTag(sd->tag); tag_free(sd->tag);
sd->tag = NULL; sd->tag = NULL;
sd->tagToSend = 0; sd->tagToSend = 0;
if (!tag) if (!tag)
return; return;
sd->tag = mpdTagDup(tag); sd->tag = tag_dup(tag);
sd->tagToSend = 1; sd->tagToSend = 1;
} }

View File

@ -28,6 +28,8 @@
#include "../utils.h" #include "../utils.h"
#include "../log.h" #include "../log.h"
#include <OggFLAC/seekable_stream_decoder.h>
static void oggflac_cleanup(FlacData * data, static void oggflac_cleanup(FlacData * data,
OggFLAC__SeekableStreamDecoder * decoder) OggFLAC__SeekableStreamDecoder * decoder)
{ {
@ -210,7 +212,7 @@ static void of_metadata_dup_cb(const OggFLAC__SeekableStreamDecoder * decoder,
switch (block->type) { switch (block->type) {
case FLAC__METADATA_TYPE_STREAMINFO: case FLAC__METADATA_TYPE_STREAMINFO:
if (!data->tag) if (!data->tag)
data->tag = newMpdTag(); data->tag = tag_new();
data->tag->time = ((float)block->data.stream_info. data->tag->time = ((float)block->data.stream_info.
total_samples) / total_samples) /
block->data.stream_info.sample_rate + 0.5; block->data.stream_info.sample_rate + 0.5;
@ -294,7 +296,7 @@ fail:
} }
/* public functions: */ /* public functions: */
static MpdTag *oggflac_TagDup(char *file) static struct tag *oggflac_TagDup(char *file)
{ {
InputStream inStream; InputStream inStream;
OggFLAC__SeekableStreamDecoder *decoder; OggFLAC__SeekableStreamDecoder *decoder;