#!/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);
