This is way cool. It took me nearly an hour to compile the festival stuff, but amazingly it worked without much of any hacking.
I added a little subroutine to pull in playlists from .m3u files (which are basically lists of paths to files). Here's the idea...
my @playlist;
if ($ARGV[0] =~ /\.m3u$/i) {
@playlist = fill_playlist($ARGV[0]);
} elsif( @ARGV ) {
@playlist = @ARGV;
} else {
say_error( "No playlist given. Please select some songs for me to p
+lay!" );
}
sub fill_playlist {
my $playlist = shift;
my @return;
if (-r $playlist) {
open(LIST,"<$playlist") or die "couldn't open $playlist: $!";
while(<LIST>) {
next if /^#/;
chomp;
push @return, $_;
}
close(LIST);
} else {
say_error( "There was a problem accessing this playlist. Pleas
+e select some songs for me to play!" );
exit;
}
return @return;
}