Switch to unified view

a/doc/upmpdcli-manual.txt b/doc/upmpdcli-manual.txt
...
...
290
290
291
If set, +artUrl+ is a link to a static icon for the radio (displayed as
291
If set, +artUrl+ is a link to a static icon for the radio (displayed as
292
album art).
292
album art).
293
293
294
If set, +artScript+ is the path to an executable script which can retrieve
294
If set, +artScript+ is the path to an executable script which can retrieve
295
the image for the currently playing title.
295
the image URL for the currently playing title.
296
296
297
Some radios (e.g.  link:https://www.radioparadise.com/rp_2.php?#[Radio
297
Some radios (e.g.  link:https://www.radioparadise.com/rp_2.php?#[Radio
298
Paradise]) publish the album art for the currently playing title. The
298
Paradise]) publish the album art for the currently playing title. The
299
details vary. The +artScript+ parameter, if set, should point to an
299
details vary. The +artScript+ parameter, if set, should point to an
300
executable script which prints this dynamic art Uri to stdout. The image
300
executable script which prints this dynamic art Uri to stdout. The image
...
...
353
songs = JSON.parse(response)['steps'].values
353
songs = JSON.parse(response)['steps'].values
354
now = Time.now
354
now = Time.now
355
songs.each do |song|
355
songs.each do |song|
356
  song_end = Time.at(song['end'])
356
  song_end = Time.at(song['end'])
357
  if (song['embedType'] == 'song' && song_end >= now && Time.at(song['start']) <= now)
357
  if (song['embedType'] == 'song' && song_end >= now && Time.at(song['start']) <= now)
358
    title = song['title'] ? song['title'] : ''
359
    artist = song['performers'] ? song['performers'] : song['authors']
358
    metadata = {'title' => song['title'].split.collect{|s| s.capitalize}.join(' '),
360
    metadata = {'title' => title.split.collect{|s| s.capitalize}.join(' '),
359
               'artist' => song['performers'].split.collect{|s| s.capitalize}.join(' '),
361
               'artist' => artist.split.collect{|s| s.capitalize}.join(' '),
360
               'artUrl' => song['visual'],
362
               'artUrl' => song['visual'],
361
               'reload' => (song_end - now + 1).to_i}
363
               'reload' => (song_end - now + 1).to_i}
362
    puts JSON.generate(metadata)
364
    puts JSON.generate(metadata)
363
    break
365
    break
364
  end
366
  end
...
...
393
=== Upmpdcli Songcast Control Point compatibility
395
=== Upmpdcli Songcast Control Point compatibility
394
396
395
Upmpdcli Senders and Receivers can be mixed with Linn ones and controlled
397
Upmpdcli Senders and Receivers can be mixed with Linn ones and controlled
396
from Upplay or Bubble DS (an maybe other control points).
398
from Upplay or Bubble DS (an maybe other control points).
397
399
398
Upmpdcli Senders can't be used by Linn Kazoo (tested with release
400
Neither Linn nor upmpdcli receivers can be linked to an upmpdcli Sender using 
399
4.11.226), the reason unknown, but neither Linn nor upmpdcli receivers can
401
Linn Kazoo (tested with release 4.11.226), the reason is unknown.
400
be linked to an upmpdcli Sender using Kazoo.
401
402
402
Upmpdcli Receivers before release 1.2.14 are not visible in Linn
403
Upmpdcli Receivers before release 1.2.14 are not visible in Linn
403
Kazoo. Later versions can be linked, and stream, from a Linn Sender.
404
Kazoo. Later versions can be linked, and stream, from a Linn Sender.
404
405
405
406
Linn Kazoo can control the playlist in an upmpdcli instance which has been
407
put in Sender mode by another CP (i.e. currently using the PL-To-Sender
408
source). The Lumin IOS app will reset the Source to Playlist when
409
connecting, so it is unusable in this context.
406
410
407
[[UPMPDCLI-RECEIVER]]
411
[[UPMPDCLI-RECEIVER]]
408
=== Upmpdcli Songcast Receiver
412
=== Upmpdcli Songcast Receiver
409
413
410
*sc2mpd* can play the *Songcast* audio stream in two modes:
414
*sc2mpd* can play the *Songcast* audio stream in two modes: