void ices_metadata_set_file(const char* filename) { char buf[1024]; ices_util_free(Filename); Filename = NULL; if (filename && *filename) { metadata_clean_filename(filename, buf, sizeof(buf)); Filename = ices_util_strdup(buf); } }
static void metadata_update (input_stream_t* source, int delay) { ices_stream_t* stream; char song[1024]; char* playlist_metadata; char* metadata; int rc; if (delay) usleep (delay); if (! (playlist_metadata = ices_playlist_get_metadata ())) { if (Title) { if (Artist) snprintf (song, sizeof (song), "%s - %s", Artist, Title); else snprintf (song, sizeof (song), "%s", Title); } else metadata_clean_filename (source->path, song, sizeof (song)); metadata = song; } else metadata = playlist_metadata; for (stream = ices_config.streams; stream; stream = stream->next) { rc = shout_update_metadata (&stream->conn, metadata); if (rc != 1) ices_log_error ("Updating metadata on %s failed.", stream->mount); else ices_log_debug ("Updated metadata on %s to: %s", stream->mount, metadata); } ices_util_free (playlist_metadata); }