From: Tilman Sauerbeck Date: Sat, 7 Oct 2006 19:15:11 +0000 (+0200) Subject: The MSG_ID_SET_SONGNAME message now handles streams. X-Git-Url: http://git.code-monkey.de/?p=euphoria.git;a=commitdiff_plain;h=dd2beb9c6c0688714643fd0c08fecc17a1e32a74 The MSG_ID_SET_SONGNAME message now handles streams. If the argument to MSG_ID_SET_SONGNAME is a single string, treat it as the song name (or stream channel name). --- diff --git a/bin/euphoria b/bin/euphoria index 707d9e0..5726f6d 100644 --- a/bin/euphoria +++ b/bin/euphoria @@ -326,12 +326,7 @@ private def ui_fill_track_info(item) unless item.nil? - if item.channel.nil? - msg = Edje::Message.new(0, item.artist, item.title, item.album) - else - msg = Edje::Message.new(0, "", item.title, "") - end - @edje.send_message(msg) + @edje.send_message(item.track_info_message) end end diff --git a/data/themes/iio/iio.edc b/data/themes/iio/iio.edc index 31862cd..9e46f7c 100644 --- a/data/themes/iio/iio.edc +++ b/data/themes/iio/iio.edc @@ -31,19 +31,30 @@ { switch (id) { case MSG_ID_SET_SONGNAME: { - new buf[128]; + new buf[128], args_left; - if (type != MSG_STRING_SET || numargs () < 5) - return; + args_left = numargs () - 2; - getsarg (2, buf, 128); - set_text (PART:"artist_name", buf); + /* if the one argument is a string, the current song + * is a stream, and the argument is the stream's name + * (channel name). + */ + if (type == MSG_STRING && args_left == 1) { + getsarg (2, buf, 128); + set_text (PART:"artist_name", buf); - getsarg (3, buf, 128); - set_text (PART:"song_name", buf); + set_text (PART:"song_name", ""); + set_text (PART:"album_name", ""); + } else if (type == MSG_STRING_SET && args_left > 1) { + getsarg (2, buf, 128); + set_text (PART:"artist_name", buf); - getsarg (4, buf, 128); - set_text (PART:"album_name", buf); + getsarg (3, buf, 128); + set_text (PART:"song_name", buf); + + getsarg (4, buf, 128); + set_text (PART:"album_name", buf); + } } } } diff --git a/data/themes/winter/groups/euphoria.edc b/data/themes/winter/groups/euphoria.edc index 3a03583..776562c 100644 --- a/data/themes/winter/groups/euphoria.edc +++ b/data/themes/winter/groups/euphoria.edc @@ -12,19 +12,30 @@ { switch (id) { case MSG_ID_SET_SONGNAME: { - new buf[128]; + new buf[128], args_left; - if (type != MSG_STRING_SET || numargs () < 5) - return; + args_left = numargs () - 2; - getsarg (2, buf, 128); - set_text (PART:"artist_name", buf); + /* if the one argument is a string, the current song + * is a stream, and the argument is the stream's name + * (channel name). + */ + if (type == MSG_STRING && args_left == 1) { + getsarg (2, buf, 128); + set_text (PART:"artist_name", buf); - getsarg (3, buf, 128); - set_text (PART:"song_name", buf); + set_text (PART:"song_name", ""); + set_text (PART:"album_name", ""); + } else if (type == MSG_STRING_SET && args_left > 1) { + getsarg (2, buf, 128); + set_text (PART:"artist_name", buf); - getsarg (4, buf, 128); - set_text (PART:"album_name", buf); + getsarg (3, buf, 128); + set_text (PART:"song_name", buf); + + getsarg (4, buf, 128); + set_text (PART:"album_name", buf); + } } } } diff --git a/lib/playlist_item.rb b/lib/playlist_item.rb index f3d397f..a4ed989 100644 --- a/lib/playlist_item.rb +++ b/lib/playlist_item.rb @@ -116,6 +116,14 @@ class PlaylistItem set_parts_text unless @edje.nil? end + def track_info_message + unless @props[:channel].nil? + Edje::Message.new(0, channel) + else + Edje::Message.new(0, artist, title, album) + end + end + private def set_parts_text tmp = (duration == -1) ? "" :