annotate Modules/clmodule.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 f3848f74b282
children 1940892d2fe3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
1 /***********************************************************
1252
c4cd0d9d8281 * Changed many files to use mkvalue() instead of newtupleobject().
Guido van Rossum <guido@python.org>
parents: 1222
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: 1222
diff changeset
3 Amsterdam, The Netherlands.
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
4
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
5 All Rights Reserved
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
6
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
7 Permission to use, copy, modify, and distribute this software and its
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
8 documentation for any purpose and without fee is hereby granted,
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
9 provided that the above copyright notice appear in all copies and that
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
10 both that copyright notice and this permission notice appear in
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
11 supporting documentation, and that the names of Stichting Mathematisch
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
12 Centrum or CWI not be used in advertising or publicity pertaining to
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
13 distribution of the software without specific, written prior permission.
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
14
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
15 STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
16 THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
17 FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
18 FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
19 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
20 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
21 OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
22
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
23 ******************************************************************/
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
24
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
25
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
26 /* Cl objects */
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
27
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
28 #define CLDEBUG
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
29
1061
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
30 #include <stdarg.h>
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
31 #include <cl.h>
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
32 #include "allobjects.h"
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
33 #include "modsupport.h" /* For getargs() etc. */
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
34 #include "ceval.h" /* For call_object() */
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
35
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
36 typedef struct {
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
37 OB_HEAD
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
38 int ob_isCompressor; /* Compressor or Decompressor */
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
39 CL_Handle ob_compressorHdl;
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
40 int *ob_paramtypes;
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
41 int ob_nparams;
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
42 } clobject;
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
43
1061
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
44 static object *ClError; /* exception cl.error */
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
45
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
46 static int error_handler_called = 0;
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
47
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
48 /*
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
49 * We want to use the function prototypes that are available in the C
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
50 * compiler on the SGI. Because of that, we need to declare the first
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
51 * argument of the compressor and decompressor methods as "object *",
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
52 * even though they are really "clobject *". Therefore we cast the
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
53 * argument to the proper type using this macro.
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
54 */
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
55 #define SELF ((clobject *) self)
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
56
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
57 /********************************************************************
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
58 Utility routines.
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
59 ********************************************************************/
1061
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
60 static void
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
61 cl_ErrorHandler(CL_Handle handle, int code, const char *fmt, ...)
1061
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
62 {
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
63 va_list ap;
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
64 char errbuf[BUFSIZ]; /* hopefully big enough */
1075
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
65 char *p;
1061
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
66
1075
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
67 if (err_occurred()) /* don't change existing error */
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
68 return;
1061
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
69 error_handler_called = 1;
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
70 va_start(ap, fmt);
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
71 vsprintf(errbuf, fmt, ap);
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
72 va_end(ap);
1075
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
73 p = &errbuf[strlen(errbuf) - 1]; /* swat the line feed */
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
74 if (*p == '\n')
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
75 *p = 0;
1061
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
76 err_setstr(ClError, errbuf);
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
77 }
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
78
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
79 /*
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
80 * This assumes that params are always in the range 0 to some maximum.
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
81 */
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
82 static int
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
83 param_type_is_float(clobject *self, int param)
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
84 {
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
85 int bufferlength;
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
86 int ret;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
87
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
88 if (self->ob_paramtypes == NULL) {
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
89 error_handler_called = 0;
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
90 bufferlength = clQueryParams(self->ob_compressorHdl, 0, 0);
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
91 if (error_handler_called)
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
92 return -1;
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
93
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
94 self->ob_paramtypes = NEW(int, bufferlength);
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
95 if (self->ob_paramtypes == NULL)
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
96 return -1;
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
97 self->ob_nparams = bufferlength / 2;
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
98
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
99 (void) clQueryParams(self->ob_compressorHdl, self->ob_paramtypes, bufferlength);
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
100 if (error_handler_called) {
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
101 DEL(self->ob_paramtypes);
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
102 self->ob_paramtypes = NULL;
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
103 return -1;
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
104 }
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
105 }
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
106
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
107 if (param < 0 || param >= self->ob_nparams)
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
108 return -1;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
109
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
110 if (self->ob_paramtypes[param*2 + 1] == CL_FLOATING_ENUM_VALUE ||
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
111 self->ob_paramtypes[param*2 + 1] == CL_FLOATING_RANGE_VALUE)
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
112 return 1;
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
113 else
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
114 return 0;
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
115 }
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
117 /********************************************************************
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
118 Single image compression/decompression.
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
119 ********************************************************************/
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
120 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
121 cl_CompressImage(object *self, object *args)
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
122 {
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
123 int compressionScheme, width, height, originalFormat;
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
124 float compressionRatio;
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
125 int frameBufferSize, compressedBufferSize;
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
126 char *frameBuffer;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
127 object *compressedBuffer;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
128
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
129 if (!getargs(args, "(iiiifs#)", &compressionScheme, &width, &height,
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
130 &originalFormat, &compressionRatio, &frameBuffer,
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
131 &frameBufferSize))
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
132 return NULL;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
133
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
134 retry:
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
135 compressedBuffer = newsizedstringobject(NULL, frameBufferSize);
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
136 if (compressedBuffer == NULL)
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
137 return NULL;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
138
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
139 compressedBufferSize = frameBufferSize;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
140 error_handler_called = 0;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
141 if (clCompressImage(compressionScheme, width, height, originalFormat,
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
142 compressionRatio, (void *) frameBuffer,
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
143 &compressedBufferSize,
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
144 (void *) getstringvalue(compressedBuffer))
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
145 == FAILURE) {
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
146 DECREF(compressedBuffer);
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
147 if (!error_handler_called)
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
148 err_setstr(ClError, "clCompressImage failed");
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
149 return NULL;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
150 }
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
151
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
152 if (compressedBufferSize > frameBufferSize) {
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
153 frameBufferSize = compressedBufferSize;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
154 DECREF(compressedBuffer);
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
155 goto retry;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
156 }
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
157
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
158 if (compressedBufferSize < frameBufferSize)
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
159 if (resizestring(&compressedBuffer, compressedBufferSize))
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
160 return NULL;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
161
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
162 return compressedBuffer;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
163 }
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
164
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
165 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
166 cl_DecompressImage(object *self, object *args)
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
167 {
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
168 int compressionScheme, width, height, originalFormat;
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
169 char *compressedBuffer;
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
170 int compressedBufferSize, frameBufferSize;
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
171 object *frameBuffer;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
172
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
173 if (!getargs(args, "(iiiis#)", &compressionScheme, &width, &height,
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
174 &originalFormat, &compressedBuffer,
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
175 &compressedBufferSize))
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
176 return NULL;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
177
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
178 frameBufferSize = width * height * CL_BytesPerPixel(originalFormat);
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
179
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
180 frameBuffer = newsizedstringobject(NULL, frameBufferSize);
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
181 if (frameBuffer == NULL)
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
182 return NULL;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
183
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
184 error_handler_called = 0;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
185 if (clDecompressImage(compressionScheme, width, height, originalFormat,
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
186 compressedBufferSize, compressedBuffer,
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
187 (void *) getstringvalue(frameBuffer)) == FAILURE) {
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
188 DECREF(frameBuffer);
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
189 if (!error_handler_called)
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
190 err_setstr(ClError, "clDecompressImage failed");
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
191 return NULL;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
192 }
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
193
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
194 return frameBuffer;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
195 }
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
196
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
197 /********************************************************************
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
198 Sequential compression/decompression.
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
199 ********************************************************************/
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
200 #define CheckCompressor(self) if ((self)->ob_compressorHdl == NULL) { \
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
201 err_setstr(RuntimeError, "(de)compressor not active"); \
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
202 return NULL; \
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
203 }
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
204
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
205 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
206 doClose(clobject *self, object *args, int (*close_func)(CL_Handle))
1070
1a54d320f296 Fixed the last known bugs.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1061
diff changeset
207 {
1a54d320f296 Fixed the last known bugs.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1061
diff changeset
208 CheckCompressor(self);
1a54d320f296 Fixed the last known bugs.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1061
diff changeset
209
1a54d320f296 Fixed the last known bugs.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1061
diff changeset
210 if (!getnoarg(args))
1a54d320f296 Fixed the last known bugs.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1061
diff changeset
211 return NULL;
1a54d320f296 Fixed the last known bugs.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1061
diff changeset
212
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
213 error_handler_called = 0;
1075
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
214 if ((*close_func)(self->ob_compressorHdl) == FAILURE) {
1070
1a54d320f296 Fixed the last known bugs.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1061
diff changeset
215 if (!error_handler_called)
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
216 err_setstr(ClError, "close failed");
1070
1a54d320f296 Fixed the last known bugs.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1061
diff changeset
217 return NULL;
1a54d320f296 Fixed the last known bugs.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1061
diff changeset
218 }
1a54d320f296 Fixed the last known bugs.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1061
diff changeset
219
1a54d320f296 Fixed the last known bugs.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1061
diff changeset
220 self->ob_compressorHdl = NULL;
1a54d320f296 Fixed the last known bugs.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1061
diff changeset
221
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
222 if (self->ob_paramtypes)
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
223 DEL(self->ob_paramtypes);
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
224 self->ob_paramtypes = NULL;
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
225
1070
1a54d320f296 Fixed the last known bugs.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1061
diff changeset
226 INCREF(None);
1a54d320f296 Fixed the last known bugs.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1061
diff changeset
227 return None;
1a54d320f296 Fixed the last known bugs.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1061
diff changeset
228 }
1a54d320f296 Fixed the last known bugs.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1061
diff changeset
229
1a54d320f296 Fixed the last known bugs.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1061
diff changeset
230 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
231 clm_CloseCompressor(object *self, object *args)
1070
1a54d320f296 Fixed the last known bugs.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1061
diff changeset
232 {
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
233 return doClose(SELF, args, clCloseCompressor);
1070
1a54d320f296 Fixed the last known bugs.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1061
diff changeset
234 }
1a54d320f296 Fixed the last known bugs.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1061
diff changeset
235
1a54d320f296 Fixed the last known bugs.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1061
diff changeset
236 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
237 clm_CloseDecompressor(object *self, object *args)
1075
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
238 {
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
239 return doClose(SELF, args, clCloseDecompressor);
1075
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
240 }
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
241
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
242 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
243 clm_Compress(object *self, object *args)
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
244 {
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
245 int numberOfFrames;
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
246 int frameBufferSize, compressedBufferSize, size;
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
247 char *frameBuffer;
1061
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
248 object *data;
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
249
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
250 CheckCompressor(SELF);
1070
1a54d320f296 Fixed the last known bugs.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1061
diff changeset
251
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
252 if (!getargs(args, "(is#)", &numberOfFrames, &frameBuffer, &frameBufferSize))
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
253 return NULL;
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
254
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
255 error_handler_called = 0;
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
256 size = clGetParam(SELF->ob_compressorHdl, CL_COMPRESSED_BUFFER_SIZE);
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
257 compressedBufferSize = size;
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
258 if (error_handler_called)
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
259 return NULL;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
260
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
261 data = newsizedstringobject(NULL, size);
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
262 if (data == NULL)
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
263 return NULL;
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
264
1061
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
265 error_handler_called = 0;
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
266 if (clCompress(SELF->ob_compressorHdl, numberOfFrames,
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
267 (void *) frameBuffer, &compressedBufferSize,
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
268 (void *) getstringvalue(data)) == FAILURE) {
1061
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
269 DECREF(data);
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
270 if (!error_handler_called)
1061
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
271 err_setstr(ClError, "compress failed");
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
272 return NULL;
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
273 }
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
274
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
275 if (compressedBufferSize < size)
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
276 if (resizestring(&data, compressedBufferSize))
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
277 return NULL;
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
278
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
279 if (compressedBufferSize > size) {
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
280 /* we didn't get all "compressed" data */
1075
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
281 DECREF(data);
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
282 err_setstr(ClError, "compressed data is more than fitted");
1075
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
283 return NULL;
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
284 }
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
285
1061
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
286 return data;
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
287 }
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
288
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
289 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
290 clm_Decompress(object *self, object *args)
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
291 {
1061
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
292 object *data;
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
293 int numberOfFrames;
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
294 char *compressedData;
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
295 int compressedDataSize, dataSize;
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
296
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
297 CheckCompressor(SELF);
1070
1a54d320f296 Fixed the last known bugs.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1061
diff changeset
298
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
299 if (!getargs(args, "(is#)", &numberOfFrames, &compressedData,
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
300 &compressedDataSize))
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
301 return NULL;
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
302
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
303 error_handler_called = 0;
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
304 dataSize = clGetParam(SELF->ob_compressorHdl, CL_FRAME_BUFFER_SIZE);
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
305 if (error_handler_called)
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
306 return NULL;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
307
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
308 data = newsizedstringobject(NULL, dataSize);
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
309 if (data == NULL)
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
310 return NULL;
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
311
1061
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
312 error_handler_called = 0;
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
313 if (clDecompress(SELF->ob_compressorHdl, numberOfFrames,
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
314 compressedDataSize, (void *) compressedData,
1061
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
315 (void *) getstringvalue(data)) == FAILURE) {
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
316 DECREF(data);
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
317 if (!error_handler_called)
1061
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
318 err_setstr(ClError, "decompress failed");
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
319 return NULL;
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
320 }
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
321
1061
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
322 return data;
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
323 }
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
324
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
325 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
326 doParams(clobject *self, object *args, int (*func)(CL_Handle, int *, int),
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
327 int modified)
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
328 {
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
329 object *list, *v;
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
330 int *PVbuffer;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
331 int length;
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
332 int i;
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
333 float number;
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
334
1070
1a54d320f296 Fixed the last known bugs.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1061
diff changeset
335 CheckCompressor(self);
1a54d320f296 Fixed the last known bugs.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1061
diff changeset
336
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
337 if (!getargs(args, "O", &list))
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
338 return NULL;
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
339 if (!is_listobject(list)) {
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
340 err_badarg();
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
341 return NULL;
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
342 }
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
343 length = getlistsize(list);
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
344 PVbuffer = NEW(int, length);
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
345 if (PVbuffer == NULL)
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
346 return err_nomem();
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
347 for (i = 0; i < length; i++) {
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
348 v = getlistitem(list, i);
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
349 if (is_floatobject(v)) {
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
350 number = getfloatvalue(v);
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
351 PVbuffer[i] = CL_TypeIsInt(number);
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
352 } else if (is_intobject(v)) {
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
353 PVbuffer[i] = getintvalue(v);
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
354 if ((i & 1) &&
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
355 param_type_is_float(self, PVbuffer[i-1]) > 0) {
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
356 number = PVbuffer[i];
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
357 PVbuffer[i] = CL_TypeIsInt(number);
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
358 }
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
359 } else {
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
360 DEL(PVbuffer);
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
361 err_badarg();
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
362 return NULL;
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
363 }
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
364 }
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
365
1061
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
366 error_handler_called = 0;
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
367 (*func)(self->ob_compressorHdl, PVbuffer, length);
1334
f3848f74b282 * clmodule.c (doParams): free PVbuffer in error condition.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1252
diff changeset
368 if (error_handler_called) {
f3848f74b282 * clmodule.c (doParams): free PVbuffer in error condition.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1252
diff changeset
369 DEL(PVbuffer);
1061
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
370 return NULL;
1334
f3848f74b282 * clmodule.c (doParams): free PVbuffer in error condition.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1252
diff changeset
371 }
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
372
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
373 if (modified) {
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
374 for (i = 0; i < length; i++) {
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
375 if ((i & 1) &&
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
376 param_type_is_float(self, PVbuffer[i-1]) > 0) {
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
377 number = CL_TypeIsFloat(PVbuffer[i]);
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
378 v = newfloatobject(number);
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
379 } else
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
380 v = newintobject(PVbuffer[i]);
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
381 setlistitem(list, i, v);
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
382 }
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
383 }
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
384
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
385 DEL(PVbuffer);
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
386
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
387 INCREF(None);
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
388 return None;
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
389 }
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
390
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
391 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
392 clm_GetParams(object *self, object *args)
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
393 {
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
394 return doParams(SELF, args, clGetParams, 1);
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
395 }
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
396
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
397 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
398 clm_SetParams(object *self, object *args)
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
399 {
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
400 return doParams(SELF, args, clSetParams, 0);
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
401 }
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
402
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
403 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
404 do_get(clobject *self, object *args, int (*func)(CL_Handle, int))
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
405 {
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
406 int paramID, value;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
407 float fvalue;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
408
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
409 CheckCompressor(self);
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
410
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
411 if (!getargs(args, "i", &paramID))
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
412 return NULL;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
413
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
414 error_handler_called = 0;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
415 value = (*func)(self->ob_compressorHdl, paramID);
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
416 if (error_handler_called)
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
417 return NULL;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
418
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
419 if (param_type_is_float(self, paramID) > 0) {
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
420 fvalue = CL_TypeIsFloat(value);
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
421 return newfloatobject(fvalue);
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
422 }
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
423
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
424 return newintobject(value);
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
425 }
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
426
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
427 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
428 clm_GetParam(object *self, object *args)
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
429 {
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
430 return do_get(SELF, args, clGetParam);
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
431 }
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
432
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
433 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
434 clm_GetDefault(object *self, object *args)
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
435 {
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
436 return do_get(SELF, args, clGetDefault);
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
437 }
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
438
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
439 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
440 clm_SetParam(object *self, object *args)
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
441 {
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
442 int paramID, value;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
443 float fvalue;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
444
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
445 CheckCompressor(SELF);
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
446
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
447 if (!getargs(args, "(ii)", &paramID, &value)) {
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
448 err_clear();
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
449 if (!getargs(args, "(if)", &paramID, &fvalue)) {
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
450 err_clear();
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
451 err_setstr(TypeError, "bad argument list (format '(ii)' or '(if)')");
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
452 return NULL;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
453 }
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
454 value = CL_TypeIsInt(fvalue);
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
455 } else {
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
456 if (param_type_is_float(SELF, paramID) > 0) {
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
457 fvalue = value;
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
458 value = CL_TypeIsInt(fvalue);
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
459 }
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
460 }
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
461
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
462 error_handler_called = 0;
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
463 value = clSetParam(SELF->ob_compressorHdl, paramID, value);
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
464 if (error_handler_called)
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
465 return NULL;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
466
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
467 if (param_type_is_float(SELF, paramID) > 0)
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
468 return newfloatobject(CL_TypeIsFloat(value));
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
469 else
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
470 return newintobject(value);
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
471 }
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
472
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
473 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
474 clm_GetParamID(object *self, object *args)
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
475 {
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
476 char *name;
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
477 int value;
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
478
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
479 CheckCompressor(SELF);
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
480
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
481 if (!getargs(args, "s", &name))
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
482 return NULL;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
483
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
484 error_handler_called = 0;
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
485 value = clGetParamID(SELF->ob_compressorHdl, name);
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
486 if (value == FAILURE) {
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
487 if (!error_handler_called)
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
488 err_setstr(ClError, "getparamid failed");
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
489 return NULL;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
490 }
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
491
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
492 return newintobject(value);
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
493 }
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
494
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
495 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
496 clm_QueryParams(object *self, object *args)
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
497 {
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
498 int bufferlength;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
499 int *PVbuffer;
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
500 object *list;
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
501 int i;
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
502
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
503 CheckCompressor(SELF);
1070
1a54d320f296 Fixed the last known bugs.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1061
diff changeset
504
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
505 if (!getnoarg(args))
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
506 return NULL;
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
507
1061
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
508 error_handler_called = 0;
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
509 bufferlength = clQueryParams(SELF->ob_compressorHdl, 0, 0);
1061
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
510 if (error_handler_called)
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
511 return NULL;
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
512
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
513 PVbuffer = NEW(int, bufferlength);
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
514 if (PVbuffer == NULL)
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
515 return err_nomem();
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
516
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
517 bufferlength = clQueryParams(SELF->ob_compressorHdl, PVbuffer,
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
518 bufferlength);
1061
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
519 if (error_handler_called) {
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
520 DEL(PVbuffer);
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
521 return NULL;
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
522 }
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
523
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
524 list = newlistobject(bufferlength);
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
525 if (list == NULL) {
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
526 DEL(PVbuffer);
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
527 return NULL;
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
528 }
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
529
1061
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
530 for (i = 0; i < bufferlength; i++) {
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
531 if (i & 1)
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
532 setlistitem(list, i, newintobject(PVbuffer[i]));
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
533 else if (PVbuffer[i] == 0) {
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
534 INCREF(None);
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
535 setlistitem(list, i, None);
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
536 } else
1061
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
537 setlistitem(list, i, newstringobject((char *) PVbuffer[i]));
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
538 }
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
539
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
540 DEL(PVbuffer);
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
541
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
542 return list;
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
543 }
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
544
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
545 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
546 clm_GetMinMax(object *self, object *args)
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
547 {
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
548 int param, min, max;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
549 float fmin, fmax;
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
550
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
551 CheckCompressor(SELF);
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
552
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
553 if (!getargs(args, "i", &param))
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
554 return NULL;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
555
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
556 clGetMinMax(SELF->ob_compressorHdl, param, &min, &max);
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
557
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
558 if (param_type_is_float(SELF, param) > 0) {
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
559 fmin = CL_TypeIsFloat(min);
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
560 fmax = CL_TypeIsFloat(max);
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
561 return mkvalue("(ff)", fmin, fmax);
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
562 }
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
563
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
564 return mkvalue("(ii)", min, max);
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
565 }
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
566
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
567 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
568 clm_GetName(object *self, object *args)
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
569 {
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
570 int param;
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
571 char *name;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
572
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
573 CheckCompressor(SELF);
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
574
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
575 if (!getargs(args, "i", &param))
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
576 return NULL;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
577
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
578 error_handler_called = 0;
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
579 name = clGetName(SELF->ob_compressorHdl, param);
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
580 if (name == NULL || error_handler_called) {
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
581 if (!error_handler_called)
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
582 err_setstr(ClError, "getname failed");
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
583 return NULL;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
584 }
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
585
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
586 return newstringobject(name);
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
587 }
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
588
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
589 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
590 clm_QuerySchemeFromHandle(object *self, object *args)
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
591 {
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
592 CheckCompressor(SELF);
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
593
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
594 if (!getnoarg(args))
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
595 return NULL;
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
596
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
597 return newintobject(clQuerySchemeFromHandle(SELF->ob_compressorHdl));
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
598 }
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
599
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
600 static object *
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
601 clm_ReadHeader(object *self, object *args)
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
602 {
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
603 char *header;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
604 int headerSize;
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
605
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
606 CheckCompressor(SELF);
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
607
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
608 if (!getargs(args, "s#", &header, &headerSize))
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
609 return NULL;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
610
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
611 return newintobject(clReadHeader(SELF->ob_compressorHdl,
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
612 headerSize, header));
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
613 }
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
614
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
615 static struct methodlist compressor_methods[] = {
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
616 {"close", clm_CloseCompressor}, /* alias */
1075
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
617 {"CloseCompressor", clm_CloseCompressor},
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
618 {"Compress", clm_Compress},
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
619 {"GetDefault", clm_GetDefault},
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
620 {"GetMinMax", clm_GetMinMax},
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
621 {"GetName", clm_GetName},
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
622 {"GetParam", clm_GetParam},
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
623 {"GetParamID", clm_GetParamID},
1075
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
624 {"GetParams", clm_GetParams},
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
625 {"QueryParams", clm_QueryParams},
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
626 {"QuerySchemeFromHandle",clm_QuerySchemeFromHandle},
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
627 {"SetParam", clm_SetParam},
1075
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
628 {"SetParams", clm_SetParams},
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
629 {NULL, NULL} /* sentinel */
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
630 };
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
631
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
632 static struct methodlist decompressor_methods[] = {
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
633 {"close", clm_CloseDecompressor}, /* alias */
1075
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
634 {"CloseDecompressor", clm_CloseDecompressor},
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
635 {"Decompress", clm_Decompress},
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
636 {"GetDefault", clm_GetDefault},
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
637 {"GetMinMax", clm_GetMinMax},
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
638 {"GetName", clm_GetName},
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
639 {"GetParam", clm_GetParam},
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
640 {"GetParamID", clm_GetParamID},
1075
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
641 {"GetParams", clm_GetParams},
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
642 {"ReadHeader", clm_ReadHeader},
1075
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
643 {"QueryParams", clm_QueryParams},
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
644 {"QuerySchemeFromHandle",clm_QuerySchemeFromHandle},
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
645 {"SetParam", clm_SetParam},
1075
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
646 {"SetParams", clm_SetParams},
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
647 {NULL, NULL} /* sentinel */
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
648 };
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
649
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
650 static void
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
651 cl_dealloc(object *self)
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
652 {
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
653 if (SELF->ob_compressorHdl) {
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
654 if (SELF->ob_isCompressor)
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
655 clCloseCompressor(SELF->ob_compressorHdl);
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
656 else
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
657 clCloseDecompressor(SELF->ob_compressorHdl);
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
658 }
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
659 DEL(self);
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
660 }
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
661
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
662 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
663 cl_getattr(object *self, char *name)
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
664 {
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
665 if (SELF->ob_isCompressor)
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
666 return findmethod(compressor_methods, self, name);
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
667 else
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
668 return findmethod(decompressor_methods, self, name);
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
669 }
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
670
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
671 static typeobject Cltype = {
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
672 OB_HEAD_INIT(&Typetype)
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
673 0, /*ob_size*/
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
674 "cl", /*tp_name*/
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
675 sizeof(clobject), /*tp_size*/
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
676 0, /*tp_itemsize*/
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
677 /* methods */
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
678 cl_dealloc, /*tp_dealloc*/
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
679 0, /*tp_print*/
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
680 cl_getattr, /*tp_getattr*/
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
681 0, /*tp_setattr*/
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
682 0, /*tp_compare*/
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
683 0, /*tp_repr*/
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
684 0, /*tp_as_number*/
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
685 0, /*tp_as_sequence*/
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
686 0, /*tp_as_mapping*/
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
687 };
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
688
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
689 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
690 doOpen(object *self, object *args, int (*open_func)(int, CL_Handle *),
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
691 int iscompressor)
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
692 {
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
693 int scheme;
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
694 clobject *new;
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
695
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
696 if (!getargs(args, "i", &scheme))
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
697 return NULL;
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
698
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
699 new = NEWOBJ(clobject, &Cltype);
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
700 if (new == NULL)
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
701 return NULL;
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
702
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
703 new->ob_compressorHdl = NULL;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
704 new->ob_isCompressor = iscompressor;
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
705 new->ob_paramtypes = NULL;
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
706
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
707 error_handler_called = 0;
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
708 if ((*open_func)(scheme, &new->ob_compressorHdl) == FAILURE) {
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
709 DECREF(new);
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
710 if (!error_handler_called)
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
711 err_setstr(ClError, "Open(De)Compressor failed");
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
712 return NULL;
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
713 }
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
714 return new;
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
715 }
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
716
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
717 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
718 cl_OpenCompressor(object *self, object *args)
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
719 {
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
720 return doOpen(self, args, clOpenCompressor, 1);
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
721 }
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
722
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
723 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
724 cl_OpenDecompressor(object *self, object *args)
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
725 {
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
726 return doOpen(self, args, clOpenDecompressor, 0);
1075
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
727 }
98cb6a1252cb Lots of little fixes.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1070
diff changeset
728
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
729 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
730 cl_QueryScheme(object *self, object *args)
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
731 {
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
732 char *header;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
733 int headerlen;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
734 int scheme;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
735
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
736 if (!getargs(args, "s#", &header, &headerlen))
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
737 return NULL;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
738
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
739 scheme = clQueryScheme(header);
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
740 if (scheme < 0) {
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
741 err_setstr(ClError, "unknown compression scheme");
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
742 return NULL;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
743 }
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
744
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
745 return newintobject(scheme);
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
746 }
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
747
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
748 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
749 cl_QueryMaxHeaderSize(object *self, object *args)
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
750 {
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
751 int scheme;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
752
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
753 if (!getargs(args, "i", &scheme))
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
754 return NULL;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
755
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
756 return newintobject(clQueryMaxHeaderSize(scheme));
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
757 }
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
758
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
759 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
760 cl_QueryAlgorithms(object *self, object *args)
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
761 {
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
762 int algorithmMediaType;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
763 int bufferlength;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
764 int *PVbuffer;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
765 object *list;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
766 int i;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
767
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
768 if (!getargs(args, "i", &algorithmMediaType))
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
769 return NULL;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
770
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
771 error_handler_called = 0;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
772 bufferlength = clQueryAlgorithms(algorithmMediaType, 0, 0);
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
773 if (error_handler_called)
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
774 return NULL;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
775
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
776 PVbuffer = NEW(int, bufferlength);
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
777 if (PVbuffer == NULL)
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
778 return err_nomem();
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
779
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
780 bufferlength = clQueryAlgorithms(algorithmMediaType, PVbuffer,
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
781 bufferlength);
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
782 if (error_handler_called) {
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
783 DEL(PVbuffer);
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
784 return NULL;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
785 }
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
786
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
787 list = newlistobject(bufferlength);
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
788 if (list == NULL) {
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
789 DEL(PVbuffer);
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
790 return NULL;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
791 }
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
792
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
793 for (i = 0; i < bufferlength; i++) {
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
794 if (i & 1)
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
795 setlistitem(list, i, newintobject(PVbuffer[i]));
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
796 else if (PVbuffer[i] == 0) {
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
797 INCREF(None);
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
798 setlistitem(list, i, None);
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
799 } else
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
800 setlistitem(list, i, newstringobject((char *) PVbuffer[i]));
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
801 }
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
802
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
803 DEL(PVbuffer);
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
804
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
805 return list;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
806 }
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
807
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
808 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
809 cl_QuerySchemeFromName(object *self, object *args)
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
810 {
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
811 int algorithmMediaType;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
812 char *name;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
813 int scheme;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
814
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
815 if (!getargs(args, "(is)", &algorithmMediaType, &name))
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
816 return NULL;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
817
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
818 error_handler_called = 0;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
819 scheme = clQuerySchemeFromName(algorithmMediaType, name);
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
820 if (error_handler_called) {
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
821 err_setstr(ClError, "unknown compression scheme");
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
822 return NULL;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
823 }
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
824
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
825 return newintobject(scheme);
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
826 }
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
827
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
828 static object *
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
829 cl_GetAlgorithmName(object *self, object *args)
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
830 {
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
831 int scheme;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
832 char *name;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
833
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
834 if (!getargs(args, "i", &scheme))
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
835 return NULL;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
836
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
837 name = clGetAlgorithmName(scheme);
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
838 if (name == 0) {
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
839 err_setstr(ClError, "unknown compression scheme");
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
840 return NULL;
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
841 }
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
842
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
843 return newstringobject(name);
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
844 }
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
845
1222
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
846 static object *
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
847 do_set(object *self, object *args, int (*func)(int, int, int))
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
848 {
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
849 int scheme, paramID, value;
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
850 float fvalue;
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
851 int is_float = 0;
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
852
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
853 if (!getargs(args, "(iii)", &scheme, &paramID, &value)) {
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
854 err_clear();
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
855 if (!getargs(args, "(iif)", &scheme, &paramID, &fvalue)) {
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
856 err_clear();
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
857 err_setstr(TypeError, "bad argument list (format '(iii)' or '(iif)')");
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
858 return NULL;
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
859 }
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
860 value = CL_TypeIsInt(fvalue);
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
861 is_float = 1;
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
862 } else {
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
863 /* check some parameters which we know to be floats */
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
864 switch (scheme) {
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
865 case CL_COMPRESSION_RATIO:
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
866 case CL_SPEED:
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
867 fvalue = value;
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
868 value = CL_TypeIsInt(fvalue);
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
869 is_float = 1;
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
870 break;
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
871 }
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
872 }
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
873
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
874 error_handler_called = 0;
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
875 value = (*func)(scheme, paramID, value);
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
876 if (error_handler_called)
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
877 return NULL;
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
878
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
879 if (is_float)
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
880 return newfloatobject(CL_TypeIsFloat(value));
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
881 else
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
882 return newintobject(value);
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
883 }
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
884
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
885 static object *
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
886 cl_SetDefault(object *self, object *args)
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
887 {
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
888 return do_set(self, args, clSetDefault);
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
889 }
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
890
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
891 static object *
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
892 cl_SetMin(object *self, object *args)
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
893 {
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
894 return do_set(self, args, clSetMin);
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
895 }
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
896
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
897 static object *
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
898 cl_SetMax(object *self, object *args)
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
899 {
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
900 return do_set(self, args, clSetMax);
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
901 }
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
902
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
903 #ifdef CLDEBUG
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
904 static object *
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
905 cvt_type(object *self, object *args)
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
906 {
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
907 int number;
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
908 float fnumber;
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
909
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
910 if (getargs(args, "i", &number))
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
911 return newfloatobject(CL_TypeIsFloat(number));
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
912 else {
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
913 err_clear();
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
914 if (getargs(args, "f", &fnumber))
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
915 return newintobject(CL_TypeIsInt(fnumber));
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
916 return NULL;
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
917 }
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
918 }
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
919 #endif
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
920
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
921 static struct methodlist cl_methods[] = {
1116
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
922 {"CompressImage", cl_CompressImage},
c26f5bec3438 adapted to newest version of CL library.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1075
diff changeset
923 {"DecompressImage", cl_DecompressImage},
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
924 {"GetAlgorithmName", cl_GetAlgorithmName},
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
925 {"OpenCompressor", cl_OpenCompressor},
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
926 {"OpenDecompressor", cl_OpenDecompressor},
1205
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
927 {"QueryAlgorithms", cl_QueryAlgorithms},
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
928 {"QueryMaxHeaderSize", cl_QueryMaxHeaderSize},
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
929 {"QueryScheme", cl_QueryScheme},
ecfbc246eeaa CL.py, clmodule.c: Adapted to new CL library. Lots of new methods.
Sjoerd Mullender <sjoerd@acm.org>
parents: 1116
diff changeset
930 {"QuerySchemeFromName", cl_QuerySchemeFromName},
1222
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
931 {"SetDefault", cl_SetDefault},
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
932 {"SetMax", cl_SetMax},
ce7ae8f81b06 * clmodule.c: the documentation was wrong, so changed the interface
Sjoerd Mullender <sjoerd@acm.org>
parents: 1219
diff changeset
933 {"SetMin", cl_SetMin},
1219
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
934 #ifdef CLDEBUG
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
935 {"cvt_type", cvt_type},
64ec7bd2e837 * clmodule.c: use function prototypes (found and fixed some bugs this
Sjoerd Mullender <sjoerd@acm.org>
parents: 1205
diff changeset
936 #endif
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
937 {NULL, NULL} /* Sentinel */
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
938 };
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
939
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
940 void
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
941 initcl()
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
942 {
1061
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
943 object *m, *d;
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
944
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
945 m = initmodule("cl", cl_methods);
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
946 d = getmoduledict(m);
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
947
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
948 ClError = newstringobject("cl.error");
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
949 if (ClError == NULL || dictinsert(d, "error", ClError) != 0)
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
950 fatal("can't define cl.error");
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
951
a3fa229775c1 New built-in module "cl" (Compression Library). Only for Irix 4.0.5
Sjoerd Mullender <sjoerd@acm.org>
parents: 1056
diff changeset
952 (void) clSetErrorHandler(cl_ErrorHandler);
1056
9bf75e4d9aec New built-in module cl, the Compression Library.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
953 }