2 use Glib qw/TRUE FALSE/;
8 print STDERR "$error\n";
12 sub process_one_packet
14 $pos[$idx++]=tell(STDIN);
16 if (!defined($match)) {
17 syswrite(STDOUT,$_) or exit_with_error $!;
22 my($dummy,$time,$dummy)=split(/,/,$_);
23 $entry->set_text($time);
24 if (!defined($match)) {
27 if (substr($time,0,length($match)) eq $match) {
29 syswrite(STDOUT,$buffer) or exit_with_error $!;
37 sub process_one_packet_at_idx
40 seek(STDIN,$pos[$idx],SEEK_SET);
53 process_one_packet_at_idx($idx-2);
60 my ($interval,$dir)=@_;
63 Glib::Source->remove($timeout);
67 $timeout=Glib::Timeout->add ($interval, \&forward);
71 $timeout=Glib::Timeout->add ($interval, \&backward);
77 $match=$entry->get_text();
78 seek(STDIN,0,SEEK_SET);
82 $oldfh = select(STDOUT); $| = 1; select($oldfh);
83 $window = Gtk2::Window->new('toplevel');
84 $box = Gtk2::HBox->new();
86 $button = Gtk2::Button->new("Stop");
87 $button->signal_connect(clicked => sub { add_timeout(0,0) });
89 $button = Gtk2::Button->new("100 Hz");
90 $button->signal_connect(clicked => sub { add_timeout(10,-1); });
92 $button = Gtk2::Button->new("10 Hz");
93 $button->signal_connect(clicked => sub { add_timeout(100,-1); });
95 $button = Gtk2::Button->new("4 Hz");
96 $button->signal_connect(clicked => sub { add_timeout(250,-1); });
98 $button = Gtk2::Button->new("1 Hz");
99 $button->signal_connect(clicked => sub { add_timeout(1000,-1); });
101 $button = Gtk2::Button->new("-");
102 $button->signal_connect(clicked => sub { add_timeout(0,0) ; backward() });
104 $entry = Gtk2::Entry->new();
105 $entry->set_text("???");
106 $entry->signal_connect(activate => \&entry);
108 $button = Gtk2::Button->new("+");
109 $button->signal_connect(clicked => sub { add_timeout(0,0) ; forward() });
111 $button = Gtk2::Button->new("1 Hz");
112 $button->signal_connect(clicked => sub { add_timeout(1000,1); });
114 $button = Gtk2::Button->new("4 Hz");
115 $button->signal_connect(clicked => sub { add_timeout(250,1); });
117 $button = Gtk2::Button->new("10 Hz");
118 $button->signal_connect(clicked => sub { add_timeout(100,1); });
120 $button = Gtk2::Button->new("100 Hz");
121 $button->signal_connect(clicked => sub { add_timeout(10,1); });
123 $button = Gtk2::Button->new("Max");
124 $button->signal_connect(clicked => sub { add_timeout(1,1); });
129 process_one_packet();