Mercurial > cpython-lru_cache-weakref
annotate Modules/cdmodule.c @ 13778:f6e4a9dd67cd legacy-trunk
Rename the "parser" package to "parsers" to be compatible with the PyXML
project.
| author | Fred Drake <fdrake@acm.org> |
|---|---|
| date | Mon, 31 Jul 2000 23:59:54 +0000 |
| parents | 8a063423e0b7 |
| children | 5397fdf88ec2 |
| rev | line source |
|---|---|
| 820 | 1 /********************************************************** |
|
13255
916fb024ce94
Change copyright notice.
Guido van Rossum <guido@python.org>
parents:
12576
diff
changeset
|
2 Copyright (c) 2000, BeOpen.com. |
|
916fb024ce94
Change copyright notice.
Guido van Rossum <guido@python.org>
parents:
12576
diff
changeset
|
3 Copyright (c) 1995-2000, Corporation for National Research Initiatives. |
|
916fb024ce94
Change copyright notice.
Guido van Rossum <guido@python.org>
parents:
12576
diff
changeset
|
4 Copyright (c) 1990-1995, Stichting Mathematisch Centrum. |
|
916fb024ce94
Change copyright notice.
Guido van Rossum <guido@python.org>
parents:
12576
diff
changeset
|
5 All rights reserved. |
| 820 | 6 |
|
13255
916fb024ce94
Change copyright notice.
Guido van Rossum <guido@python.org>
parents:
12576
diff
changeset
|
7 See the file "Misc/COPYRIGHT" for information on usage and |
|
916fb024ce94
Change copyright notice.
Guido van Rossum <guido@python.org>
parents:
12576
diff
changeset
|
8 redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. |
| 820 | 9 ******************************************************************/ |
| 10 | |
| 11 /* CD module -- interface to Mark Callow's and Roger Chickering's */ | |
| 12 /* CD Audio Library (CD). */ | |
| 13 | |
| 14 #include <sys/types.h> | |
| 15 #include <cdaudio.h> | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
16 #include "Python.h" |
| 820 | 17 |
| 18 #define NCALLBACKS 8 | |
| 19 | |
| 20 typedef struct { | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
21 PyObject_HEAD |
| 820 | 22 CDPLAYER *ob_cdplayer; |
| 23 } cdplayerobject; | |
| 24 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
25 static PyObject *CdError; /* exception cd.error */ |
|
1063
aaa3bccb143a
Defined exception cd.error which is used for errors other than
Sjoerd Mullender <sjoerd@acm.org>
parents:
926
diff
changeset
|
26 |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
27 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
28 CD_allowremoval(cdplayerobject *self, PyObject *args) |
| 820 | 29 { |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
30 if (!PyArg_ParseTuple(args, ":allowremoval")) |
| 820 | 31 return NULL; |
| 32 | |
| 33 CDallowremoval(self->ob_cdplayer); | |
| 34 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
35 Py_INCREF(Py_None); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
36 return Py_None; |
| 820 | 37 } |
| 38 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
39 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
40 CD_preventremoval(cdplayerobject *self, PyObject *args) |
| 820 | 41 { |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
42 if (!PyArg_ParseTuple(args, ":preventremoval")) |
| 820 | 43 return NULL; |
| 44 | |
| 45 CDpreventremoval(self->ob_cdplayer); | |
| 46 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
47 Py_INCREF(Py_None); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
48 return Py_None; |
| 820 | 49 } |
| 50 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
51 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
52 CD_bestreadsize(cdplayerobject *self, PyObject *args) |
| 820 | 53 { |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
54 if (!PyArg_ParseTuple(args, ":bestreadsize")) |
| 820 | 55 return NULL; |
| 56 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
57 return PyInt_FromLong((long) CDbestreadsize(self->ob_cdplayer)); |
| 820 | 58 } |
| 59 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
60 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
61 CD_close(cdplayerobject *self, PyObject *args) |
| 820 | 62 { |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
63 if (!PyArg_ParseTuple(args, ":close")) |
| 820 | 64 return NULL; |
| 65 | |
| 66 if (!CDclose(self->ob_cdplayer)) { | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
67 PyErr_SetFromErrno(CdError); /* XXX - ??? */ |
| 820 | 68 return NULL; |
| 69 } | |
| 70 self->ob_cdplayer = NULL; | |
| 71 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
72 Py_INCREF(Py_None); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
73 return Py_None; |
| 820 | 74 } |
| 75 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
76 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
77 CD_eject(cdplayerobject *self, PyObject *args) |
| 820 | 78 { |
|
849
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
79 CDSTATUS status; |
|
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
80 |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
81 if (!PyArg_ParseTuple(args, ":eject")) |
| 820 | 82 return NULL; |
| 83 | |
| 84 if (!CDeject(self->ob_cdplayer)) { | |
|
849
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
85 if (CDgetstatus(self->ob_cdplayer, &status) && |
|
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
86 status.state == CD_NODISC) |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
87 PyErr_SetString(CdError, "no disc in player"); |
|
849
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
88 else |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
89 PyErr_SetString(CdError, "eject failed"); |
| 820 | 90 return NULL; |
| 91 } | |
| 92 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
93 Py_INCREF(Py_None); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
94 return Py_None; |
| 820 | 95 } |
| 96 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
97 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
98 CD_getstatus(cdplayerobject *self, PyObject *args) |
| 820 | 99 { |
| 100 CDSTATUS status; | |
| 101 | |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
102 if (!PyArg_ParseTuple(args, ":getstatus")) |
| 820 | 103 return NULL; |
| 104 | |
| 105 if (!CDgetstatus(self->ob_cdplayer, &status)) { | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
106 PyErr_SetFromErrno(CdError); /* XXX - ??? */ |
| 820 | 107 return NULL; |
| 108 } | |
| 109 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
110 return Py_BuildValue("(ii(iii)(iii)(iii)iiii)", status.state, |
|
830
ea5072de7427
Return more structured data in some cases
Guido van Rossum <guido@python.org>
parents:
820
diff
changeset
|
111 status.track, status.min, status.sec, status.frame, |
|
ea5072de7427
Return more structured data in some cases
Guido van Rossum <guido@python.org>
parents:
820
diff
changeset
|
112 status.abs_min, status.abs_sec, status.abs_frame, |
|
ea5072de7427
Return more structured data in some cases
Guido van Rossum <guido@python.org>
parents:
820
diff
changeset
|
113 status.total_min, status.total_sec, status.total_frame, |
|
ea5072de7427
Return more structured data in some cases
Guido van Rossum <guido@python.org>
parents:
820
diff
changeset
|
114 status.first, status.last, status.scsi_audio, |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
115 status.cur_block); |
| 820 | 116 } |
| 117 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
118 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
119 CD_gettrackinfo(cdplayerobject *self, PyObject *args) |
| 820 | 120 { |
| 121 int track; | |
| 122 CDTRACKINFO info; | |
|
849
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
123 CDSTATUS status; |
| 820 | 124 |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
125 if (!PyArg_ParseTuple(args, "i:gettrackinfo", &track)) |
| 820 | 126 return NULL; |
| 127 | |
| 128 if (!CDgettrackinfo(self->ob_cdplayer, track, &info)) { | |
|
849
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
129 if (CDgetstatus(self->ob_cdplayer, &status) && |
|
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
130 status.state == CD_NODISC) |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
131 PyErr_SetString(CdError, "no disc in player"); |
|
849
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
132 else |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
133 PyErr_SetString(CdError, "gettrackinfo failed"); |
| 820 | 134 return NULL; |
| 135 } | |
| 136 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
137 return Py_BuildValue("((iii)(iii))", |
| 820 | 138 info.start_min, info.start_sec, info.start_frame, |
| 139 info.total_min, info.total_sec, info.total_frame); | |
| 140 } | |
| 141 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
142 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
143 CD_msftoblock(cdplayerobject *self, PyObject *args) |
| 820 | 144 { |
| 145 int min, sec, frame; | |
| 146 | |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
147 if (!PyArg_ParseTuple(args, "iii:msftoblock", &min, &sec, &frame)) |
| 820 | 148 return NULL; |
| 149 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
150 return PyInt_FromLong((long) CDmsftoblock(self->ob_cdplayer, |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
151 min, sec, frame)); |
| 820 | 152 } |
| 153 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
154 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
155 CD_play(cdplayerobject *self, PyObject *args) |
| 820 | 156 { |
| 157 int start, play; | |
|
849
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
158 CDSTATUS status; |
| 820 | 159 |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
160 if (!PyArg_ParseTuple(args, "ii:play", &start, &play)) |
| 820 | 161 return NULL; |
| 162 | |
| 163 if (!CDplay(self->ob_cdplayer, start, play)) { | |
|
849
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
164 if (CDgetstatus(self->ob_cdplayer, &status) && |
|
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
165 status.state == CD_NODISC) |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
166 PyErr_SetString(CdError, "no disc in player"); |
|
849
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
167 else |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
168 PyErr_SetString(CdError, "play failed"); |
| 820 | 169 return NULL; |
| 170 } | |
| 171 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
172 Py_INCREF(Py_None); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
173 return Py_None; |
| 820 | 174 } |
| 175 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
176 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
177 CD_playabs(cdplayerobject *self, PyObject *args) |
| 820 | 178 { |
| 179 int min, sec, frame, play; | |
|
849
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
180 CDSTATUS status; |
| 820 | 181 |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
182 if (!PyArg_ParseTuple(args, "iiii:playabs", &min, &sec, &frame, &play)) |
| 820 | 183 return NULL; |
| 184 | |
| 185 if (!CDplayabs(self->ob_cdplayer, min, sec, frame, play)) { | |
|
849
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
186 if (CDgetstatus(self->ob_cdplayer, &status) && |
|
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
187 status.state == CD_NODISC) |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
188 PyErr_SetString(CdError, "no disc in player"); |
|
849
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
189 else |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
190 PyErr_SetString(CdError, "playabs failed"); |
| 820 | 191 return NULL; |
| 192 } | |
| 193 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
194 Py_INCREF(Py_None); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
195 return Py_None; |
| 820 | 196 } |
| 197 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
198 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
199 CD_playtrack(cdplayerobject *self, PyObject *args) |
| 820 | 200 { |
| 201 int start, play; | |
|
849
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
202 CDSTATUS status; |
| 820 | 203 |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
204 if (!PyArg_ParseTuple(args, "ii:playtrack", &start, &play)) |
| 820 | 205 return NULL; |
| 206 | |
| 207 if (!CDplaytrack(self->ob_cdplayer, start, play)) { | |
|
849
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
208 if (CDgetstatus(self->ob_cdplayer, &status) && |
|
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
209 status.state == CD_NODISC) |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
210 PyErr_SetString(CdError, "no disc in player"); |
|
849
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
211 else |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
212 PyErr_SetString(CdError, "playtrack failed"); |
| 820 | 213 return NULL; |
| 214 } | |
| 215 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
216 Py_INCREF(Py_None); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
217 return Py_None; |
| 820 | 218 } |
| 219 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
220 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
221 CD_playtrackabs(cdplayerobject *self, PyObject *args) |
| 820 | 222 { |
| 223 int track, min, sec, frame, play; | |
|
849
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
224 CDSTATUS status; |
| 820 | 225 |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
226 if (!PyArg_ParseTuple(args, "iiiii:playtrackabs", &track, &min, &sec, |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
227 &frame, &play)) |
| 820 | 228 return NULL; |
| 229 | |
| 230 if (!CDplaytrackabs(self->ob_cdplayer, track, min, sec, frame, play)) { | |
|
849
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
231 if (CDgetstatus(self->ob_cdplayer, &status) && |
|
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
232 status.state == CD_NODISC) |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
233 PyErr_SetString(CdError, "no disc in player"); |
|
849
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
234 else |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
235 PyErr_SetString(CdError, "playtrackabs failed"); |
| 820 | 236 return NULL; |
| 237 } | |
| 238 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
239 Py_INCREF(Py_None); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
240 return Py_None; |
| 820 | 241 } |
| 242 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
243 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
244 CD_readda(cdplayerobject *self, PyObject *args) |
| 820 | 245 { |
| 246 int numframes, n; | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
247 PyObject *result; |
| 820 | 248 |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
249 if (!PyArg_ParseTuple(args, "i:readda", &numframes)) |
| 820 | 250 return NULL; |
| 251 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
252 result = PyString_FromStringAndSize(NULL, numframes * sizeof(CDFRAME)); |
| 820 | 253 if (result == NULL) |
| 254 return NULL; | |
| 255 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
256 n = CDreadda(self->ob_cdplayer, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
257 (CDFRAME *) PyString_AsString(result), numframes); |
| 820 | 258 if (n == -1) { |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
259 Py_DECREF(result); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
260 PyErr_SetFromErrno(CdError); |
| 820 | 261 return NULL; |
| 262 } | |
| 263 if (n < numframes) | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
264 if (_PyString_Resize(&result, n * sizeof(CDFRAME))) |
| 820 | 265 return NULL; |
| 266 | |
| 267 return result; | |
| 268 } | |
| 269 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
270 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
271 CD_seek(cdplayerobject *self, PyObject *args) |
| 820 | 272 { |
| 273 int min, sec, frame; | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
274 long PyTryBlock; |
| 820 | 275 |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
276 if (!PyArg_ParseTuple(args, "iii:seek", &min, &sec, &frame)) |
| 820 | 277 return NULL; |
| 278 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
279 PyTryBlock = CDseek(self->ob_cdplayer, min, sec, frame); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
280 if (PyTryBlock == -1) { |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
281 PyErr_SetFromErrno(CdError); |
| 820 | 282 return NULL; |
| 283 } | |
| 284 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
285 return PyInt_FromLong(PyTryBlock); |
| 820 | 286 } |
| 287 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
288 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
289 CD_seektrack(cdplayerobject *self, PyObject *args) |
| 820 | 290 { |
| 291 int track; | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
292 long PyTryBlock; |
| 820 | 293 |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
294 if (!PyArg_ParseTuple(args, "i:seektrack", &track)) |
| 820 | 295 return NULL; |
| 296 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
297 PyTryBlock = CDseektrack(self->ob_cdplayer, track); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
298 if (PyTryBlock == -1) { |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
299 PyErr_SetFromErrno(CdError); |
| 820 | 300 return NULL; |
| 301 } | |
| 302 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
303 return PyInt_FromLong(PyTryBlock); |
| 820 | 304 } |
| 305 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
306 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
307 CD_seekblock(cdplayerobject *self, PyObject *args) |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
308 { |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
309 unsigned long PyTryBlock; |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
310 |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
311 if (!PyArg_ParseTuple(args, "l:seekblock", &PyTryBlock)) |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
312 return NULL; |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
313 |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
314 PyTryBlock = CDseekblock(self->ob_cdplayer, PyTryBlock); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
315 if (PyTryBlock == (unsigned long) -1) { |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
316 PyErr_SetFromErrno(CdError); |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
317 return NULL; |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
318 } |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
319 |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
320 return PyInt_FromLong(PyTryBlock); |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
321 } |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
322 |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
323 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
324 CD_stop(cdplayerobject *self, PyObject *args) |
| 820 | 325 { |
|
849
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
326 CDSTATUS status; |
|
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
327 |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
328 if (!PyArg_ParseTuple(args, ":stop")) |
| 820 | 329 return NULL; |
| 330 | |
| 331 if (!CDstop(self->ob_cdplayer)) { | |
|
849
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
332 if (CDgetstatus(self->ob_cdplayer, &status) && |
|
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
333 status.state == CD_NODISC) |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
334 PyErr_SetString(CdError, "no disc in player"); |
|
849
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
335 else |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
336 PyErr_SetString(CdError, "stop failed"); |
| 820 | 337 return NULL; |
| 338 } | |
| 339 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
340 Py_INCREF(Py_None); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
341 return Py_None; |
| 820 | 342 } |
| 343 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
344 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
345 CD_togglepause(cdplayerobject *self, PyObject *args) |
| 820 | 346 { |
|
849
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
347 CDSTATUS status; |
|
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
348 |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
349 if (!PyArg_ParseTuple(args, ":togglepause")) |
| 820 | 350 return NULL; |
| 351 | |
| 352 if (!CDtogglepause(self->ob_cdplayer)) { | |
|
849
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
353 if (CDgetstatus(self->ob_cdplayer, &status) && |
|
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
354 status.state == CD_NODISC) |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
355 PyErr_SetString(CdError, "no disc in player"); |
|
849
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
356 else |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
357 PyErr_SetString(CdError, "togglepause failed"); |
| 820 | 358 return NULL; |
| 359 } | |
| 360 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
361 Py_INCREF(Py_None); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
362 return Py_None; |
| 820 | 363 } |
| 364 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
365 static PyMethodDef cdplayer_methods[] = { |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
366 {"allowremoval", (PyCFunction)CD_allowremoval, 1}, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
367 {"bestreadsize", (PyCFunction)CD_bestreadsize, 1}, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
368 {"close", (PyCFunction)CD_close, 1}, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
369 {"eject", (PyCFunction)CD_eject, 1}, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
370 {"getstatus", (PyCFunction)CD_getstatus, 1}, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
371 {"gettrackinfo", (PyCFunction)CD_gettrackinfo, 1}, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
372 {"msftoblock", (PyCFunction)CD_msftoblock, 1}, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
373 {"play", (PyCFunction)CD_play, 1}, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
374 {"playabs", (PyCFunction)CD_playabs, 1}, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
375 {"playtrack", (PyCFunction)CD_playtrack, 1}, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
376 {"playtrackabs", (PyCFunction)CD_playtrackabs, 1}, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
377 {"preventremoval", (PyCFunction)CD_preventremoval, 1}, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
378 {"readda", (PyCFunction)CD_readda, 1}, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
379 {"seek", (PyCFunction)CD_seek, 1}, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
380 {"seekblock", (PyCFunction)CD_seekblock, 1}, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
381 {"seektrack", (PyCFunction)CD_seektrack, 1}, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
382 {"stop", (PyCFunction)CD_stop, 1}, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
383 {"togglepause", (PyCFunction)CD_togglepause, 1}, |
| 820 | 384 {NULL, NULL} /* sentinel */ |
| 385 }; | |
| 386 | |
| 387 static void | |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
388 cdplayer_dealloc(cdplayerobject *self) |
| 820 | 389 { |
| 390 if (self->ob_cdplayer != NULL) | |
| 391 CDclose(self->ob_cdplayer); | |
|
12576
1c7c2dd1beb1
Vladimir Marangozov's long-awaited malloc restructuring.
Guido van Rossum <guido@python.org>
parents:
11882
diff
changeset
|
392 PyObject_Del(self); |
| 820 | 393 } |
| 394 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
395 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
396 cdplayer_getattr(cdplayerobject *self, char *name) |
| 820 | 397 { |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
398 if (self->ob_cdplayer == NULL) { |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
399 PyErr_SetString(PyExc_RuntimeError, "no player active"); |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
400 return NULL; |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
401 } |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
402 return Py_FindMethod(cdplayer_methods, (PyObject *)self, name); |
| 820 | 403 } |
| 404 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
405 PyTypeObject CdPlayertype = { |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
406 PyObject_HEAD_INIT(&PyType_Type) |
| 820 | 407 0, /*ob_size*/ |
| 408 "cdplayer", /*tp_name*/ | |
| 409 sizeof(cdplayerobject), /*tp_size*/ | |
| 410 0, /*tp_itemsize*/ | |
| 411 /* methods */ | |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1313
diff
changeset
|
412 (destructor)cdplayer_dealloc, /*tp_dealloc*/ |
| 820 | 413 0, /*tp_print*/ |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1313
diff
changeset
|
414 (getattrfunc)cdplayer_getattr, /*tp_getattr*/ |
| 820 | 415 0, /*tp_setattr*/ |
| 416 0, /*tp_compare*/ | |
| 417 0, /*tp_repr*/ | |
| 418 }; | |
| 419 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
420 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
421 newcdplayerobject(CDPLAYER *cdp) |
| 820 | 422 { |
| 423 cdplayerobject *p; | |
| 424 | |
|
12576
1c7c2dd1beb1
Vladimir Marangozov's long-awaited malloc restructuring.
Guido van Rossum <guido@python.org>
parents:
11882
diff
changeset
|
425 p = PyObject_New(cdplayerobject, &CdPlayertype); |
| 820 | 426 if (p == NULL) |
| 427 return NULL; | |
| 428 p->ob_cdplayer = cdp; | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
429 return (PyObject *) p; |
| 820 | 430 } |
| 431 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
432 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
433 CD_open(PyObject *self, PyObject *args) |
| 820 | 434 { |
| 435 char *dev, *direction; | |
| 436 CDPLAYER *cdp; | |
| 437 | |
| 438 /* | |
| 439 * Variable number of args. | |
| 440 * First defaults to "None", second defaults to "r". | |
| 441 */ | |
| 442 dev = NULL; | |
| 443 direction = "r"; | |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
444 if (!PyArg_ParseTuple(args, "|zs:open", &dev, &direction)) |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
445 return NULL; |
| 820 | 446 |
| 447 cdp = CDopen(dev, direction); | |
| 448 if (cdp == NULL) { | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
449 PyErr_SetFromErrno(CdError); |
| 820 | 450 return NULL; |
| 451 } | |
| 452 | |
| 453 return newcdplayerobject(cdp); | |
| 454 } | |
| 455 | |
| 456 typedef struct { | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
457 PyObject_HEAD |
| 820 | 458 CDPARSER *ob_cdparser; |
| 459 struct { | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
460 PyObject *ob_cdcallback; |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
461 PyObject *ob_cdcallbackarg; |
| 820 | 462 } ob_cdcallbacks[NCALLBACKS]; |
| 463 } cdparserobject; | |
| 464 | |
| 465 static void | |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
466 CD_callback(void *arg, CDDATATYPES type, void *data) |
| 820 | 467 { |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
468 PyObject *result, *args, *v = NULL; |
| 820 | 469 char *p; |
| 470 int i; | |
| 471 cdparserobject *self; | |
| 472 | |
| 473 self = (cdparserobject *) arg; | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
474 args = PyTuple_New(3); |
| 820 | 475 if (args == NULL) |
| 476 return; | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
477 Py_INCREF(self->ob_cdcallbacks[type].ob_cdcallbackarg); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
478 PyTuple_SetItem(args, 0, self->ob_cdcallbacks[type].ob_cdcallbackarg); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
479 PyTuple_SetItem(args, 1, PyInt_FromLong((long) type)); |
| 820 | 480 switch (type) { |
| 481 case cd_audio: | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
482 v = PyString_FromStringAndSize(data, CDDA_DATASIZE); |
| 820 | 483 break; |
| 484 case cd_pnum: | |
| 485 case cd_index: | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
486 v = PyInt_FromLong(((CDPROGNUM *) data)->value); |
| 820 | 487 break; |
| 488 case cd_ptime: | |
| 489 case cd_atime: | |
|
830
ea5072de7427
Return more structured data in some cases
Guido van Rossum <guido@python.org>
parents:
820
diff
changeset
|
490 #define ptr ((struct cdtimecode *) data) |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
491 v = Py_BuildValue("(iii)", |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
492 ptr->mhi * 10 + ptr->mlo, |
|
830
ea5072de7427
Return more structured data in some cases
Guido van Rossum <guido@python.org>
parents:
820
diff
changeset
|
493 ptr->shi * 10 + ptr->slo, |
|
ea5072de7427
Return more structured data in some cases
Guido van Rossum <guido@python.org>
parents:
820
diff
changeset
|
494 ptr->fhi * 10 + ptr->flo); |
|
ea5072de7427
Return more structured data in some cases
Guido van Rossum <guido@python.org>
parents:
820
diff
changeset
|
495 #undef ptr |
| 820 | 496 break; |
| 497 case cd_catalog: | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
498 v = PyString_FromStringAndSize(NULL, 13); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
499 p = PyString_AsString(v); |
| 820 | 500 for (i = 0; i < 13; i++) |
| 501 *p++ = ((char *) data)[i] + '0'; | |
| 502 break; | |
| 503 case cd_ident: | |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
504 #define ptr ((struct cdident *) data) |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
505 v = PyString_FromStringAndSize(NULL, 12); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
506 p = PyString_AsString(v); |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
507 CDsbtoa(p, ptr->country, 2); |
| 820 | 508 p += 2; |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
509 CDsbtoa(p, ptr->owner, 3); |
| 820 | 510 p += 3; |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
511 *p++ = ptr->year[0] + '0'; |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
512 *p++ = ptr->year[1] + '0'; |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
513 *p++ = ptr->serial[0] + '0'; |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
514 *p++ = ptr->serial[1] + '0'; |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
515 *p++ = ptr->serial[2] + '0'; |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
516 *p++ = ptr->serial[3] + '0'; |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
517 *p++ = ptr->serial[4] + '0'; |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
518 #undef ptr |
| 820 | 519 break; |
| 520 case cd_control: | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
521 v = PyInt_FromLong((long) *((unchar *) data)); |
| 820 | 522 break; |
| 523 } | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
524 PyTuple_SetItem(args, 2, v); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
525 if (PyErr_Occurred()) { |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
526 Py_DECREF(args); |
| 820 | 527 return; |
| 528 } | |
| 529 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
530 result = PyEval_CallObject(self->ob_cdcallbacks[type].ob_cdcallback, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
531 args); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
532 Py_DECREF(args); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
533 Py_XDECREF(result); |
| 820 | 534 } |
| 535 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
536 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
537 CD_deleteparser(cdparserobject *self, PyObject *args) |
| 820 | 538 { |
| 539 int i; | |
| 540 | |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
541 if (!PyArg_ParseTuple(args, ":deleteparser")) |
| 820 | 542 return NULL; |
| 543 | |
| 544 CDdeleteparser(self->ob_cdparser); | |
| 545 self->ob_cdparser = NULL; | |
| 546 | |
| 547 /* no sense in keeping the callbacks, so remove them */ | |
| 548 for (i = 0; i < NCALLBACKS; i++) { | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
549 Py_XDECREF(self->ob_cdcallbacks[i].ob_cdcallback); |
| 820 | 550 self->ob_cdcallbacks[i].ob_cdcallback = NULL; |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
551 Py_XDECREF(self->ob_cdcallbacks[i].ob_cdcallbackarg); |
| 820 | 552 self->ob_cdcallbacks[i].ob_cdcallbackarg = NULL; |
| 553 } | |
| 554 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
555 Py_INCREF(Py_None); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
556 return Py_None; |
| 820 | 557 } |
| 558 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
559 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
560 CD_parseframe(cdparserobject *self, PyObject *args) |
| 820 | 561 { |
| 562 char *cdfp; | |
| 563 int length; | |
| 564 CDFRAME *p; | |
| 565 | |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
566 if (!PyArg_ParseTuple(args, "s#:parseframe", &cdfp, &length)) |
| 820 | 567 return NULL; |
| 568 | |
| 569 if (length % sizeof(CDFRAME) != 0) { | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
570 PyErr_SetString(PyExc_TypeError, "bad length"); |
| 820 | 571 return NULL; |
| 572 } | |
| 573 | |
| 574 p = (CDFRAME *) cdfp; | |
| 575 while (length > 0) { | |
| 576 CDparseframe(self->ob_cdparser, p); | |
| 577 length -= sizeof(CDFRAME); | |
| 578 p++; | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
579 if (PyErr_Occurred()) |
| 820 | 580 return NULL; |
| 581 } | |
| 582 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
583 Py_INCREF(Py_None); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
584 return Py_None; |
| 820 | 585 } |
| 586 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
587 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
588 CD_removecallback(cdparserobject *self, PyObject *args) |
| 820 | 589 { |
| 590 int type; | |
| 591 | |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
592 if (!PyArg_ParseTuple(args, "i:removecallback", &type)) |
| 820 | 593 return NULL; |
| 594 | |
|
921
8078834996ec
cdmodule.c: 2 minor changes by Sjoerd.
Guido van Rossum <guido@python.org>
parents:
849
diff
changeset
|
595 if (type < 0 || type >= NCALLBACKS) { |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
596 PyErr_SetString(PyExc_TypeError, "bad type"); |
|
921
8078834996ec
cdmodule.c: 2 minor changes by Sjoerd.
Guido van Rossum <guido@python.org>
parents:
849
diff
changeset
|
597 return NULL; |
|
8078834996ec
cdmodule.c: 2 minor changes by Sjoerd.
Guido van Rossum <guido@python.org>
parents:
849
diff
changeset
|
598 } |
|
8078834996ec
cdmodule.c: 2 minor changes by Sjoerd.
Guido van Rossum <guido@python.org>
parents:
849
diff
changeset
|
599 |
| 820 | 600 CDremovecallback(self->ob_cdparser, (CDDATATYPES) type); |
| 601 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
602 Py_XDECREF(self->ob_cdcallbacks[type].ob_cdcallback); |
| 820 | 603 self->ob_cdcallbacks[type].ob_cdcallback = NULL; |
| 604 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
605 Py_XDECREF(self->ob_cdcallbacks[type].ob_cdcallbackarg); |
| 820 | 606 self->ob_cdcallbacks[type].ob_cdcallbackarg = NULL; |
| 607 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
608 Py_INCREF(Py_None); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
609 return Py_None; |
| 820 | 610 } |
| 611 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
612 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
613 CD_resetparser(cdparserobject *self, PyObject *args) |
| 820 | 614 { |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
615 if (!PyArg_ParseTuple(args, ":resetparser")) |
| 820 | 616 return NULL; |
| 617 | |
| 618 CDresetparser(self->ob_cdparser); | |
| 619 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
620 Py_INCREF(Py_None); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
621 return Py_None; |
| 820 | 622 } |
| 623 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
624 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
625 CD_addcallback(cdparserobject *self, PyObject *args) |
| 820 | 626 { |
| 627 int type; | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
628 PyObject *func, *funcarg; |
| 820 | 629 |
| 630 /* XXX - more work here */ | |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
631 if (!PyArg_ParseTuple(args, "iOO:addcallback", &type, &func, &funcarg)) |
| 820 | 632 return NULL; |
| 633 | |
| 634 if (type < 0 || type >= NCALLBACKS) { | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
635 PyErr_SetString(PyExc_TypeError, "argument out of range"); |
| 820 | 636 return NULL; |
| 637 } | |
| 638 | |
|
1071
2291da05f178
Changed an ifdef from IRIX_405 to CDsetcallback.
Sjoerd Mullender <sjoerd@acm.org>
parents:
1063
diff
changeset
|
639 #ifdef CDsetcallback |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
640 CDaddcallback(self->ob_cdparser, (CDDATATYPES) type, CD_callback, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
641 (void *) self); |
|
921
8078834996ec
cdmodule.c: 2 minor changes by Sjoerd.
Guido van Rossum <guido@python.org>
parents:
849
diff
changeset
|
642 #else |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
643 CDsetcallback(self->ob_cdparser, (CDDATATYPES) type, CD_callback, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
644 (void *) self); |
|
921
8078834996ec
cdmodule.c: 2 minor changes by Sjoerd.
Guido van Rossum <guido@python.org>
parents:
849
diff
changeset
|
645 #endif |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
646 Py_XDECREF(self->ob_cdcallbacks[type].ob_cdcallback); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
647 Py_INCREF(func); |
|
1313
6ee380349c84
* Added gmtime/localtime/mktime and SYSV timezone globals to timemodule.c.
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
648 self->ob_cdcallbacks[type].ob_cdcallback = func; |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
649 Py_XDECREF(self->ob_cdcallbacks[type].ob_cdcallbackarg); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
650 Py_INCREF(funcarg); |
|
1313
6ee380349c84
* Added gmtime/localtime/mktime and SYSV timezone globals to timemodule.c.
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
651 self->ob_cdcallbacks[type].ob_cdcallbackarg = funcarg; |
| 820 | 652 |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
653 /* |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
654 if (type == cd_audio) { |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
655 sigfpe_[_UNDERFL].repls = _ZERO; |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
656 handle_sigfpes(_ON, _EN_UNDERFL, NULL, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
657 _ABORT_ON_ERROR, NULL); |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
658 } |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
659 */ |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
660 |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
661 Py_INCREF(Py_None); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
662 return Py_None; |
| 820 | 663 } |
| 664 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
665 static PyMethodDef cdparser_methods[] = { |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
666 {"addcallback", (PyCFunction)CD_addcallback, 1}, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
667 {"deleteparser", (PyCFunction)CD_deleteparser, 1}, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
668 {"parseframe", (PyCFunction)CD_parseframe, 1}, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
669 {"removecallback", (PyCFunction)CD_removecallback, 1}, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
670 {"resetparser", (PyCFunction)CD_resetparser, 1}, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
671 /* backward compatibility */ |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
672 {"setcallback", (PyCFunction)CD_addcallback, 1}, |
| 820 | 673 {NULL, NULL} /* sentinel */ |
| 674 }; | |
| 675 | |
| 676 static void | |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
677 cdparser_dealloc(cdparserobject *self) |
| 820 | 678 { |
| 679 int i; | |
| 680 | |
| 681 for (i = 0; i < NCALLBACKS; i++) { | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
682 Py_XDECREF(self->ob_cdcallbacks[i].ob_cdcallback); |
| 820 | 683 self->ob_cdcallbacks[i].ob_cdcallback = NULL; |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
684 Py_XDECREF(self->ob_cdcallbacks[i].ob_cdcallbackarg); |
| 820 | 685 self->ob_cdcallbacks[i].ob_cdcallbackarg = NULL; |
| 686 } | |
| 687 CDdeleteparser(self->ob_cdparser); | |
|
12576
1c7c2dd1beb1
Vladimir Marangozov's long-awaited malloc restructuring.
Guido van Rossum <guido@python.org>
parents:
11882
diff
changeset
|
688 PyObject_Del(self); |
| 820 | 689 } |
| 690 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
691 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
692 cdparser_getattr(cdparserobject *self, char *name) |
| 820 | 693 { |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
694 if (self->ob_cdparser == NULL) { |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
695 PyErr_SetString(PyExc_RuntimeError, "no parser active"); |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
696 return NULL; |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
697 } |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
698 |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
699 return Py_FindMethod(cdparser_methods, (PyObject *)self, name); |
| 820 | 700 } |
| 701 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
702 PyTypeObject CdParsertype = { |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
703 PyObject_HEAD_INIT(&PyType_Type) |
| 820 | 704 0, /*ob_size*/ |
| 705 "cdparser", /*tp_name*/ | |
| 706 sizeof(cdparserobject), /*tp_size*/ | |
| 707 0, /*tp_itemsize*/ | |
| 708 /* methods */ | |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1313
diff
changeset
|
709 (destructor)cdparser_dealloc, /*tp_dealloc*/ |
| 820 | 710 0, /*tp_print*/ |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1313
diff
changeset
|
711 (getattrfunc)cdparser_getattr, /*tp_getattr*/ |
| 820 | 712 0, /*tp_setattr*/ |
| 713 0, /*tp_compare*/ | |
| 714 0, /*tp_repr*/ | |
| 715 }; | |
| 716 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
717 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
718 newcdparserobject(CDPARSER *cdp) |
| 820 | 719 { |
| 720 cdparserobject *p; | |
| 721 int i; | |
| 722 | |
|
12576
1c7c2dd1beb1
Vladimir Marangozov's long-awaited malloc restructuring.
Guido van Rossum <guido@python.org>
parents:
11882
diff
changeset
|
723 p = PyObject_New(cdparserobject, &CdParsertype); |
| 820 | 724 if (p == NULL) |
| 725 return NULL; | |
| 726 p->ob_cdparser = cdp; | |
| 727 for (i = 0; i < NCALLBACKS; i++) { | |
| 728 p->ob_cdcallbacks[i].ob_cdcallback = NULL; | |
| 729 p->ob_cdcallbacks[i].ob_cdcallbackarg = NULL; | |
| 730 } | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
731 return (PyObject *) p; |
| 820 | 732 } |
| 733 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
734 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
735 CD_createparser(PyObject *self, PyObject *args) |
| 820 | 736 { |
| 737 CDPARSER *cdp; | |
| 738 | |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
739 if (!PyArg_ParseTuple(args, ":createparser")) |
| 820 | 740 return NULL; |
| 741 cdp = CDcreateparser(); | |
| 742 if (cdp == NULL) { | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
743 PyErr_SetString(CdError, "createparser failed"); |
| 820 | 744 return NULL; |
| 745 } | |
| 746 | |
| 747 return newcdparserobject(cdp); | |
| 748 } | |
| 749 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
750 static PyObject * |
|
13514
5304b88fe3cc
ANSI-fication of the SGI modules (note that svmodule.c and sgimodule.c
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
751 CD_msftoframe(PyObject *self, PyObject *args) |
| 820 | 752 { |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
753 int min, sec, frame; |
| 820 | 754 |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
755 if (!PyArg_ParseTuple(args, "iii:msftoframe", &min, &sec, &frame)) |
| 820 | 756 return NULL; |
| 757 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
758 return PyInt_FromLong((long) CDmsftoframe(min, sec, frame)); |
| 820 | 759 } |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
760 |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
761 static PyMethodDef CD_methods[] = { |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
762 {"open", (PyCFunction)CD_open, 1}, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
763 {"createparser", (PyCFunction)CD_createparser, 1}, |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
764 {"msftoframe", (PyCFunction)CD_msftoframe, 1}, |
| 820 | 765 {NULL, NULL} /* Sentinel */ |
| 766 }; | |
| 767 | |
| 768 void | |
|
13651
8a063423e0b7
Bunch of minor ANSIfications: 'void initfunc()' -> 'void initfunc(void)',
Thomas Wouters <thomas@python.org>
parents:
13514
diff
changeset
|
769 initcd(void) |
| 820 | 770 { |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
771 PyObject *m, *d; |
|
1063
aaa3bccb143a
Defined exception cd.error which is used for errors other than
Sjoerd Mullender <sjoerd@acm.org>
parents:
926
diff
changeset
|
772 |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
773 m = Py_InitModule("cd", CD_methods); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
774 d = PyModule_GetDict(m); |
|
1063
aaa3bccb143a
Defined exception cd.error which is used for errors other than
Sjoerd Mullender <sjoerd@acm.org>
parents:
926
diff
changeset
|
775 |
| 6370 | 776 CdError = PyErr_NewException("cd.error", NULL, NULL); |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
777 PyDict_SetItemString(d, "error", CdError); |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
778 |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
779 /* Identifiers for the different types of callbacks from the parser */ |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
780 PyDict_SetItemString(d, "audio", PyInt_FromLong((long) cd_audio)); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
781 PyDict_SetItemString(d, "pnum", PyInt_FromLong((long) cd_pnum)); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
782 PyDict_SetItemString(d, "index", PyInt_FromLong((long) cd_index)); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
783 PyDict_SetItemString(d, "ptime", PyInt_FromLong((long) cd_ptime)); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
784 PyDict_SetItemString(d, "atime", PyInt_FromLong((long) cd_atime)); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
785 PyDict_SetItemString(d, "catalog", PyInt_FromLong((long) cd_catalog)); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
786 PyDict_SetItemString(d, "ident", PyInt_FromLong((long) cd_ident)); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
787 PyDict_SetItemString(d, "control", PyInt_FromLong((long) cd_control)); |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
788 |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
789 /* Block size information for digital audio data */ |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
790 PyDict_SetItemString(d, "DATASIZE", |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
791 PyInt_FromLong((long) CDDA_DATASIZE)); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
792 PyDict_SetItemString(d, "BLOCKSIZE", |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
793 PyInt_FromLong((long) CDDA_BLOCKSIZE)); |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
794 |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
795 /* Possible states for the cd player */ |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
796 PyDict_SetItemString(d, "ERROR", PyInt_FromLong((long) CD_ERROR)); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
797 PyDict_SetItemString(d, "NODISC", PyInt_FromLong((long) CD_NODISC)); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
798 PyDict_SetItemString(d, "READY", PyInt_FromLong((long) CD_READY)); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
799 PyDict_SetItemString(d, "PLAYING", PyInt_FromLong((long) CD_PLAYING)); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
800 PyDict_SetItemString(d, "PAUSED", PyInt_FromLong((long) CD_PAUSED)); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
801 PyDict_SetItemString(d, "STILL", PyInt_FromLong((long) CD_STILL)); |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
802 #ifdef CD_CDROM /* only newer versions of the library */ |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
803 PyDict_SetItemString(d, "CDROM", PyInt_FromLong((long) CD_CDROM)); |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
804 #endif |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
805 |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
806 if (PyErr_Occurred()) |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
807 Py_FatalError("can't initialize module cd"); |
| 820 | 808 } |
