Fixes for queue display.
[adorno.git] / www / queue.php
blob9d96c33e7931377adc3325f7ea8c9eb129d43b89
1 <?php
2 include('always.php');
4 header( 'Content-type: text/plain');
5 header( 'Expires: 10s');
7 function track_link( $trk, $link_title, $row_class = "" ) {
8 $track_link_url = sprintf( "?l=%s&a=%s&t=%s", urlencode($trk->album),
9 urlencode($trk->artist), urlencode($trk->title) );
10 $safe_title = htmlspecialchars($link_title);
11 $duration = preg_replace( "/^[0:]{1,4}/", "", $trk->duration );
12 $link = <<<EOHTML
13 <tr class="track$row_class">
14 <td class="track$row_class">
15 <a class="track$row_class" href="artist.php$track_link_url" title="$trk->path_name">$safe_title</a>
16 </td>
17 <td class="track$row_class">$duration</td>
18 <th class="track$row_class">
19 <a class="alphabetica" href="edit_track.php$track_link_url" title="Edit Track Info">E</a>
20 </th>
21 </tr>
23 EOHTML;
25 return $link;
29 $album_artist_fmt = <<<EOHTML
31 <tr class="q_headline">
32 <td class="q_cell" colspan="4">
34 </td>
35 </tr>
36 EOHTML;
38 $artist_link_fmt = '<a href="/?type=artist&a=%s"><span class="q_artist">%s</span></a>';
39 $album_link_fmt = '<a href="/?type=album&l=%s"><span class="q_album">%s</span></a>';
41 $track_fmt = <<<EOHTML
43 <tr class="q_row r%d">
44 <td class="q_cell" title="Position in queue">%d</td>
45 <td class="q_title" title="Track number and name">%d - %s</td>
46 <td class="q_cell" title="When this track will start playing">%s</td>
47 <td class="q_cell"><a href="/?i=%d&d=up"><img alt="up" src="/img/up.png"></a> <a href="/?i=%d&d=dn"><img alt="down" src="/img/down.png"></a></td>
48 </tr>
49 EOHTML;
51 $current_track = current_track();
52 $tracks = current_queue();
54 // print_r( $tracks );
55 // print_r($current_track);
57 $last_artist = "";
58 $last_album = "";
59 $when = $current_track->finishing;
60 foreach( $tracks AS $k => $v ) {
61 if ( $k == 0 ) $when -= $v->dur_secs;
62 $escape_artist = urlencode($v->artist);
63 $escape_album = urlencode($v->album);
66 if ( $escape_artist != $last_artist || $escape_album != $last_album ) {
67 if ( $escape_artist != $last_artist && $escape_album != $last_album ) {
68 $links = sprintf( $album_link_fmt, $escape_album, $v->album);
69 $links .= "/" . sprintf( $artist_link_fmt, $escape_artist, $v->artist );
71 else if ( $escape_artist != $last_artist ) {
72 $links = sprintf( $artist_link_fmt, $escape_artist, $v->artist );
74 else if ( $escape_album != $last_album ) {
75 $links = sprintf( $album_link_fmt, $escape_album, $v->album);
77 printf( $album_artist_fmt, $links );
78 $last_artist = $escape_artist;
79 $last_album = $escape_album;
81 printf( $track_fmt, ($k %2), $k, $v->tracknum,
82 $v->title, date('H:i:s', $when ), $k, $k );
83 $when += $v->dur_secs;