Mercurial > cpython-lru_cache-weakref
annotate Lib/lib-stdwin/VUMeter.py @ 4566:6403c94de50d legacy-trunk
Added safeguard against failure in __del__.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Wed, 27 Nov 1996 19:39:58 +0000 |
| parents | 8331076cfe15 |
| children |
| rev | line source |
|---|---|
|
99
e0c8efee76bd
*** empty log message ***
Guido van Rossum <guido@python.org>
parents:
63
diff
changeset
|
1 # Module 'VUMeter' |
| 55 | 2 |
| 3 import audio | |
| 4 from StripChart import StripChart | |
| 5 | |
| 6 K = 1024 | |
| 7 Rates = [0, 32*K, 16*K, 8*K] | |
| 8 | |
| 531 | 9 class VUMeter(StripChart): |
| 55 | 10 # |
| 11 # Override define() and timer() methods | |
| 12 # | |
|
63
61311506f2cd
*** empty log message ***
Guido van Rossum <guido@python.org>
parents:
55
diff
changeset
|
13 def define(self, parent): |
|
61311506f2cd
*** empty log message ***
Guido van Rossum <guido@python.org>
parents:
55
diff
changeset
|
14 self = StripChart.define(self, (parent, 128)) |
|
61311506f2cd
*** empty log message ***
Guido van Rossum <guido@python.org>
parents:
55
diff
changeset
|
15 self.parent.need_timer(self) |
| 55 | 16 self.sampling = 0 |
| 17 self.rate = 3 | |
| 18 self.enable(0) | |
| 19 return self | |
| 20 # | |
| 21 def timer(self): | |
| 22 if self.sampling: | |
| 23 chunk = audio.wait_recording() | |
| 24 self.sampling = 0 | |
| 25 nums = audio.chr2num(chunk) | |
| 26 ampl = max(abs(min(nums)), abs(max(nums))) | |
| 27 self.append(ampl) | |
| 28 if self.enabled and not self.sampling: | |
| 29 audio.setrate(self.rate) | |
| 30 size = Rates[self.rate]/10 | |
| 31 size = size/48*48 | |
| 32 audio.start_recording(size) | |
| 33 self.sampling = 1 | |
| 34 if self.sampling: | |
|
63
61311506f2cd
*** empty log message ***
Guido van Rossum <guido@python.org>
parents:
55
diff
changeset
|
35 self.parent.settimer(1) |
| 55 | 36 # |
| 37 # New methods: start() and stop() | |
| 38 # | |
| 39 def stop(self): | |
| 40 if self.sampling: | |
| 41 chunk = audio.stop_recording() | |
| 42 self.sampling = 0 | |
| 43 self.enable(0) | |
| 44 # | |
| 45 def start(self): | |
| 46 self.enable(1) | |
| 47 self.timer() |
