summaryrefslogtreecommitdiff
path: root/lib/App/XScreenSaver
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2021-05-01 11:44:48 +0100
committerdakkar <dakkar@thenautilus.net>2021-05-01 11:44:48 +0100
commitb03b96701fa754415dd4b29f7b6141fa8dc9708b (patch)
tree6cdf5ecdfebb2d59801ccbc817ba042f80966d2f /lib/App/XScreenSaver
parentv1.0.1 (diff)
parentDzil-build release 1.0.0 (from 6bba3a8 on master) (diff)
downloadxscreensaver-dbus-b03b96701fa754415dd4b29f7b6141fa8dc9708b.tar.gz
xscreensaver-dbus-b03b96701fa754415dd4b29f7b6141fa8dc9708b.tar.bz2
xscreensaver-dbus-b03b96701fa754415dd4b29f7b6141fa8dc9708b.zip
Dzil-build release 1.0.1 (from 1cf4211 on master)v1.0.1
Diffstat (limited to 'lib/App/XScreenSaver')
-rw-r--r--lib/App/XScreenSaver/DBus.pm91
-rw-r--r--lib/App/XScreenSaver/DBus/InhibitSleep.pm110
-rw-r--r--lib/App/XScreenSaver/DBus/Saver.pm144
-rw-r--r--lib/App/XScreenSaver/DBus/SaverProxy.pm45
4 files changed, 247 insertions, 143 deletions
diff --git a/lib/App/XScreenSaver/DBus.pm b/lib/App/XScreenSaver/DBus.pm
index 2ab384a..c302d9a 100644
--- a/lib/App/XScreenSaver/DBus.pm
+++ b/lib/App/XScreenSaver/DBus.pm
@@ -6,41 +6,21 @@ use Net::DBus::Reactor;
use Log::Any;
use App::XScreenSaver::DBus::InhibitSleep;
use App::XScreenSaver::DBus::Saver;
-# VERSION
+our $VERSION = '1.0.1'; # VERSION
# ABSTRACT: main application class
-=head1 SYNOPSIS
-
- use App::XScreenSaver::DBus;
- App::XScreenSaver::DBus->new->run;
-
-=attr C<reactor>
-
-the event loop
-
-=cut
has reactor => (
is => 'lazy',
builder => sub { Net::DBus::Reactor->main() },
);
-=attr C<inhibit_sleep>
-
-instance of L<< C<App::XScreenSaver::DBus::InhibitSleep> >>.
-
-=cut
has inhibit_sleep => (
is => 'lazy',
builder => sub { App::XScreenSaver::DBus::InhibitSleep->new() },
);
-=attr C<saver>
-
-instance of L<< C<App::XScreenSaver::DBus::Saver> >>.
-
-=cut
has saver => (
is => 'lazy',
@@ -49,20 +29,9 @@ has saver => (
},
);
-=attr C<log>
-
-a logger
-
-=cut
has log => ( is => 'lazy', builder => sub { Log::Any->get_logger } );
-=method C<run>
-
-registers the DBus services and runs the event loop; this method does
-not return
-
-=cut
sub run($self) {
$self->inhibit_sleep->start();
@@ -71,3 +40,61 @@ sub run($self) {
}
1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+App::XScreenSaver::DBus - main application class
+
+=head1 VERSION
+
+version 1.0.1
+
+=head1 SYNOPSIS
+
+ use App::XScreenSaver::DBus;
+ App::XScreenSaver::DBus->new->run;
+
+=head1 ATTRIBUTES
+
+=head2 C<reactor>
+
+the event loop
+
+=head2 C<inhibit_sleep>
+
+instance of L<< C<App::XScreenSaver::DBus::InhibitSleep> >>.
+
+=head2 C<saver>
+
+instance of L<< C<App::XScreenSaver::DBus::Saver> >>.
+
+=head2 C<log>
+
+a logger
+
+=head1 METHODS
+
+=head2 C<run>
+
+registers the DBus services and runs the event loop; this method does
+not return
+
+=head1 AUTHOR
+
+Gianni Ceccarelli <dakkar@thenautilus.net>
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is Copyright (c) 2021 by Gianni Ceccarelli <dakkar@thenautilus.net>.
+
+This is free software, licensed under:
+
+ The GNU Affero General Public License, Version 3, November 2007
+
+=cut
diff --git a/lib/App/XScreenSaver/DBus/InhibitSleep.pm b/lib/App/XScreenSaver/DBus/InhibitSleep.pm
index 226facf..6a89709 100644
--- a/lib/App/XScreenSaver/DBus/InhibitSleep.pm
+++ b/lib/App/XScreenSaver/DBus/InhibitSleep.pm
@@ -6,71 +6,30 @@ use curry;
use Net::DBus;
use IPC::Run;
use Log::Any;
-# VERSION
+our $VERSION = '1.0.1'; # VERSION
# ABSTRACT: implements the logind "inhibitor locks" protocol
-=head1 SYNOPSIS
-
- use Net::DBus::Reactor;
- use App::XScreenSaver::DBus::InhibitSleep;
- my $is = App::XScreenSaver::DBus::InhibitSleep->new;
- $is->start;
-
- Net::DBus::Reactor->new->run;
-
-=attr C<bus>
-
-the DBus system bus
-
-=cut
has bus => ( is => 'lazy', builder => sub { Net::DBus->system() } );
-=attr C<logind_srv>
-
-the (e)logind DBus service
-
-=cut
has logind_srv => (
is => 'lazy',
builder => sub { shift->bus->get_service('org.freedesktop.login1') },
);
-=attr C<logind_obj>
-
-the (e)logind DBus object
-
-=cut
has logind_obj => (
is => 'lazy',
builder => sub { shift->logind_srv->get_object('/org/freedesktop/login1') },
);
-=attr C<inhibit_fd>
-
-the file descriptor that logind gives us when we ask for a lock; we
-close it to release the lock
-
-=cut
has inhibit_fd => ( is => 'rwp' );
-=attr C<log>
-
-a logger
-
-=cut
has log => ( is => 'lazy', builder => sub { Log::Any->get_logger } );
-=method C<start>
-
-starts listening to the C<PrepareForSleep> signal from (e)logind, and
-takes the lock
-
-=cut
sub start($self) {
$self->logind_obj->connect_to_signal(
@@ -121,3 +80,70 @@ sub _xscreensaver_command($self,$command) {
}
1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+App::XScreenSaver::DBus::InhibitSleep - implements the logind "inhibitor locks" protocol
+
+=head1 VERSION
+
+version 1.0.1
+
+=head1 SYNOPSIS
+
+ use Net::DBus::Reactor;
+ use App::XScreenSaver::DBus::InhibitSleep;
+ my $is = App::XScreenSaver::DBus::InhibitSleep->new;
+ $is->start;
+
+ Net::DBus::Reactor->new->run;
+
+=head1 ATTRIBUTES
+
+=head2 C<bus>
+
+the DBus system bus
+
+=head2 C<logind_srv>
+
+the (e)logind DBus service
+
+=head2 C<logind_obj>
+
+the (e)logind DBus object
+
+=head2 C<inhibit_fd>
+
+the file descriptor that logind gives us when we ask for a lock; we
+close it to release the lock
+
+=head2 C<log>
+
+a logger
+
+=head1 METHODS
+
+=head2 C<start>
+
+starts listening to the C<PrepareForSleep> signal from (e)logind, and
+takes the lock
+
+=head1 AUTHOR
+
+Gianni Ceccarelli <dakkar@thenautilus.net>
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is Copyright (c) 2021 by Gianni Ceccarelli <dakkar@thenautilus.net>.
+
+This is free software, licensed under:
+
+ The GNU Affero General Public License, Version 3, November 2007
+
+=cut
diff --git a/lib/App/XScreenSaver/DBus/Saver.pm b/lib/App/XScreenSaver/DBus/Saver.pm
index 6c3e761..ee2bf46 100644
--- a/lib/App/XScreenSaver/DBus/Saver.pm
+++ b/lib/App/XScreenSaver/DBus/Saver.pm
@@ -7,63 +7,27 @@ use Log::Any;
use Try::Tiny;
use IPC::Run;
use App::XScreenSaver::DBus::SaverProxy;
-# VERSION
+our $VERSION = '1.0.1'; # VERSION
# ABSTRACT: implements the "idle inhibition" protocol
-=head1 SYNOPSIS
-
- use Net::DBus::Reactor;
- use App::XScreenSaver::DBus::InhibitSleep;
-
- my $reactor = Net::DBus::Reactor->new;
- my $s = App::XScreenSaver::DBus::Saver->new(reactor => $reactor);
- $s->start;
-
- $reactor->run;
-
-=attr C<reactor>
-
-the event loop
-
-=cut
has reactor => ( is => 'ro', required => 1 );
-=attr C<bus>
-
-the DBus session bus
-
-=cut
has bus => ( is => 'lazy', builder => sub { Net::DBus->session() } );
-=attr C<dbus_srv>
-
-the DBus manager DBus service
-
-=cut
has dbus_srv => (
is => 'lazy',
builder => sub { shift->bus->get_service('org.freedesktop.DBus') },
);
-=attr C<dbus_obj>
-
-the DBus manager DBus object
-
-=cut
has dbus_obj => (
is => 'lazy',
builder => sub { shift->dbus_srv->get_object('/org/freedesktop/DBus') },
);
-=attr C<service>
-
-the DBus service we export
-
-=cut
has service => (
is => 'lazy',
@@ -73,25 +37,12 @@ has service => (
},
);
-=attr C<paths>
-
-the paths at which we export our DBus object
-
-there's two of them because different applications expect this object
-at different paths
-
-=cut
has paths => (
is => 'ro',
default => sub { [qw(/ScreenSaver /org/freedesktop/ScreenSaver)] },
);
-=attr C<log>
-
-a logger
-
-=cut
has log => ( is => 'lazy', builder => sub { Log::Any->get_logger } );
@@ -99,16 +50,6 @@ has _impls => ( is => 'rw' );
has _prod_id => ( is => 'rw' );
has _inhibits => ( is => 'rw', default => sub { +{} } );
-=method C<start>
-
-Exports our object to the session bus, and starts listening for
-C<NameOwnerChanged> events.
-
-Those events are emitted when a client attaches or detaches from the
-bus. A client may die before releasing the idle inhibition, so we want
-to be notified when that happens, and release that inhibition.
-
-=cut
sub start($self) {
my $inhibit_cb = $self->curry::weak::_inhibit;
@@ -218,3 +159,86 @@ sub _prod_screensaver($self) {
}
1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+App::XScreenSaver::DBus::Saver - implements the "idle inhibition" protocol
+
+=head1 VERSION
+
+version 1.0.1
+
+=head1 SYNOPSIS
+
+ use Net::DBus::Reactor;
+ use App::XScreenSaver::DBus::InhibitSleep;
+
+ my $reactor = Net::DBus::Reactor->new;
+ my $s = App::XScreenSaver::DBus::Saver->new(reactor => $reactor);
+ $s->start;
+
+ $reactor->run;
+
+=head1 ATTRIBUTES
+
+=head2 C<reactor>
+
+the event loop
+
+=head2 C<bus>
+
+the DBus session bus
+
+=head2 C<dbus_srv>
+
+the DBus manager DBus service
+
+=head2 C<dbus_obj>
+
+the DBus manager DBus object
+
+=head2 C<service>
+
+the DBus service we export
+
+=head2 C<paths>
+
+the paths at which we export our DBus object
+
+there's two of them because different applications expect this object
+at different paths
+
+=head2 C<log>
+
+a logger
+
+=head1 METHODS
+
+=head2 C<start>
+
+Exports our object to the session bus, and starts listening for
+C<NameOwnerChanged> events.
+
+Those events are emitted when a client attaches or detaches from the
+bus. A client may die before releasing the idle inhibition, so we want
+to be notified when that happens, and release that inhibition.
+
+=head1 AUTHOR
+
+Gianni Ceccarelli <dakkar@thenautilus.net>
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is Copyright (c) 2021 by Gianni Ceccarelli <dakkar@thenautilus.net>.
+
+This is free software, licensed under:
+
+ The GNU Affero General Public License, Version 3, November 2007
+
+=cut
diff --git a/lib/App/XScreenSaver/DBus/SaverProxy.pm b/lib/App/XScreenSaver/DBus/SaverProxy.pm
index 858dcba..1383048 100644
--- a/lib/App/XScreenSaver/DBus/SaverProxy.pm
+++ b/lib/App/XScreenSaver/DBus/SaverProxy.pm
@@ -6,17 +6,9 @@ use experimental qw(signatures postderef);
# this is the interface name
use Net::DBus::Exporter qw(org.freedesktop.ScreenSaver);
use parent 'Net::DBus::Object';
-# VERSION
+our $VERSION = '1.0.1'; # VERSION
# ABSTRACT: proxy dbus object
-=head1 DESCRIPTION
-
-This is functionally the same as L<< C<Net::DBus::ObjectProxy> >>, but
-specialised for this application, and with a hack to allow L<<
-C<App::XScreenSaver::DBus::Saver> >> to access the sender of the
-message.
-
-=cut
dbus_method('Inhibit',['string','string'],['uint32']);
dbus_method('UnInhibit',['uint32'],[]);
@@ -44,3 +36,38 @@ sub UnInhibit($self,$cookie) {
}
1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+App::XScreenSaver::DBus::SaverProxy - proxy dbus object
+
+=head1 VERSION
+
+version 1.0.1
+
+=head1 DESCRIPTION
+
+This is functionally the same as L<< C<Net::DBus::ObjectProxy> >>, but
+specialised for this application, and with a hack to allow L<<
+C<App::XScreenSaver::DBus::Saver> >> to access the sender of the
+message.
+
+=head1 AUTHOR
+
+Gianni Ceccarelli <dakkar@thenautilus.net>
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is Copyright (c) 2021 by Gianni Ceccarelli <dakkar@thenautilus.net>.
+
+This is free software, licensed under:
+
+ The GNU Affero General Public License, Version 3, November 2007
+
+=cut