aboutsummaryrefslogtreecommitdiff
path: root/demo/sgi/gl_panel/apanel/apanel.py
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()