Create a new base object for the photo classes which contains common code.
[picture-display.git] / lib / Display / Plugins / Photo / Directory.pm
1 package Display::Plugins::Photo::Directory;
2
3 use base ('Display::Plugins::Photo');
4 use Clutter;
5 use POE::Session;
6 use FindBin qw/$Bin/;
7
8 my $directory = "$Bin/test_images";
9
10 sub new {
11   my $proto = shift;
12   my $class = ref($proto) || $proto;
13
14   my $self = $class->SUPER::new(@_);
15
16   bless ($self, $class);
17   $self->{'kernel'}->yield('find_photo');
18   return $self;
19 }
20
21 sub find_photo {
22   my $self = shift;
23   print "Trying to find a photo\n";
24
25   if (opendir(DIR, $directory)) {
26     my @files = readdir(DIR);
27     closedir DIR;
28
29 print "Trying a file.\n";
30     $self->{'kernel'}->yield('display_photo', join("/", $directory, $files[rand @files]));
31   } else {
32     warn "Failed to open $directory for reading: $!\n";
33   }
34 }
35
36 1;