DespotifyUtils: pass const ds_track reference

This commit is contained in:
Max Kellermann 2014-01-08 19:22:20 +01:00
parent bc23a6bb05
commit 89a78a5f3c
4 changed files with 17 additions and 17 deletions

View File

@ -85,28 +85,28 @@ void mpd_despotify_unregister_callback(void (*cb)(struct despotify_session *, in
Tag * Tag *
mpd_despotify_tag_from_track(struct ds_track *track) mpd_despotify_tag_from_track(const ds_track &track)
{ {
char tracknum[20]; char tracknum[20];
char comment[80]; char comment[80];
char date[20]; char date[20];
if (!track->has_meta_data) if (!track.has_meta_data)
return new Tag(); return new Tag();
TagBuilder tag; TagBuilder tag;
snprintf(tracknum, sizeof(tracknum), "%d", track->tracknumber); snprintf(tracknum, sizeof(tracknum), "%d", track.tracknumber);
snprintf(date, sizeof(date), "%d", track->year); snprintf(date, sizeof(date), "%d", track.year);
snprintf(comment, sizeof(comment), "Bitrate %d Kbps, %sgeo restricted", snprintf(comment, sizeof(comment), "Bitrate %d Kbps, %sgeo restricted",
track->file_bitrate / 1000, track.file_bitrate / 1000,
track->geo_restricted ? "" : "not "); track.geo_restricted ? "" : "not ");
tag.AddItem(TAG_TITLE, track->title); tag.AddItem(TAG_TITLE, track.title);
tag.AddItem(TAG_ARTIST, track->artist->name); tag.AddItem(TAG_ARTIST, track.artist->name);
tag.AddItem(TAG_TRACK, tracknum); tag.AddItem(TAG_TRACK, tracknum);
tag.AddItem(TAG_ALBUM, track->album); tag.AddItem(TAG_ALBUM, track.album);
tag.AddItem(TAG_DATE, date); tag.AddItem(TAG_DATE, date);
tag.AddItem(TAG_COMMENT, comment); tag.AddItem(TAG_COMMENT, comment);
tag.SetTime(track->length / 1000); tag.SetTime(track.length / 1000);
return tag.CommitNew(); return tag.CommitNew();
} }

View File

@ -45,7 +45,7 @@ struct despotify_session *mpd_despotify_get_session(void);
* @return a pointer to the filled in tags structure * @return a pointer to the filled in tags structure
*/ */
Tag * Tag *
mpd_despotify_tag_from_track(struct ds_track *track); mpd_despotify_tag_from_track(const ds_track &track);
/** /**
* Register a despotify callback. * Register a despotify callback.

View File

@ -52,7 +52,7 @@ class DespotifyInputStream {
ds_track *_track) ds_track *_track)
:base(input_plugin_despotify, uri, mutex, cond), :base(input_plugin_despotify, uri, mutex, cond),
session(_session), track(_track), session(_session), track(_track),
tag(mpd_despotify_tag_from_track(track)), tag(mpd_despotify_tag_from_track(*track)),
len_available(0), eof(false) { len_available(0), eof(false) {
memset(&pcm, 0, sizeof(pcm)); memset(&pcm, 0, sizeof(pcm));

View File

@ -34,7 +34,7 @@ extern "C" {
#include <stdlib.h> #include <stdlib.h>
static void static void
add_song(std::forward_list<SongPointer> &songs, struct ds_track *track) add_song(std::forward_list<SongPointer> &songs, ds_track &track)
{ {
const char *dsp_scheme = despotify_playlist_plugin.schemes[0]; const char *dsp_scheme = despotify_playlist_plugin.schemes[0];
Song *song; Song *song;
@ -45,10 +45,10 @@ add_song(std::forward_list<SongPointer> &songs, struct ds_track *track)
snprintf(uri, sizeof(uri), "%s://", dsp_scheme); snprintf(uri, sizeof(uri), "%s://", dsp_scheme);
ds_uri = uri + strlen(dsp_scheme) + 3; ds_uri = uri + strlen(dsp_scheme) + 3;
if (despotify_track_to_uri(track, ds_uri) != ds_uri) { if (despotify_track_to_uri(&track, ds_uri) != ds_uri) {
/* Should never really fail, but let's be sure */ /* Should never really fail, but let's be sure */
FormatDebug(despotify_domain, FormatDebug(despotify_domain,
"Can't add track %s", track->title); "Can't add track %s", track.title);
return; return;
} }
@ -67,7 +67,7 @@ parse_track(struct despotify_session *session,
if (track == nullptr) if (track == nullptr)
return false; return false;
add_song(songs, track); add_song(songs, *track);
return true; return true;
} }
@ -82,7 +82,7 @@ parse_playlist(struct despotify_session *session,
for (ds_track *track = playlist->tracks; track != nullptr; for (ds_track *track = playlist->tracks; track != nullptr;
track = track->next) track = track->next)
add_song(songs, track); add_song(songs, *track);
return true; return true;
} }