aboutsummaryrefslogtreecommitdiff
path: root/demo/sgi/gl_panel/apanel/apanel.py
diff options
context:
space:
mode:
Diffstat (limited to 'demo/sgi/gl_panel/apanel/apanel.py')
-rwxr-xr-xdemo/sgi/gl_panel/apanel/apanel.py63
1 files changed, 63 insertions, 0 deletions
diff --git a/demo/sgi/gl_panel/apanel/apanel.py b/demo/sgi/gl_panel/apanel/apanel.py
new file mode 100755
index 0000000..de9a710
--- /dev/null
+++ b/demo/sgi/gl_panel/apanel/apanel.py
@@ -0,0 +1,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()