package App::XMMS2::Notifier;
-use v5.14;
+use 5.014000;
use strict;
use warnings;
-our $VERSION = 0.001001;
+our $VERSION = 0.001002;
use Audio::XMMSClient 0.03;
use Gtk2::Notify 0.05 -init,'xmms2-notifyd';
-use Getopt::Long;
-
use constant CONVERSION_SPECIFIERS => qw/bitrate date sample_format url id channels samplerate tracknr genre artist album title/;
##################################################
-my $use_libnotify = 1;
-my $use_libpurple;
-my $format = '$artist - $title';
-
-GetOptions (
- "libnotify!" => \$use_libnotify,
- "libpurple!" => \$use_libpurple,
- "format=s" => \$format,
-);
-
+my $format;
my $xmms = Audio::XMMSClient->new('xmms2-notifyd');
my $notify = Gtk2::Notify->new('');
}
sub notify{
- my $id=$xmms->playback_current_id->wait->value or return;
- my $minfo=$xmms->medialib_get_info($id)->wait->value;
+ my ($id, $minfo);
+ eval {
+ $id=$xmms->playback_current_id->wait->value or return;
+ $minfo=$xmms->medialib_get_info($id)->wait->value;
+ } or return;
- my %metadata = map { $_ => exists $minfo->{$_} ? (values $minfo->{$_})[0] : undef } CONVERSION_SPECIFIERS;
+ my %metadata = map { $_ => exists $minfo->{$_} ? (values %{$minfo->{$_}})[0] : undef } CONVERSION_SPECIFIERS;
my $str=$format;
- $str =~ s/\$$_/$metadata{$_}/g for keys %metadata;
+ $str =~ s/\$$_/$metadata{$_}/gs for keys %metadata;
- notify_libnotify $str if $use_libnotify;
- # notify_libpurple $str if $use_libpurple;
+ notify_libnotify $str
}
sub on_playback_current_id {
}
sub run {
+ $format = $_[0];
while (1) {
last if ($xmms->connect);
sleep 1
$xmms->loop
}
-1
-
+1;
__END__
=head1 NAME
=head1 COPYRIGHT AND LICENSE
-Copyright (C) 2013 by Marius Gavrilescu
+Copyright (C) 2013-2016 by Marius Gavrilescu
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.14.2 or,