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__ |