ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Linux-DVB/eg/extract-si
Revision: 1.1
Committed: Mon Sep 6 06:25:12 2004 UTC (19 years, 9 months ago) by root
Branch: MAIN
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.1 #!/opt/bin/perl
2    
3     use Event;
4     use Linux::DVB;
5    
6     use Data::Dumper;
7    
8     my $fe = new Linux::DVB::Frontend "/dev/dvb/adapter0/frontend0";
9    
10     sub new_demux {
11     new Linux::DVB::Demux "/dev/dvb/adapter0/demux0";
12     }
13    
14     package scanner;
15    
16     sub new {
17     print "new scanner\n";
18     my $self = bless { };
19    
20     $self->{10} = ::new_demux;
21     $self->{10}->sct_filter (18, "", "");
22     $self->{10}->start;
23    
24     $self->{w} = Event->io (fd => $self->{10}->fh, poll => 'r', cb => sub {
25     sysread $self->{10}->fh, my $data, 8192;
26     print PApp::Util::dumpval Linux::DVB::Decode::si $data;
27     });
28     }
29    
30     sub DESTROY {
31     my $self = shift;
32     $self->{w}->cancel;
33     }
34    
35     package main;
36    
37     my $frequency = -1;
38    
39     sub status_changed {
40     if ($fe->parameters->{frequency} != $frequency) {
41     $frequency = $fe->parameters->{frequency};
42     undef $scanner;
43     }
44     if ($fe->status & FE_HAS_LOCK) {
45     $scanner ||= new scanner;
46     } else {
47     undef $scanner;
48     }
49     }
50    
51     Event->io (fd => $fe->{fd}, poll => 'e', cb => sub {
52     my $event = $fe->event;
53     # tuning event, status changes not reported
54     status_changed;
55     });
56    
57     Event->timer (interval => 1, cb => sub {
58     #print $fe->status & FE_HAS_LOCK, "\n";
59     });
60    
61     status_changed;
62    
63     Event::loop;