static void env_export_song(struct mpd_song *song) { const char *tag; char *envstr; time_t t; char date[DEFAULT_DATE_FORMAT_SIZE] = { 0 }; g_setenv("MPD_SONG_URI", mpd_song_get_uri(song), 1); t = mpd_song_get_last_modified(song); strftime(date, DEFAULT_DATE_FORMAT_SIZE, DEFAULT_DATE_FORMAT, localtime(&t)); g_setenv("MPD_SONG_LAST_MODIFIED", date, 1); envstr = g_strdup_printf("%u", mpd_song_get_duration(song)); g_setenv("MPD_SONG_DURATION", envstr, 1); g_free(envstr); envstr = g_strdup_printf("%u", mpd_song_get_pos(song)); g_setenv("MPD_SONG_POS", envstr, 1); g_free(envstr); envstr = g_strdup_printf("%u", mpd_song_get_id(song)); g_setenv("MPD_SONG_ID", envstr, 1); g_free(envstr); /* Export tags. FIXME: For now we just export the first tag value to * the environment. */ if ((tag = mpd_song_get_tag(song, MPD_TAG_ARTIST, 0)) != NULL) g_setenv("MPD_SONG_TAG_ARTIST", tag, 1); if ((tag = mpd_song_get_tag(song, MPD_TAG_ALBUM, 0)) != NULL) g_setenv("MPD_SONG_TAG_ALBUM", tag, 1); if ((tag = mpd_song_get_tag(song, MPD_TAG_ALBUM_ARTIST, 0)) != NULL) g_setenv("MPD_SONG_TAG_ALBUM_ARTIST", tag, 1); if ((tag = mpd_song_get_tag(song, MPD_TAG_TITLE, 0)) != NULL) g_setenv("MPD_SONG_TAG_TITLE", tag, 1); if ((tag = mpd_song_get_tag(song, MPD_TAG_TRACK, 0)) != NULL) g_setenv("MPD_SONG_TAG_TRACK", tag, 1); if ((tag = mpd_song_get_tag(song, MPD_TAG_NAME, 0)) != NULL) g_setenv("MPD_SONG_TAG_NAME", tag, 1); if ((tag = mpd_song_get_tag(song, MPD_TAG_GENRE, 0)) != NULL) g_setenv("MPD_SONG_TAG_GENRE", tag, 1); if ((tag = mpd_song_get_tag(song, MPD_TAG_DATE, 0)) != NULL) g_setenv("MPD_SONG_TAG_DATE", tag, 1); if ((tag = mpd_song_get_tag(song, MPD_TAG_COMPOSER, 0)) != NULL) g_setenv("MPD_SONG_TAG_COMPOSER", tag, 1); if ((tag = mpd_song_get_tag(song, MPD_TAG_PERFORMER, 0)) != NULL) g_setenv("MPD_SONG_TAG_PERFORMER", tag, 1); if ((tag = mpd_song_get_tag(song, MPD_TAG_COMMENT, 0)) != NULL) g_setenv("MPD_SONG_TAG_COMMENT", tag, 1); if ((tag = mpd_song_get_tag(song, MPD_TAG_DISC, 0)) != NULL) g_setenv("MPD_SONG_TAG_DISC", tag, 1); if ((tag = mpd_song_get_tag(song, MPD_TAG_MUSICBRAINZ_ARTISTID, 0)) != NULL) g_setenv("MPD_SONG_TAG_MUSICBRAINZ_ARTISTID", tag, 1); if ((tag = mpd_song_get_tag(song, MPD_TAG_MUSICBRAINZ_ALBUMID, 0)) != NULL) g_setenv("MPD_SONG_TAG_MUSICBRAINZ_ALBUMID", tag, 1); if ((tag = mpd_song_get_tag(song, MPD_TAG_MUSICBRAINZ_ALBUMARTISTID, 0)) != NULL) g_setenv("MPD_SONG_TAG_MUSICBRAINZ_ALBUMARTISTID", tag, 1); if ((tag = mpd_song_get_tag(song, MPD_TAG_MUSICBRAINZ_TRACKID, 0)) != NULL) g_setenv("MPD_SONG_TAG_MUSICBRAINZ_TRACKID", tag, 1); }
time_t Song::getMTime() const { assert(m_song); return mpd_song_get_last_modified(m_song.get()); }