annotate Modules/almodule.c @ 3720:b341def4eef8 legacy-trunk

Ignore latex intermediate products.
author Guido van Rossum <guido@python.org>
date Wed, 26 Jun 1996 19:30:01 +0000
parents 172ba04a5191
children 65d2d8e67da3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1 /**********************************************************
2061
172ba04a5191 Added 1995 to copyright message.
Guido van Rossum <guido@python.org>
parents: 1746
diff changeset
2 Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
172ba04a5191 Added 1995 to copyright message.
Guido van Rossum <guido@python.org>
parents: 1746
diff changeset
3 The Netherlands.
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
4
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
5 All Rights Reserved
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
6
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
7 Permission to use, copy, modify, and distribute this software and its
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
8 documentation for any purpose and without fee is hereby granted,
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
9 provided that the above copyright notice appear in all copies and that
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
10 both that copyright notice and this permission notice appear in
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
11 supporting documentation, and that the names of Stichting Mathematisch
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
12 Centrum or CWI not be used in advertising or publicity pertaining to
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
13 distribution of the software without specific, written prior permission.
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
14
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
15 STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
16 THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
17 FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
18 FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
19 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
20 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
21 OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
22
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
23 ******************************************************************/
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
24
864
e58f40c2f285 Mark's name is Callow, not Callows
Guido van Rossum <guido@python.org>
parents: 795
diff changeset
25 /* AL module -- interface to Mark Callow's Audio Library (AL). */
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
26
1746
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
27 #include <audio.h>
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
28
1214
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
29 /* Check which version audio library we have: */
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
30 #ifdef AL_ERROR_NUMBER
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
31 #define AL_405
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
32 /* XXXX 4.0.5 libaudio also allows us to provide better error
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
33 ** handling (with ALseterrorhandler). We should implement that
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
34 ** sometime.
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
35 */
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
36
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
37 #endif
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
38
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
39 #include "allobjects.h"
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
40 #include "import.h"
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
41 #include "modsupport.h"
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
42 #include "structmember.h"
947
260d96db112f Modified to allow other threads to run in a multithreaded environment.
Jack Jansen <jack.jansen@cwi.nl>
parents: 864
diff changeset
43 #include "ceval.h"
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
44
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
45
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
46 /* Config objects */
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
47
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
48 typedef struct {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
49 OB_HEAD
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
50 ALconfig ob_config;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
51 } configobject;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
52
1746
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
53 staticforward typeobject Configtype;
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
54
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
55 #define is_configobject(v) ((v)->ob_type == &Configtype)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
56
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
57 /* Forward */
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
58 static int getconfigarg PROTO((object *, ALconfig *));
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
59 static int getstrstrconfigarg PROTO((object *, char **, char **, ALconfig *));
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
60
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
61 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
62 setConfig (self, args, func)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
63 configobject *self;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
64 object *args;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
65 void (*func)(ALconfig, long);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
66 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
67 long par;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
68
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
69 if (!getlongarg (args, &par)) return NULL;
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
70
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
71 (*func) (self-> ob_config, par);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
72
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
73 INCREF (None);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
74 return None;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
75 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
76
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
77 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
78 getConfig (self, args, func)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
79 configobject *self;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
80 object *args;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
81 long (*func)(ALconfig);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
82 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
83 long par;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
84
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
85 if (!getnoarg (args)) return NULL;
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
86
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
87 par = (*func) (self-> ob_config);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
88
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
89 return newintobject (par);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
90 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
91
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
92 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
93 al_setqueuesize (self, args)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
94 configobject *self;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
95 object *args;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
96 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
97 return (setConfig (self, args, ALsetqueuesize));
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
98 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
99
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
100 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
101 al_getqueuesize (self, args)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
102 configobject *self;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
103 object *args;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
104 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
105 return (getConfig (self, args, ALgetqueuesize));
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
106 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
107
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
108 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
109 al_setwidth (self, args)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
110 configobject *self;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
111 object *args;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
112 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
113 return (setConfig (self, args, ALsetwidth));
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
114 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
115
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
116 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
117 al_getwidth (self, args)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
118 configobject *self;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
119 object *args;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
120 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
121 return (getConfig (self, args, ALgetwidth));
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
122 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
123
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
124 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
125 al_getchannels (self, args)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
126 configobject *self;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
127 object *args;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
128 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
129 return (getConfig (self, args, ALgetchannels));
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
130 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
131
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
132 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
133 al_setchannels (self, args)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
134 configobject *self;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
135 object *args;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
136 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
137 return (setConfig (self, args, ALsetchannels));
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
138 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
139
1214
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
140 #ifdef AL_405
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
141
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
142 static object *
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
143 al_getsampfmt (self, args)
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
144 configobject *self;
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
145 object *args;
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
146 {
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
147 return (getConfig (self, args, ALgetsampfmt));
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
148 }
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
149
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
150 static object *
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
151 al_setsampfmt (self, args)
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
152 configobject *self;
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
153 object *args;
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
154 {
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
155 return (setConfig (self, args, ALsetsampfmt));
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
156 }
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
157
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
158 static object *
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
159 al_getfloatmax(self, args)
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
160 configobject *self;
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
161 object *args;
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
162 {
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
163 double arg;
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
164
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
165 if ( !getnoarg(args) )
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
166 return 0;
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
167 arg = ALgetfloatmax(self->ob_config);
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
168 return newfloatobject(arg);
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
169 }
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
170
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
171 static object *
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
172 al_setfloatmax(self, args)
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
173 configobject *self;
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
174 object *args;
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
175 {
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
176 double arg;
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
177
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
178 if ( !getargs(args, "d", &arg) )
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
179 return 0;
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
180 ALsetfloatmax(self->ob_config, arg);
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
181 INCREF(None);
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
182 return None;
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
183 }
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
184 #endif /* AL_405 */
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
185
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
186 static struct methodlist config_methods[] = {
1746
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
187 {"getqueuesize", (method)al_getqueuesize},
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
188 {"setqueuesize", (method)al_setqueuesize},
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
189 {"getwidth", (method)al_getwidth},
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
190 {"setwidth", (method)al_setwidth},
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
191 {"getchannels", (method)al_getchannels},
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
192 {"setchannels", (method)al_setchannels},
1214
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
193 #ifdef AL_405
1746
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
194 {"getsampfmt", (method)al_getsampfmt},
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
195 {"setsampfmt", (method)al_setsampfmt},
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
196 {"getfloatmax", (method)al_getfloatmax},
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
197 {"setfloatmax", (method)al_setfloatmax},
1214
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
198 #endif /* AL_405 */
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
199 {NULL, NULL} /* sentinel */
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
200 };
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
201
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
202 static void
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
203 config_dealloc(self)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
204 configobject *self;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
205 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
206 ALfreeconfig(self->ob_config);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
207 DEL(self);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
208 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
209
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
210 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
211 config_getattr(self, name)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
212 configobject *self;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
213 char *name;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
214 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
215 return findmethod(config_methods, (object *)self, name);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
216 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
217
1746
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
218 static typeobject Configtype = {
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
219 OB_HEAD_INIT(&Typetype)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
220 0, /*ob_size*/
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
221 "config", /*tp_name*/
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
222 sizeof(configobject), /*tp_size*/
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
223 0, /*tp_itemsize*/
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
224 /* methods */
1746
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
225 (destructor)config_dealloc, /*tp_dealloc*/
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
226 0, /*tp_print*/
1746
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
227 (getattrfunc)config_getattr, /*tp_getattr*/
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
228 0, /*tp_setattr*/
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
229 0, /*tp_compare*/
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
230 0, /*tp_repr*/
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
231 };
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
232
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
233 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
234 newconfigobject(config)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
235 ALconfig config;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
236 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
237 configobject *p;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
238
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
239 p = NEWOBJ(configobject, &Configtype);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
240 if (p == NULL)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
241 return NULL;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
242 p->ob_config = config;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
243 return (object *)p;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
244 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
245
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
246 /* Port objects */
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
247
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
248 typedef struct {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
249 OB_HEAD
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
250 ALport ob_port;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
251 } portobject;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
252
1746
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
253 staticforward typeobject Porttype;
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
254
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
255 #define is_portobject(v) ((v)->ob_type == &Porttype)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
256
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
257 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
258 al_closeport (self, args)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
259 portobject *self;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
260 object *args;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
261 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
262 if (!getnoarg (args)) return NULL;
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
263
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
264 if (self->ob_port != NULL) {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
265 ALcloseport (self-> ob_port);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
266 self->ob_port = NULL;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
267 /* XXX Using a closed port may dump core! */
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
268 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
269
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
270 INCREF (None);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
271 return None;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
272 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
273
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
274 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
275 al_getfd (self, args)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
276 portobject *self;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
277 object *args;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
278 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
279 int fd;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
280
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
281 if (!getnoarg (args)) return NULL;
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
282
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
283 fd = ALgetfd (self-> ob_port);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
284
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
285 return newintobject (fd);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
286 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
287
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
288 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
289 al_getfilled (self, args)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
290 portobject *self;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
291 object *args;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
292 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
293 long count;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
294
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
295 if (!getnoarg (args)) return NULL;
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
296
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
297 count = ALgetfilled (self-> ob_port);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
298
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
299 return newintobject (count);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
300 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
301
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
302 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
303 al_getfillable (self, args)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
304 portobject *self;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
305 object *args;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
306 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
307 long count;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
308
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
309 if (!getnoarg (args)) return NULL;
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
310
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
311 count = ALgetfillable (self-> ob_port);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
312
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
313 return newintobject (count);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
314 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
315
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
316 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
317 al_readsamps (self, args)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
318 portobject *self;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
319 object *args;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
320 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
321 long count;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
322 object *v;
369
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
323 ALconfig c;
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
324 int width;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
325
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
326 if (!getlongarg (args, &count)) return NULL;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
327
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
328 if (count <= 0)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
329 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
330 err_setstr (RuntimeError, "al.readsamps : arg <= 0");
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
331 return NULL;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
332 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
333
369
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
334 c = ALgetconfig(self->ob_port);
1214
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
335 #ifdef AL_405
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
336 width = ALgetsampfmt(c);
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
337 if ( width == AL_SAMPFMT_FLOAT )
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
338 width = sizeof(float);
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
339 else if ( width == AL_SAMPFMT_DOUBLE )
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
340 width = sizeof(double);
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
341 else
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
342 width = ALgetwidth(c);
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
343 #else
369
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
344 width = ALgetwidth(c);
1214
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
345 #endif /* AL_405 */
369
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
346 ALfreeconfig(c);
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
347 v = newsizedstringobject ((char *)NULL, width * count);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
348 if (v == NULL) return NULL;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
349
947
260d96db112f Modified to allow other threads to run in a multithreaded environment.
Jack Jansen <jack.jansen@cwi.nl>
parents: 864
diff changeset
350 BGN_SAVE
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
351 ALreadsamps (self-> ob_port, (void *) getstringvalue(v), count);
947
260d96db112f Modified to allow other threads to run in a multithreaded environment.
Jack Jansen <jack.jansen@cwi.nl>
parents: 864
diff changeset
352 END_SAVE
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
353
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
354 return (v);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
355 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
356
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
357 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
358 al_writesamps (self, args)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
359 portobject *self;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
360 object *args;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
361 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
362 long count;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
363 char *buf;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
364 int size, width;
369
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
365 ALconfig c;
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
366
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
367 if (!getargs (args, "s#", &buf, &size)) return NULL;
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
368
369
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
369 c = ALgetconfig(self->ob_port);
1214
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
370 #ifdef AL_405
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
371 width = ALgetsampfmt(c);
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
372 if ( width == AL_SAMPFMT_FLOAT )
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
373 width = sizeof(float);
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
374 else if ( width == AL_SAMPFMT_DOUBLE )
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
375 width = sizeof(double);
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
376 else
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
377 width = ALgetwidth(c);
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
378 #else
369
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
379 width = ALgetwidth(c);
1214
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
380 #endif /* AL_405 */
369
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
381 ALfreeconfig(c);
947
260d96db112f Modified to allow other threads to run in a multithreaded environment.
Jack Jansen <jack.jansen@cwi.nl>
parents: 864
diff changeset
382 BGN_SAVE
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
383 ALwritesamps (self-> ob_port, (void *) buf, (long) size / width);
947
260d96db112f Modified to allow other threads to run in a multithreaded environment.
Jack Jansen <jack.jansen@cwi.nl>
parents: 864
diff changeset
384 END_SAVE
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
385
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
386 INCREF (None);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
387 return None;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
388 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
389
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
390 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
391 al_getfillpoint (self, args)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
392 portobject *self;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
393 object *args;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
394 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
395 long count;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
396
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
397 if (!getnoarg (args)) return NULL;
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
398
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
399 count = ALgetfillpoint (self-> ob_port);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
400
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
401 return newintobject (count);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
402 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
403
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
404 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
405 al_setfillpoint (self, args)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
406 portobject *self;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
407 object *args;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
408 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
409 long count;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
410
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
411 if (!getlongarg (args, &count)) return NULL;
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
412
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
413 ALsetfillpoint (self-> ob_port, count);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
414
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
415 INCREF (None);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
416 return (None);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
417 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
418
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
419 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
420 al_setconfig (self, args)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
421 portobject *self;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
422 object *args;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
423 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
424 ALconfig config;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
425
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
426 if (!getconfigarg (args, &config)) return NULL;
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
427
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
428 ALsetconfig (self-> ob_port, config);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
429
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
430 INCREF (None);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
431 return (None);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
432 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
433
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
434 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
435 al_getconfig (self, args)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
436 portobject *self;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
437 object *args;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
438 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
439 ALconfig config;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
440
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
441 if (!getnoarg (args)) return NULL;
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
442
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
443 config = ALgetconfig (self-> ob_port);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
444
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
445 return newconfigobject (config);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
446 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
447
1214
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
448 #ifdef AL_405
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
449 static object *
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
450 al_getstatus (self, args)
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
451 portobject *self;
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
452 object *args;
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
453 {
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
454 object *list, *v;
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
455 long *PVbuffer;
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
456 long length;
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
457 int i;
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
458
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
459 if (!getargs(args, "O", &list))
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
460 return NULL;
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
461 if (!is_listobject(list)) {
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
462 err_badarg();
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
463 return NULL;
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
464 }
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
465 length = getlistsize(list);
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
466 PVbuffer = NEW(long, length);
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
467 if (PVbuffer == NULL)
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
468 return err_nomem();
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
469 for (i = 0; i < length; i++) {
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
470 v = getlistitem(list, i);
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
471 if (!is_intobject(v)) {
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
472 DEL(PVbuffer);
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
473 err_badarg();
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
474 return NULL;
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
475 }
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
476 PVbuffer[i] = getintvalue(v);
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
477 }
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
478
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
479 ALgetstatus(self->ob_port, PVbuffer, length);
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
480
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
481 for (i = 0; i < length; i++)
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
482 setlistitem(list, i, newintobject(PVbuffer[i]));
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
483
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
484 DEL(PVbuffer);
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
485
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
486 INCREF(None);
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
487 return None;
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
488 }
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
489 #endif /* AL_405 */
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
490
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
491 static struct methodlist port_methods[] = {
1746
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
492 {"closeport", (method)al_closeport},
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
493 {"getfd", (method)al_getfd},
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
494 {"fileno", (method)al_getfd},
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
495 {"getfilled", (method)al_getfilled},
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
496 {"getfillable", (method)al_getfillable},
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
497 {"readsamps", (method)al_readsamps},
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
498 {"writesamps", (method)al_writesamps},
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
499 {"setfillpoint", (method)al_setfillpoint},
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
500 {"getfillpoint", (method)al_getfillpoint},
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
501 {"setconfig", (method)al_setconfig},
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
502 {"getconfig", (method)al_getconfig},
1214
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
503 #ifdef AL_405
1746
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
504 {"getstatus", (method)al_getstatus},
1214
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
505 #endif /* AL_405 */
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
506 {NULL, NULL} /* sentinel */
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
507 };
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
508
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
509 static void
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
510 port_dealloc(p)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
511 portobject *p;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
512 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
513 if (p->ob_port != NULL)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
514 ALcloseport(p->ob_port);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
515 DEL(p);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
516 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
517
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
518 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
519 port_getattr(p, name)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
520 portobject *p;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
521 char *name;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
522 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
523 return findmethod(port_methods, (object *)p, name);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
524 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
525
1746
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
526 static typeobject Porttype = {
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
527 OB_HEAD_INIT(&Typetype)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
528 0, /*ob_size*/
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
529 "port", /*tp_name*/
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
530 sizeof(portobject), /*tp_size*/
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
531 0, /*tp_itemsize*/
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
532 /* methods */
1746
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
533 (destructor)port_dealloc, /*tp_dealloc*/
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
534 0, /*tp_print*/
1746
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
535 (getattrfunc)port_getattr, /*tp_getattr*/
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
536 0, /*tp_setattr*/
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
537 0, /*tp_compare*/
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
538 0, /*tp_repr*/
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
539 };
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
540
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
541 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
542 newportobject(port)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
543 ALport port;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
544 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
545 portobject *p;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
546
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
547 p = NEWOBJ(portobject, &Porttype);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
548 if (p == NULL)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
549 return NULL;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
550 p->ob_port = port;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
551 return (object *)p;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
552 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
553
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
554 /* the module al */
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
555
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
556 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
557 al_openport (self, args)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
558 object *self, *args;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
559 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
560 char *name, *dir;
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
561 ALport port;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
562 ALconfig config = NULL;
384
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
563 int size;
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
564
384
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
565 if (args == NULL || !is_tupleobject(args)) {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
566 err_badarg ();
384
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
567 return NULL;
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
568 }
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
569 size = gettuplesize(args);
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
570 if (size == 2) {
1313
6ee380349c84 * Added gmtime/localtime/mktime and SYSV timezone globals to timemodule.c.
Guido van Rossum <guido@python.org>
parents: 1252
diff changeset
571 if (!getargs (args, "(ss)", &name, &dir))
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
572 return NULL;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
573 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
574 else if (size == 3) {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
575 if (!getstrstrconfigarg (args, &name, &dir, &config))
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
576 return NULL;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
577 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
578 else {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
579 err_badarg ();
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
580 return NULL;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
581 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
582
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
583 port = ALopenport(name, dir, config);
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
584
384
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
585 if (port == NULL) {
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
586 err_errno(RuntimeError);
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
587 return NULL;
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
588 }
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
589
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
590 return newportobject (port);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
591 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
592
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
593 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
594 al_newconfig (self, args)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
595 object *self, *args;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
596 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
597 ALconfig config;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
598
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
599 if (!getnoarg (args)) return NULL;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
600
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
601 config = ALnewconfig ();
384
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
602 if (config == NULL) {
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
603 err_errno(RuntimeError);
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
604 return NULL;
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
605 }
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
606
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
607 return newconfigobject (config);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
608 }
369
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
609
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
610 static object *
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
611 al_queryparams(self, args)
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
612 object *self, *args;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
613 {
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
614 long device;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
615 long length;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
616 long *PVbuffer;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
617 long PVdummy[2];
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
618 object *v;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
619 object *w;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
620
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
621 if (!getlongarg (args, &device))
369
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
622 return NULL;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
623 length = ALqueryparams(device, PVdummy, 2L);
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
624 PVbuffer = NEW(long, length);
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
625 if (PVbuffer == NULL)
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
626 return err_nomem();
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
627 (void) ALqueryparams(device, PVbuffer, length);
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
628 v = newlistobject((int)length);
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
629 if (v != NULL) {
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
630 int i;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
631 for (i = 0; i < length; i++)
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
632 setlistitem(v, i, newintobject(PVbuffer[i]));
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
633 }
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
634 DEL(PVbuffer);
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
635 return v;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
636 }
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
637
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
638 static object *
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
639 doParams(args, func, modified)
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
640 object *args;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
641 void (*func)(long, long *, long);
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
642 int modified;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
643 {
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
644 long device;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
645 object *list, *v;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
646 long *PVbuffer;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
647 long length;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
648 int i;
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
649
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
650 if (!getargs(args, "(lO)", &device, &list))
369
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
651 return NULL;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
652 if (!is_listobject(list)) {
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
653 err_badarg();
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
654 return NULL;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
655 }
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
656 length = getlistsize(list);
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
657 PVbuffer = NEW(long, length);
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
658 if (PVbuffer == NULL)
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
659 return err_nomem();
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
660 for (i = 0; i < length; i++) {
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
661 v = getlistitem(list, i);
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
662 if (!is_intobject(v)) {
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
663 DEL(PVbuffer);
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
664 err_badarg();
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
665 return NULL;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
666 }
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
667 PVbuffer[i] = getintvalue(v);
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
668 }
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
669
375
86828cc1c646 Call (*func), not ALgetparams!
Guido van Rossum <guido@python.org>
parents: 369
diff changeset
670 (*func)(device, PVbuffer, length);
369
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
671
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
672 if (modified) {
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
673 for (i = 0; i < length; i++)
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
674 setlistitem(list, i, newintobject(PVbuffer[i]));
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
675 }
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
676
384
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
677 DEL(PVbuffer);
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
678
369
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
679 INCREF(None);
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
680 return None;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
681 }
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
682
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
683 static object *
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
684 al_getparams(self, args)
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
685 object *self, *args;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
686 {
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
687 return doParams(args, ALgetparams, 1);
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
688 }
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
689
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
690 static object *
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
691 al_setparams(self, args)
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
692 object *self, *args;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
693 {
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
694 return doParams(args, ALsetparams, 0);
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
695 }
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
696
973
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
697 static object *
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
698 al_getname(self, args)
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
699 object *self, *args;
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
700 {
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
701 long device, descriptor;
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
702 char *name;
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
703 if (!getargs(args, "(ll)", &device, &descriptor))
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
704 return NULL;
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
705 name = ALgetname(device, descriptor);
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
706 if (name == NULL) {
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
707 err_setstr(ValueError, "al.getname: bad descriptor");
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
708 return NULL;
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
709 }
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
710 return newstringobject(name);
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
711 }
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
712
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
713 static object *
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
714 al_getdefault(self, args)
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
715 object *self, *args;
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
716 {
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
717 long device, descriptor, value;
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
718 if (!getargs(args, "(ll)", &device, &descriptor))
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
719 return NULL;
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
720 value = ALgetdefault(device, descriptor);
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
721 return newlongobject(value);
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
722 }
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
723
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
724 static object *
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
725 al_getminmax(self, args)
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
726 object *self, *args;
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
727 {
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
728 long device, descriptor, min, max;
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
729 if (!getargs(args, "(ll)", &device, &descriptor))
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
730 return NULL;
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
731 min = -1;
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
732 max = -1;
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
733 ALgetminmax(device, descriptor, &min, &max);
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
734 return mkvalue("ll", min, max);
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
735 }
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
736
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
737 static struct methodlist al_methods[] = {
1746
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
738 {"openport", (method)al_openport},
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
739 {"newconfig", (method)al_newconfig},
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
740 {"queryparams", (method)al_queryparams},
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
741 {"getparams", (method)al_getparams},
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
742 {"setparams", (method)al_setparams},
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
743 {"getname", (method)al_getname},
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
744 {"getdefault", (method)al_getdefault},
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1442
diff changeset
745 {"getminmax", (method)al_getminmax},
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
746 {NULL, NULL} /* sentinel */
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
747 };
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
748
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
749 void
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
750 inital()
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
751 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
752 initmodule("al", al_methods);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
753 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
754
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
755 static int
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
756 getconfigarg(o, conf)
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
757 object *o;
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
758 ALconfig *conf;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
759 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
760 if (o == NULL || !is_configobject(o))
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
761 return err_badarg ();
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
762
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
763 *conf = ((configobject *) o) -> ob_config;
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
764
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
765 return 1;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
766 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
767
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
768 static int
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
769 getstrstrconfigarg(v, a, b, c)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
770 object *v;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
771 char **a;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
772 char **b;
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
773 ALconfig *c;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
774 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
775 object *o;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
776 return getargs(v, "(ssO)", a, b, &o) && getconfigarg(o, c);
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
777 }