File: wireless

package info (click to toggle)
mgm 1.1.cvs.20020221-2
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 1,724 kB
  • ctags: 33
  • sloc: perl: 768; makefile: 32
file content (112 lines) | stat: -rw-r--r-- 2,536 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# -*-Perl-*-

# instances allowed: one 

# (single instance modules would be silly to use more than one of
# anyway, so we use package local storage.  This is faster and places
# less artificial load on the machine than doing everything through
# the object hash)

package MGMmodule::wireless;
use vars qw($xpath @if @keys $active $prompt $widget $graph $lastmod);

# class init
sub module_init{
    my$this=shift;
    my$toplevel=$this->{"toplevel"};
    my$xclass=$this->{"xclass"};

    # is the helper up and running?
    if(!$MGMmodule::helperST::wi_active){
	$toplevel->optionAdd("$xclass.active",'false',21);   
    }
    $toplevel->optionAdd("$xclass.order",21,21);   
    $this;
}

# instance init
sub module_instance{
    my$this=shift;
    my$toplevel=$this->{"toplevel"};
    return undef if(defined($xpath));
    $xpath=$this->{"xpath"};

    undef@keys;
    foreach my $key (keys %MGMmodule::helperST::wi){
	push @keys, $key if(defined($MGMmodule::helperST::wi{$key}));
    }
    $active=$MGMmodule::helperST::wi_count;
    
    $prompt=' dB';

    # modify defaults
    if($active){
	my$i=0;
	foreach my $key (@keys){
	    $toplevel->optionAdd("$xpath.bar.$i.label", "$key signal",21);
	    $i++;
	}
	
	$toplevel->optionAdd("$xpath.scalewidadj", 100*$i,21);  # narrower
	$toplevel->optionAdd("$xpath*litbackground",'#60c060',21); 
	
	# this relies on the above defaults
	
	my($minx,$miny)=MGM::Graph::calcxysize($this,50,
					       $prompt,$active);
	
	$toplevel->optionAdd("$xpath.minx",        $minx,21);      
	$toplevel->optionAdd("$xpath.miny",        $miny,21);      
    }
    $this;
}

sub module_place_p{
    $active;
}

# instance widget build
sub module_run{
    my$this=shift;

    $lastmod=-1;
    $graph=MGM::Graph->new($this,num=>$active,
			       prompt=>$prompt,
			       minscale=>50,
			       fixed=>1);
	
    $widget=$graph->{"widget"};        # must return the widget
}

sub module_update{ 
    my$this=shift;
    
    # don't update unless the helper has
    if($lastmod!=$MGMmodule::helperST::lastmod){
	my$time=$MGMmodule::helperST::lastmod;
	my@vals;
	my$i=0;

	foreach my $key (@keys){
	    return &reconfig if(!defined($MGMmodule::helperST::wi{$key}));
	    my@temp=split ' ', $MGMmodule::helperST::wi{$key};
	    $vals[$i]=$temp[1];
	}
	    
	$graph->set(@vals);
	return &reconfig if($active!=$MGMmodule::helperST::wi_count);

	$lastmod=$time;
    }
}

sub reconfig{
    &main::reinstance() if($widget->optionGet("reconfig","") eq 'true');
}

sub destroy{
    undef $xpath;
}

bless {};