This file is indexed.

/usr/bin/rpld-showplaying is in roarplaylistd-tools 0.1.9-3.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#!/usr/bin/perl

#      Copyright (C) Philipp 'ph3-der-loewe' Schafft - 2010
#
#  This file is part of RoarAudio PlayList Daemon,
#  a playlist management daemon for RoarAudio.
#  See README for details.
#
#  This file is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License version 3
#  as published by the Free Software Foundation.
#
#  RoarAudio is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this software; see the file COPYING.  If not, write to
#  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.

use strict;
use Audio::RPLD;

my $rpld = Audio::RPLD->new();
my $cur;
my $playing;

$rpld->connect_default();
$rpld->is_connected() or die;

$cur     = $rpld->showcur();
$playing = $rpld->showplaying();

$rpld->disconnect();

$playing->{'state'} ||= 'STOPPED';

print 'Playback state: ', ucfirst(lc($playing->{'state'})), ".\n";

exit(0) if $playing->{'state'} eq 'STOPPED';

timedisplay($playing, $cur);


exit(0);

sub timedisplay {
 my ($p, $c) = @_;
 my $barlen = 50;
 my $f = -1;
 my $bar;
 my $ptime;
 my $ltime = 'unknown ';
 local $_;

 if ( $cur->{'length'} ) {
  $ltime = time2lr($cur->{'length'});
  $f = $p->{'time'}->{'s'} / $cur->{'length'};
 }

 if ( $f < 0 ) {
  $bar  = ' <unknown> ';
  $bar .= ' ' x ($barlen - length($bar));
 } else {
  $bar  = '=' x ($f * ($barlen - 1));
  $bar .= '>';
  $bar .= ' ' x ($barlen - length($bar));
 }

 $ptime = time2lr($p->{'time'}->{'s'});

 printf("%s of %s [%s]\n", $ptime, $ltime, $bar);

 printf("num:0    = %s, %s\n", $p->{'longgtn'}, $p->{'shortgtn'});
 printf("UUID:      %s\n", $p->{'uuid'}) if $p->{'uuid'};
 printf("Signal:    %i channels of %i bits at %i Hz\n",
     $p->{'channels'}, $p->{'bits'}, $p->{'rate'});

 foreach (keys(%{$p->{'meta'}})) {
  printf("%-10s %s\n", ucfirst(lc($_)).':', $p->{'meta'}->{$_});
 }
}

sub time2lr {
 my ($s) = @_;
 my $m;
 my $h;

 $h = int($s / 3600);
 $s = $s % 3600;

 $m = int($s / 60);
 $s = $s % 60;

 return sprintf('%.2i:%.2i:%.2i', $h, $m, $s);
}

#ll