blob: de9a7109343970a7b90f5648d6f2e0b52e43b34a (
plain)
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
|
#! /ufs/guido/bin/sgi/python
# A (too) trivial control panel to record a sound sample and play it back.
# Requires the audio built-in module.
# Requires the NASA AMES Panel Library.
import sys
import gl
import panel
panel.block(1)
import audio
def main():
gl.foreground()
gl.noport()
#gl.prefposition(700, 850, 950, 970)
wid = gl.winopen('audio demo')
#
panels = panel.defpanellist('apanel.s') # XXX
p = panels[0]
p.playbackbutton.back = p
p.recordbutton.back = p
p.sample = ''
#
def quit(a):
sys.exit(0)
#
p.quitbutton.downfunc = quit
#
def playback(a):
p = a.back
gain = int(255.0*p.outputgain.val)
a.val = 1.0
a.fixact()
panel.drawpanel()
audio.setoutgain(gain)
audio.write(p.sample)
audio.setoutgain(0)
a.val = 0.0
a.fixact()
#
p.playbackbutton.downfunc = playback
#
def record(a):
p = a.back
size = int(10.0 * 8192.0 * p.recordsize.val)
a.val = 1.0
a.fixact()
panel.drawpanel()
audio.setoutgain(0)
p.sample = audio.read(size)
a.val = 0.0
a.fixact()
#
p.recordbutton.downfunc = record
#
while 1:
act = panel.dopanel()
main()
|