annotate Modules/almodule.c @ 1590:ac2e5cc29949 legacy-trunk

Added tests for missing host to open_http and open_gopher
author Guido van Rossum <guido@python.org>
date Mon, 18 Apr 1994 09:39:56 +0000
parents 4749c957466b
children 1940892d2fe3
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 /**********************************************************
1252
c4cd0d9d8281 * Changed many files to use mkvalue() instead of newtupleobject().
Guido van Rossum <guido@python.org>
parents: 1214
diff changeset
2 Copyright 1991, 1992, 1993 by Stichting Mathematisch Centrum,
c4cd0d9d8281 * Changed many files to use mkvalue() instead of newtupleobject().
Guido van Rossum <guido@python.org>
parents: 1214
diff changeset
3 Amsterdam, 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
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
27 #include "audio.h"
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
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
53 extern typeobject Configtype; /* Forward */
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[] = {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
187 {"getqueuesize", al_getqueuesize},
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
188 {"setqueuesize", al_setqueuesize},
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
189 {"getwidth", al_getwidth},
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
190 {"setwidth", al_setwidth},
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
191 {"getchannels", al_getchannels},
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
192 {"setchannels", 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
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
194 {"getsampfmt", al_getsampfmt},
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
195 {"setsampfmt", al_setsampfmt},
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
196 {"getfloatmax", al_getfloatmax},
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
197 {"setfloatmax", al_setfloatmax},
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
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
218 typeobject Configtype = {
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 */
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
225 config_dealloc, /*tp_dealloc*/
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
226 0, /*tp_print*/
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
227 config_getattr, /*tp_getattr*/
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
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
253 extern typeobject Porttype; /* Forward */
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[] = {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
492 {"closeport", al_closeport},
1442
4749c957466b almodule.c: added close method, equivalent to closeport.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1313
diff changeset
493 {"close", al_closeport},
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
494 {"getfd", al_getfd},
947
260d96db112f Modified to allow other threads to run in a multithreaded environment.
Jack Jansen <jack.jansen@cwi.nl>
parents: 864
diff changeset
495 {"fileno", al_getfd},
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
496 {"getfilled", al_getfilled},
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
497 {"getfillable", al_getfillable},
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
498 {"readsamps", al_readsamps},
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
499 {"writesamps", al_writesamps},
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
500 {"setfillpoint", al_setfillpoint},
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
501 {"getfillpoint", al_getfillpoint},
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
502 {"setconfig", al_setconfig},
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
503 {"getconfig", al_getconfig},
1214
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
504 #ifdef AL_405
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
505 {"getstatus", al_getstatus},
416a8a886a82 Added new audio library functionality (getstatus, float sample fmts)
Jack Jansen <jack.jansen@cwi.nl>
parents: 973
diff changeset
506 #endif /* AL_405 */
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
507 {NULL, NULL} /* sentinel */
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
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
510 static void
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
511 port_dealloc(p)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
512 portobject *p;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
513 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
514 if (p->ob_port != NULL)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
515 ALcloseport(p->ob_port);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
516 DEL(p);
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
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
519 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
520 port_getattr(p, name)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
521 portobject *p;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
522 char *name;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
523 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
524 return findmethod(port_methods, (object *)p, name);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
525 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
526
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
527 typeobject Porttype = {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
528 OB_HEAD_INIT(&Typetype)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
529 0, /*ob_size*/
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
530 "port", /*tp_name*/
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
531 sizeof(portobject), /*tp_size*/
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
532 0, /*tp_itemsize*/
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
533 /* methods */
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
534 port_dealloc, /*tp_dealloc*/
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
535 0, /*tp_print*/
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
536 port_getattr, /*tp_getattr*/
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
537 0, /*tp_setattr*/
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
538 0, /*tp_compare*/
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
539 0, /*tp_repr*/
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
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
542 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
543 newportobject(port)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
544 ALport port;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
545 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
546 portobject *p;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
547
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
548 p = NEWOBJ(portobject, &Porttype);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
549 if (p == NULL)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
550 return NULL;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
551 p->ob_port = port;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
552 return (object *)p;
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
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
555 /* the module al */
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
556
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
557 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
558 al_openport (self, args)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
559 object *self, *args;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
560 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
561 char *name, *dir;
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
562 ALport port;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
563 ALconfig config = NULL;
384
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
564 int size;
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
565
384
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
566 if (args == NULL || !is_tupleobject(args)) {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
567 err_badarg ();
384
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
568 return NULL;
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
569 }
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
570 size = gettuplesize(args);
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
571 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
572 if (!getargs (args, "(ss)", &name, &dir))
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
573 return NULL;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
574 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
575 else if (size == 3) {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
576 if (!getstrstrconfigarg (args, &name, &dir, &config))
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
577 return NULL;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
578 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
579 else {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
580 err_badarg ();
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
581 return NULL;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
582 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
583
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
584 port = ALopenport(name, dir, config);
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
585
384
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
586 if (port == NULL) {
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
587 err_errno(RuntimeError);
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
588 return NULL;
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
589 }
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
590
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
591 return newportobject (port);
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
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
594 static object *
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
595 al_newconfig (self, args)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
596 object *self, *args;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
597 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
598 ALconfig config;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
599
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
600 if (!getnoarg (args)) return NULL;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
601
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
602 config = ALnewconfig ();
384
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
603 if (config == NULL) {
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
604 err_errno(RuntimeError);
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
605 return NULL;
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
606 }
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
607
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
608 return newconfigobject (config);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
609 }
369
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
610
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
611 static object *
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
612 al_queryparams(self, args)
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
613 object *self, *args;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
614 {
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
615 long device;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
616 long length;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
617 long *PVbuffer;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
618 long PVdummy[2];
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
619 object *v;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
620 object *w;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
621
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
622 if (!getlongarg (args, &device))
369
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
623 return NULL;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
624 length = ALqueryparams(device, PVdummy, 2L);
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
625 PVbuffer = NEW(long, length);
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
626 if (PVbuffer == NULL)
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
627 return err_nomem();
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
628 (void) ALqueryparams(device, PVbuffer, length);
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
629 v = newlistobject((int)length);
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
630 if (v != NULL) {
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
631 int i;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
632 for (i = 0; i < length; i++)
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
633 setlistitem(v, i, newintobject(PVbuffer[i]));
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
634 }
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
635 DEL(PVbuffer);
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
636 return v;
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
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
639 static object *
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
640 doParams(args, func, modified)
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
641 object *args;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
642 void (*func)(long, long *, long);
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
643 int modified;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
644 {
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
645 long device;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
646 object *list, *v;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
647 long *PVbuffer;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
648 long length;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
649 int i;
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
650
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
651 if (!getargs(args, "(lO)", &device, &list))
369
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
652 return NULL;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
653 if (!is_listobject(list)) {
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
654 err_badarg();
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
655 return NULL;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
656 }
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
657 length = getlistsize(list);
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
658 PVbuffer = NEW(long, length);
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
659 if (PVbuffer == NULL)
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
660 return err_nomem();
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
661 for (i = 0; i < length; i++) {
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
662 v = getlistitem(list, i);
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
663 if (!is_intobject(v)) {
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
664 DEL(PVbuffer);
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
665 err_badarg();
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
666 return NULL;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
667 }
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
668 PVbuffer[i] = getintvalue(v);
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
669 }
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
670
375
86828cc1c646 Call (*func), not ALgetparams!
Guido van Rossum <guido@python.org>
parents: 369
diff changeset
671 (*func)(device, PVbuffer, length);
369
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
672
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
673 if (modified) {
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
674 for (i = 0; i < length; i++)
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
675 setlistitem(list, i, newintobject(PVbuffer[i]));
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
676 }
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
677
384
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
678 DEL(PVbuffer);
a3d4d461d442 Added some error checks.
Guido van Rossum <guido@python.org>
parents: 375
diff changeset
679
369
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
680 INCREF(None);
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
681 return None;
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
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
684 static object *
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
685 al_getparams(self, args)
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
686 object *self, *args;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
687 {
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
688 return doParams(args, ALgetparams, 1);
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
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
691 static object *
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
692 al_setparams(self, args)
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
693 object *self, *args;
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
694 {
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
695 return doParams(args, ALsetparams, 0);
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
696 }
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
697
973
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
698 static object *
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
699 al_getname(self, args)
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
700 object *self, *args;
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
701 {
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
702 long device, descriptor;
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
703 char *name;
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
704 if (!getargs(args, "(ll)", &device, &descriptor))
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
705 return NULL;
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
706 name = ALgetname(device, descriptor);
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
707 if (name == NULL) {
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
708 err_setstr(ValueError, "al.getname: bad descriptor");
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
709 return NULL;
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
710 }
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
711 return newstringobject(name);
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
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
714 static object *
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
715 al_getdefault(self, args)
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
716 object *self, *args;
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
717 {
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
718 long device, descriptor, value;
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
719 if (!getargs(args, "(ll)", &device, &descriptor))
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
720 return NULL;
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
721 value = ALgetdefault(device, descriptor);
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
722 return newlongobject(value);
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
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
725 static object *
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
726 al_getminmax(self, args)
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
727 object *self, *args;
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
728 {
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
729 long device, descriptor, min, max;
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
730 if (!getargs(args, "(ll)", &device, &descriptor))
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
731 return NULL;
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
732 min = -1;
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
733 max = -1;
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
734 ALgetminmax(device, descriptor, &min, &max);
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
735 return mkvalue("ll", min, max);
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
736 }
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
737
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
738 static struct methodlist al_methods[] = {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
739 {"openport", al_openport},
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
740 {"newconfig", al_newconfig},
369
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
741 {"queryparams", al_queryparams},
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
742 {"getparams", al_getparams},
46a656123a69 Added queryparams, get/setparams.
Guido van Rossum <guido@python.org>
parents: 367
diff changeset
743 {"setparams", al_setparams},
973
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
744 {"getname", al_getname},
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
745 {"getdefault", al_getdefault},
30a290257c31 added getname, getdefault and getminmax functions
Guido van Rossum <guido@python.org>
parents: 947
diff changeset
746 {"getminmax", al_getminmax},
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
747 {NULL, NULL} /* sentinel */
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
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
750 void
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
751 inital()
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
752 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
753 initmodule("al", al_methods);
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
754 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
755
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
756 static int
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
757 getconfigarg(o, conf)
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
758 object *o;
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
759 ALconfig *conf;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
760 {
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
761 if (o == NULL || !is_configobject(o))
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
762 return err_badarg ();
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
763
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
764 *conf = ((configobject *) o) -> ob_config;
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
765
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
766 return 1;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
767 }
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
768
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
769 static int
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
770 getstrstrconfigarg(v, a, b, c)
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
771 object *v;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
772 char **a;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
773 char **b;
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
774 ALconfig *c;
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
775 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
776 object *o;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 384
diff changeset
777 return getargs(v, "(ssO)", a, b, &o) && getconfigarg(o, c);
367
a7d370f93f75 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
778 }