ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/StableTV/lib/StableTV/Source.pm
Revision: 1.1
Committed: Tue Nov 1 17:58:57 2005 UTC (20 years, 7 months ago) by root
Branch: MAIN
CVS Tags: HEAD
Log Message:
*** empty log message ***

File Contents

# Content
1 package StableTV::Source;
2
3 sub new {
4 my $class = shift;
5
6 my $self = bless { @_ }, $class;
7
8 $self->init;
9
10 $self
11 }
12
13 sub init {
14 my ($self) = @_;
15 }
16
17 sub activate {
18 my ($self) = @_;
19
20 return if $self->{active}++;
21
22 1
23 }
24
25 sub deactivate {
26 my ($self) = @_;
27
28 $_->cancel for values %{ delete $self->{w} || {} };
29
30 delete $self->{active};
31 }
32
33 sub start {
34 my ($self, $state, @args) = @_;
35
36 $self->stop;
37
38 $self->activate or return;
39
40 $self->{state} = $state;
41
42 my $method = "start_$self->{state}";
43
44 $self->$method (@args)
45 }
46
47 sub stop {
48 my ($self) = @_;
49
50 if ($self->{state}) {
51 my $method = "stop_$self->{state}";
52 $self->$method ();
53 }
54 }
55
56 1