X-Git-Url: http://git.ieval.ro/?p=app-xmms2-notifier.git;a=blobdiff_plain;f=lib%2FApp%2FXMMS2%2FNotifier.pm;h=3ce6645126aa158621a51fca498506476e8dd579;hp=b0a2f4458ee8a249b82599b5d3b6bab83dc21d52;hb=ca539a7a1fefec686939946f4c81c9769a15430b;hpb=b51c611467177f8d0e23ae8f871ec11e88392424 diff --git a/lib/App/XMMS2/Notifier.pm b/lib/App/XMMS2/Notifier.pm index b0a2f44..3ce6645 100644 --- a/lib/App/XMMS2/Notifier.pm +++ b/lib/App/XMMS2/Notifier.pm @@ -7,22 +7,11 @@ our $VERSION = 0.001001; 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(''); @@ -36,15 +25,17 @@ sub notify_libnotify{ } 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 $str=$format; $str =~ s/\$$_/$metadata{$_}/g for keys %metadata; - notify_libnotify $str if $use_libnotify; - # notify_libpurple $str if $use_libpurple; + notify_libnotify $str } sub on_playback_current_id { @@ -58,6 +49,7 @@ sub on_playback_status { } sub run { + $format = $_[0]; while (1) { last if ($xmms->connect); sleep 1