X-Git-Url: http://git.ieval.ro/?p=app-xmms2-notifier.git;a=blobdiff_plain;f=lib%2FApp%2FXMMS2%2FNotifier.pm;h=f61a74aee26ddb10934cc2e0ddd329d27a691b3f;hp=430e9a65dbaf08bf85730c0f0dca9232458dfdc7;hb=f4385cf2da40d688c5139382567817070f5fe70f;hpb=d53a283b8882012999e53c693871acf64e8fb7ef diff --git a/lib/App/XMMS2/Notifier.pm b/lib/App/XMMS2/Notifier.pm index 430e9a6..f61a74a 100644 --- a/lib/App/XMMS2/Notifier.pm +++ b/lib/App/XMMS2/Notifier.pm @@ -1,26 +1,17 @@ -package App::XMMS2::Notifier 0.001; +package App::XMMS2::Notifier; use v5.14; +use strict; use warnings; +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(''); @@ -29,41 +20,41 @@ $notify->set_timeout(3000); ################################################## sub notify_libnotify{ - $notify->update($_[0]); - $notify->show; + $notify->update($_[0]); + $notify->show; } sub notify{ - my $id=$xmms->playback_current_id->wait->value or return; - my $minfo=$xmms->medialib_get_info($id)->wait->value; + my $id=$xmms->playback_current_id->wait->value or return; + my $minfo=$xmms->medialib_get_info($id)->wait->value; - my %metadata = map { $_ => exists $minfo->{$_} ? (values $minfo->{$_})[0] : undef } CONVERSION_SPECIFIERS; - my $str=$format; - $str =~ s/\$$_/$metadata{$_}/g for keys %metadata; + 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 { - notify; - $xmms->broadcast_playback_current_id->notifier_set(\&on_playback_current_id); + notify; + $xmms->broadcast_playback_current_id->notifier_set(\&on_playback_current_id); } sub on_playback_status { - notify if $xmms->playback_status->wait->value == 1; # 1 means playing, 2 means paused - $xmms->broadcast_playback_status->notifier_set(\&on_playback_status); + notify if $xmms->playback_status->wait->value == 1; # 1 means playing, 2 means paused + $xmms->broadcast_playback_status->notifier_set(\&on_playback_status); } sub run { - while(1){ - last if ($xmms->connect); - sleep 1 - } - - $xmms->broadcast_playback_current_id->notifier_set(\&on_playback_current_id); - $xmms->broadcast_playback_status->notifier_set(\&on_playback_status); - $xmms->loop + $format = $_[0]; + while (1) { + last if ($xmms->connect); + sleep 1 + } + + $xmms->broadcast_playback_current_id->notifier_set(\&on_playback_current_id); + $xmms->broadcast_playback_status->notifier_set(\&on_playback_status); + $xmms->loop } 1