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