File Coverage

blib/lib/POE/Framework/MIDI/POEMusician.pm
Criterion Covered Total %
statement 27 27 100.0
branch 2 4 50.0
condition n/a
subroutine 9 9 100.0
pod 0 2 0.0
total 38 42 90.4


line stmt bran cond sub pod time code
1             # $Id: POEMusician.pm,v 1.1.1.1 2004/11/22 17:52:11 root Exp $
2              
3             package POE::Framework::MIDI::POEMusician;
4 4     4   206028 use strict;
  4         9  
  4         314  
5 4     4   27 use vars '$VERSION';
  4         8  
  4         188  
6 4     4   23 use base 'POE::Framework::MIDI::Musician';
  4         10  
  4         2731  
7 4     4   37 use POE;
  4         9  
  4         36  
8 4     4   1944 use POE::Framework::MIDI::Musician;
  4         17  
  4         2104  
9              
10             # Changelog:
11             #
12             # 0.02 - Updated to remove calls to deprecated POE::Session->new and replace
13             # them with POE::Session->spawn instead;
14             #
15              
16             $VERSION = 0.2;
17              
18             # session builder - ala dngor
19             sub spawn {
20 6     6 0 60 my $class = shift;
21 6         41 my $self = $class->new(@_);
22            
23 6         32 POE::Session->create(
24             object_states => [ $self => [qw(_start _stop make_a_bar)]] );
25 6         912 my ( $package, $patch, $channel ) = ( $self->{cfg}->{package}, $self->{cfg}->{patch},
26             $self->{cfg}->{channel} );
27            
28 6 50       64 $self->{musician_object} = $package->new( {
29             package => $package,
30             name => $self->{cfg}->{name},
31             patch => $patch,
32             channel => $channel,
33             data => $self->{cfg}->{data}, })
34             or die "couldn't make a new $self->{cfg}->{package}" ;
35 6         48 return undef;
36             }
37              
38             sub _start {
39 6     6   1038 my ( $self, $kernel, $session, $heap ) = @_[OBJECT, KERNEL, SESSION, HEAP];
40 6         40 $kernel->alias_set( $self->name );
41 6 50       229 print $self->name . " has started\n" if $self->{cfg}->{verbose};
42             }
43              
44             sub _stop {
45 6     6   2124 my ( $self, $kernel, $session, $heap ) = @_[OBJECT, KERNEL, SESSION, HEAP];
46             }
47              
48             # trigger the local musician sub-object to make a bar.
49             sub make_a_bar {
50 57     57 0 8979 my ($self, $kernel, $session, $heap, $sender, $barnum ) =
51             @_[OBJECT, KERNEL, SESSION, HEAP, SENDER, ARG0];
52            
53 57         214 $kernel->post( $sender, 'made_bar', $barnum,
54             $self->{musician_object}->make_bar($barnum), $self->{musician_object}
55             );
56             }
57              
58             1;
59              
60             __END__