summaryrefslogtreecommitdiff
path: root/mplength
blob: 621891bdbdefc9f864b36efb7c28ca73aac38a0f (plain)
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
#!/usr/bin/perl
use strict;
use warnings;
use Audio::MPD q{0.19.0};

=head1 NAME

mplength - calculates length of mpd playlist

=head1 SYNOPSIS

mplength [host]

=head1 DESCRIPTION

B<mplength> calculates the total length of the currently selected
playlist in mpd. The length is output to standard output in mm:ss format.

=head1 SEE ALSO

mpd(1)

=head1 AUTHOR

Copyright 2009 Joey Hess <joey@kitenet.net>

Licensed under the GNU GPL version 2 or higher.

http://kitenet.net/~joey/code/mpdtoys

=cut

if (@ARGV) {
	$ENV{MPD_HOST}=shift;
}
my $mpd=Audio::MPD->new(conntype => "reuse");
my $pl=$mpd->playlist;
my @list=$pl->as_items;
my $secs=0;
foreach my $item (@list) {
	$secs+=$item->time;
}
my $mins=int($secs/60);
printf "%i:%02i\n", $mins, ($secs-$mins*60);