Mercurial > cpython-lru_cache-weakref
annotate Modules/cdmodule.c @ 49955:878d40468c4e legacy-trunk
Issue #4384: Added logging integration with warnings module using captureWarnings(). This change includes a NullHandler which does nothing; it will be of use to library developers who want to avoid the "No handlers could be found for logger XXX" message which can appear if the library user doesn't configure logging.
| author | Vinay Sajip <vinay_sajip@yahoo.co.uk> |
|---|---|
| date | Wed, 03 Dec 2008 23:22:58 +0000 |
| parents | 52294af4b663 |
| children | fd25030223b0 |
| 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 | |
|
47527
52294af4b663
This reverts r63675 based on the discussion in this thread:
Gregory P. Smith <greg@mad-scientist.com>
parents:
47294
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, |
|
47527
52294af4b663
This reverts r63675 based on the discussion in this thread:
Gregory P. Smith <greg@mad-scientist.com>
parents:
47294
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) | |
|
47527
52294af4b663
This reverts r63675 based on the discussion in this thread:
Gregory P. Smith <greg@mad-scientist.com>
parents:
47294
diff
changeset
|
254 _PyString_Resize(&result, n * sizeof(CDFRAME)); |
| 820 | 255 |
| 256 return result; | |
| 257 } | |
| 258 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
259 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
|
260 CD_seek(cdplayerobject *self, PyObject *args) |
| 820 | 261 { |
| 262 int min, sec, frame; | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
263 long PyTryBlock; |
| 820 | 264 |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
265 if (!PyArg_ParseTuple(args, "iii:seek", &min, &sec, &frame)) |
| 820 | 266 return NULL; |
| 267 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
268 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
|
269 if (PyTryBlock == -1) { |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
270 PyErr_SetFromErrno(CdError); |
| 820 | 271 return NULL; |
| 272 } | |
| 273 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
274 return PyInt_FromLong(PyTryBlock); |
| 820 | 275 } |
| 276 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
277 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
|
278 CD_seektrack(cdplayerobject *self, PyObject *args) |
| 820 | 279 { |
| 280 int track; | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
281 long PyTryBlock; |
| 820 | 282 |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
283 if (!PyArg_ParseTuple(args, "i:seektrack", &track)) |
| 820 | 284 return NULL; |
| 285 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
286 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
|
287 if (PyTryBlock == -1) { |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
288 PyErr_SetFromErrno(CdError); |
| 820 | 289 return NULL; |
| 290 } | |
| 291 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
292 return PyInt_FromLong(PyTryBlock); |
| 820 | 293 } |
| 294 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
295 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
|
296 CD_seekblock(cdplayerobject *self, PyObject *args) |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
297 { |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
298 unsigned long PyTryBlock; |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
299 |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
300 if (!PyArg_ParseTuple(args, "l:seekblock", &PyTryBlock)) |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
301 return NULL; |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
302 |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
303 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
|
304 if (PyTryBlock == (unsigned long) -1) { |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
305 PyErr_SetFromErrno(CdError); |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
306 return NULL; |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
307 } |
|
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 return PyInt_FromLong(PyTryBlock); |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
310 } |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
311 |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
312 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
|
313 CD_stop(cdplayerobject *self, PyObject *args) |
| 820 | 314 { |
|
849
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
315 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
|
316 |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
317 if (!PyArg_ParseTuple(args, ":stop")) |
| 820 | 318 return NULL; |
| 319 | |
| 320 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
|
321 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
|
322 status.state == CD_NODISC) |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
323 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
|
324 else |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
325 PyErr_SetString(CdError, "stop failed"); |
| 820 | 326 return NULL; |
| 327 } | |
| 328 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
329 Py_INCREF(Py_None); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
330 return Py_None; |
| 820 | 331 } |
| 332 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
333 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
|
334 CD_togglepause(cdplayerobject *self, PyObject *args) |
| 820 | 335 { |
|
849
fe6a5f2640a2
Wanneer er geen disk in de speler zit falen sommige routines. De
Guido van Rossum <guido@python.org>
parents:
848
diff
changeset
|
336 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
|
337 |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
338 if (!PyArg_ParseTuple(args, ":togglepause")) |
| 820 | 339 return NULL; |
| 340 | |
| 341 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
|
342 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
|
343 status.state == CD_NODISC) |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
344 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
|
345 else |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
346 PyErr_SetString(CdError, "togglepause failed"); |
| 820 | 347 return NULL; |
| 348 } | |
| 349 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
350 Py_INCREF(Py_None); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
351 return Py_None; |
| 820 | 352 } |
| 353 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
354 static PyMethodDef cdplayer_methods[] = { |
|
21757
40631ae74b17
Patch #477750: Use METH_ constants in Modules.
Martin v. Löwis <martin@v.loewis.de>
parents:
21313
diff
changeset
|
355 {"allowremoval", (PyCFunction)CD_allowremoval, METH_VARARGS}, |
|
40631ae74b17
Patch #477750: Use METH_ constants in Modules.
Martin v. Löwis <martin@v.loewis.de>
parents:
21313
diff
changeset
|
356 {"bestreadsize", (PyCFunction)CD_bestreadsize, METH_VARARGS}, |
|
40631ae74b17
Patch #477750: Use METH_ constants in Modules.
Martin v. Löwis <martin@v.loewis.de>
parents:
21313
diff
changeset
|
357 {"close", (PyCFunction)CD_close, METH_VARARGS}, |
|
40631ae74b17
Patch #477750: Use METH_ constants in Modules.
Martin v. Löwis <martin@v.loewis.de>
parents:
21313
diff
changeset
|
358 {"eject", (PyCFunction)CD_eject, METH_VARARGS}, |
|
40631ae74b17
Patch #477750: Use METH_ constants in Modules.
Martin v. Löwis <martin@v.loewis.de>
parents:
21313
diff
changeset
|
359 {"getstatus", (PyCFunction)CD_getstatus, METH_VARARGS}, |
|
40631ae74b17
Patch #477750: Use METH_ constants in Modules.
Martin v. Löwis <martin@v.loewis.de>
parents:
21313
diff
changeset
|
360 {"gettrackinfo", (PyCFunction)CD_gettrackinfo, METH_VARARGS}, |
|
40631ae74b17
Patch #477750: Use METH_ constants in Modules.
Martin v. Löwis <martin@v.loewis.de>
parents:
21313
diff
changeset
|
361 {"msftoblock", (PyCFunction)CD_msftoblock, METH_VARARGS}, |
|
40631ae74b17
Patch #477750: Use METH_ constants in Modules.
Martin v. Löwis <martin@v.loewis.de>
parents:
21313
diff
changeset
|
362 {"play", (PyCFunction)CD_play, METH_VARARGS}, |
|
40631ae74b17
Patch #477750: Use METH_ constants in Modules.
Martin v. Löwis <martin@v.loewis.de>
parents:
21313
diff
changeset
|
363 {"playabs", (PyCFunction)CD_playabs, METH_VARARGS}, |
|
40631ae74b17
Patch #477750: Use METH_ constants in Modules.
Martin v. Löwis <martin@v.loewis.de>
parents:
21313
diff
changeset
|
364 {"playtrack", (PyCFunction)CD_playtrack, METH_VARARGS}, |
|
40631ae74b17
Patch #477750: Use METH_ constants in Modules.
Martin v. Löwis <martin@v.loewis.de>
parents:
21313
diff
changeset
|
365 {"playtrackabs", (PyCFunction)CD_playtrackabs, METH_VARARGS}, |
|
40631ae74b17
Patch #477750: Use METH_ constants in Modules.
Martin v. Löwis <martin@v.loewis.de>
parents:
21313
diff
changeset
|
366 {"preventremoval", (PyCFunction)CD_preventremoval, METH_VARARGS}, |
|
40631ae74b17
Patch #477750: Use METH_ constants in Modules.
Martin v. Löwis <martin@v.loewis.de>
parents:
21313
diff
changeset
|
367 {"readda", (PyCFunction)CD_readda, METH_VARARGS}, |
|
40631ae74b17
Patch #477750: Use METH_ constants in Modules.
Martin v. Löwis <martin@v.loewis.de>
parents:
21313
diff
changeset
|
368 {"seek", (PyCFunction)CD_seek, METH_VARARGS}, |
|
40631ae74b17
Patch #477750: Use METH_ constants in Modules.
Martin v. Löwis <martin@v.loewis.de>
parents:
21313
diff
changeset
|
369 {"seekblock", (PyCFunction)CD_seekblock, METH_VARARGS}, |
|
40631ae74b17
Patch #477750: Use METH_ constants in Modules.
Martin v. Löwis <martin@v.loewis.de>
parents:
21313
diff
changeset
|
370 {"seektrack", (PyCFunction)CD_seektrack, METH_VARARGS}, |
|
40631ae74b17
Patch #477750: Use METH_ constants in Modules.
Martin v. Löwis <martin@v.loewis.de>
parents:
21313
diff
changeset
|
371 {"stop", (PyCFunction)CD_stop, METH_VARARGS}, |
|
40631ae74b17
Patch #477750: Use METH_ constants in Modules.
Martin v. Löwis <martin@v.loewis.de>
parents:
21313
diff
changeset
|
372 {"togglepause", (PyCFunction)CD_togglepause, METH_VARARGS}, |
| 820 | 373 {NULL, NULL} /* sentinel */ |
| 374 }; | |
| 375 | |
| 376 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
|
377 cdplayer_dealloc(cdplayerobject *self) |
| 820 | 378 { |
| 379 if (self->ob_cdplayer != NULL) | |
| 380 CDclose(self->ob_cdplayer); | |
|
12576
1c7c2dd1beb1
Vladimir Marangozov's long-awaited malloc restructuring.
Guido van Rossum <guido@python.org>
parents:
11882
diff
changeset
|
381 PyObject_Del(self); |
| 820 | 382 } |
| 383 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
384 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
|
385 cdplayer_getattr(cdplayerobject *self, char *name) |
| 820 | 386 { |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
387 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
|
388 PyErr_SetString(PyExc_RuntimeError, "no player active"); |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
389 return NULL; |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
390 } |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
391 return Py_FindMethod(cdplayer_methods, (PyObject *)self, name); |
| 820 | 392 } |
| 393 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
394 PyTypeObject CdPlayertype = { |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
395 PyObject_HEAD_INIT(&PyType_Type) |
| 820 | 396 0, /*ob_size*/ |
|
21313
91dd223829c6
Patch supplied by Burton Radons for his own SF bug #487390: Modifying
Guido van Rossum <guido@python.org>
parents:
14375
diff
changeset
|
397 "cd.cdplayer", /*tp_name*/ |
| 820 | 398 sizeof(cdplayerobject), /*tp_size*/ |
| 399 0, /*tp_itemsize*/ | |
| 400 /* methods */ | |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1313
diff
changeset
|
401 (destructor)cdplayer_dealloc, /*tp_dealloc*/ |
| 820 | 402 0, /*tp_print*/ |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1313
diff
changeset
|
403 (getattrfunc)cdplayer_getattr, /*tp_getattr*/ |
| 820 | 404 0, /*tp_setattr*/ |
| 405 0, /*tp_compare*/ | |
| 406 0, /*tp_repr*/ | |
| 407 }; | |
| 408 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
409 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
|
410 newcdplayerobject(CDPLAYER *cdp) |
| 820 | 411 { |
| 412 cdplayerobject *p; | |
| 413 | |
|
12576
1c7c2dd1beb1
Vladimir Marangozov's long-awaited malloc restructuring.
Guido van Rossum <guido@python.org>
parents:
11882
diff
changeset
|
414 p = PyObject_New(cdplayerobject, &CdPlayertype); |
| 820 | 415 if (p == NULL) |
| 416 return NULL; | |
| 417 p->ob_cdplayer = cdp; | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
418 return (PyObject *) p; |
| 820 | 419 } |
| 420 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
421 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
|
422 CD_open(PyObject *self, PyObject *args) |
| 820 | 423 { |
| 424 char *dev, *direction; | |
| 425 CDPLAYER *cdp; | |
| 426 | |
| 427 /* | |
| 428 * Variable number of args. | |
| 429 * First defaults to "None", second defaults to "r". | |
| 430 */ | |
| 431 dev = NULL; | |
| 432 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
|
433 if (!PyArg_ParseTuple(args, "|zs:open", &dev, &direction)) |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
434 return NULL; |
| 820 | 435 |
| 436 cdp = CDopen(dev, direction); | |
| 437 if (cdp == NULL) { | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
438 PyErr_SetFromErrno(CdError); |
| 820 | 439 return NULL; |
| 440 } | |
| 441 | |
| 442 return newcdplayerobject(cdp); | |
| 443 } | |
| 444 | |
| 445 typedef struct { | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
446 PyObject_HEAD |
| 820 | 447 CDPARSER *ob_cdparser; |
| 448 struct { | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
449 PyObject *ob_cdcallback; |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
450 PyObject *ob_cdcallbackarg; |
| 820 | 451 } ob_cdcallbacks[NCALLBACKS]; |
| 452 } cdparserobject; | |
| 453 | |
| 454 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
|
455 CD_callback(void *arg, CDDATATYPES type, void *data) |
| 820 | 456 { |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
457 PyObject *result, *args, *v = NULL; |
| 820 | 458 char *p; |
| 459 int i; | |
| 460 cdparserobject *self; | |
| 461 | |
| 462 self = (cdparserobject *) arg; | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
463 args = PyTuple_New(3); |
| 820 | 464 if (args == NULL) |
| 465 return; | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
466 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
|
467 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
|
468 PyTuple_SetItem(args, 1, PyInt_FromLong((long) type)); |
| 820 | 469 switch (type) { |
| 470 case cd_audio: | |
|
47527
52294af4b663
This reverts r63675 based on the discussion in this thread:
Gregory P. Smith <greg@mad-scientist.com>
parents:
47294
diff
changeset
|
471 v = PyString_FromStringAndSize(data, CDDA_DATASIZE); |
| 820 | 472 break; |
| 473 case cd_pnum: | |
| 474 case cd_index: | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
475 v = PyInt_FromLong(((CDPROGNUM *) data)->value); |
| 820 | 476 break; |
| 477 case cd_ptime: | |
| 478 case cd_atime: | |
|
830
ea5072de7427
Return more structured data in some cases
Guido van Rossum <guido@python.org>
parents:
820
diff
changeset
|
479 #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
|
480 v = Py_BuildValue("(iii)", |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
481 ptr->mhi * 10 + ptr->mlo, |
|
830
ea5072de7427
Return more structured data in some cases
Guido van Rossum <guido@python.org>
parents:
820
diff
changeset
|
482 ptr->shi * 10 + ptr->slo, |
|
ea5072de7427
Return more structured data in some cases
Guido van Rossum <guido@python.org>
parents:
820
diff
changeset
|
483 ptr->fhi * 10 + ptr->flo); |
|
ea5072de7427
Return more structured data in some cases
Guido van Rossum <guido@python.org>
parents:
820
diff
changeset
|
484 #undef ptr |
| 820 | 485 break; |
| 486 case cd_catalog: | |
|
47527
52294af4b663
This reverts r63675 based on the discussion in this thread:
Gregory P. Smith <greg@mad-scientist.com>
parents:
47294
diff
changeset
|
487 v = PyString_FromStringAndSize(NULL, 13); |
|
52294af4b663
This reverts r63675 based on the discussion in this thread:
Gregory P. Smith <greg@mad-scientist.com>
parents:
47294
diff
changeset
|
488 p = PyString_AsString(v); |
| 820 | 489 for (i = 0; i < 13; i++) |
| 490 *p++ = ((char *) data)[i] + '0'; | |
| 491 break; | |
| 492 case cd_ident: | |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
493 #define ptr ((struct cdident *) data) |
|
47527
52294af4b663
This reverts r63675 based on the discussion in this thread:
Gregory P. Smith <greg@mad-scientist.com>
parents:
47294
diff
changeset
|
494 v = PyString_FromStringAndSize(NULL, 12); |
|
52294af4b663
This reverts r63675 based on the discussion in this thread:
Gregory P. Smith <greg@mad-scientist.com>
parents:
47294
diff
changeset
|
495 p = PyString_AsString(v); |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
496 CDsbtoa(p, ptr->country, 2); |
| 820 | 497 p += 2; |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
498 CDsbtoa(p, ptr->owner, 3); |
| 820 | 499 p += 3; |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
500 *p++ = ptr->year[0] + '0'; |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
501 *p++ = ptr->year[1] + '0'; |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
502 *p++ = ptr->serial[0] + '0'; |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
503 *p++ = ptr->serial[1] + '0'; |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
504 *p++ = ptr->serial[2] + '0'; |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
505 *p++ = ptr->serial[3] + '0'; |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
506 *p++ = ptr->serial[4] + '0'; |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
507 #undef ptr |
| 820 | 508 break; |
| 509 case cd_control: | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
510 v = PyInt_FromLong((long) *((unchar *) data)); |
| 820 | 511 break; |
| 512 } | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
513 PyTuple_SetItem(args, 2, v); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
514 if (PyErr_Occurred()) { |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
515 Py_DECREF(args); |
| 820 | 516 return; |
| 517 } | |
| 518 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
519 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
|
520 args); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
521 Py_DECREF(args); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
522 Py_XDECREF(result); |
| 820 | 523 } |
| 524 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
525 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
|
526 CD_deleteparser(cdparserobject *self, PyObject *args) |
| 820 | 527 { |
| 528 int i; | |
| 529 | |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
530 if (!PyArg_ParseTuple(args, ":deleteparser")) |
| 820 | 531 return NULL; |
| 532 | |
| 533 CDdeleteparser(self->ob_cdparser); | |
| 534 self->ob_cdparser = NULL; | |
| 535 | |
| 536 /* no sense in keeping the callbacks, so remove them */ | |
| 537 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
|
538 Py_XDECREF(self->ob_cdcallbacks[i].ob_cdcallback); |
| 820 | 539 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
|
540 Py_XDECREF(self->ob_cdcallbacks[i].ob_cdcallbackarg); |
| 820 | 541 self->ob_cdcallbacks[i].ob_cdcallbackarg = NULL; |
| 542 } | |
| 543 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
544 Py_INCREF(Py_None); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
545 return Py_None; |
| 820 | 546 } |
| 547 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
548 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
|
549 CD_parseframe(cdparserobject *self, PyObject *args) |
| 820 | 550 { |
| 551 char *cdfp; | |
| 552 int length; | |
| 553 CDFRAME *p; | |
| 554 | |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
555 if (!PyArg_ParseTuple(args, "s#:parseframe", &cdfp, &length)) |
| 820 | 556 return NULL; |
| 557 | |
| 558 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
|
559 PyErr_SetString(PyExc_TypeError, "bad length"); |
| 820 | 560 return NULL; |
| 561 } | |
| 562 | |
| 563 p = (CDFRAME *) cdfp; | |
| 564 while (length > 0) { | |
| 565 CDparseframe(self->ob_cdparser, p); | |
| 566 length -= sizeof(CDFRAME); | |
| 567 p++; | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
568 if (PyErr_Occurred()) |
| 820 | 569 return NULL; |
| 570 } | |
| 571 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
572 Py_INCREF(Py_None); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
573 return Py_None; |
| 820 | 574 } |
| 575 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
576 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
|
577 CD_removecallback(cdparserobject *self, PyObject *args) |
| 820 | 578 { |
| 579 int type; | |
| 580 | |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
581 if (!PyArg_ParseTuple(args, "i:removecallback", &type)) |
| 820 | 582 return NULL; |
| 583 | |
|
921
8078834996ec
cdmodule.c: 2 minor changes by Sjoerd.
Guido van Rossum <guido@python.org>
parents:
849
diff
changeset
|
584 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
|
585 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
|
586 return NULL; |
|
8078834996ec
cdmodule.c: 2 minor changes by Sjoerd.
Guido van Rossum <guido@python.org>
parents:
849
diff
changeset
|
587 } |
|
8078834996ec
cdmodule.c: 2 minor changes by Sjoerd.
Guido van Rossum <guido@python.org>
parents:
849
diff
changeset
|
588 |
| 820 | 589 CDremovecallback(self->ob_cdparser, (CDDATATYPES) type); |
| 590 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
591 Py_XDECREF(self->ob_cdcallbacks[type].ob_cdcallback); |
| 820 | 592 self->ob_cdcallbacks[type].ob_cdcallback = NULL; |
| 593 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
594 Py_XDECREF(self->ob_cdcallbacks[type].ob_cdcallbackarg); |
| 820 | 595 self->ob_cdcallbacks[type].ob_cdcallbackarg = NULL; |
| 596 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
597 Py_INCREF(Py_None); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
598 return Py_None; |
| 820 | 599 } |
| 600 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
601 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
|
602 CD_resetparser(cdparserobject *self, PyObject *args) |
| 820 | 603 { |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
604 if (!PyArg_ParseTuple(args, ":resetparser")) |
| 820 | 605 return NULL; |
| 606 | |
| 607 CDresetparser(self->ob_cdparser); | |
| 608 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
609 Py_INCREF(Py_None); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
610 return Py_None; |
| 820 | 611 } |
| 612 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
613 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
|
614 CD_addcallback(cdparserobject *self, PyObject *args) |
| 820 | 615 { |
| 616 int type; | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
617 PyObject *func, *funcarg; |
| 820 | 618 |
| 619 /* 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
|
620 if (!PyArg_ParseTuple(args, "iOO:addcallback", &type, &func, &funcarg)) |
| 820 | 621 return NULL; |
| 622 | |
| 623 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
|
624 PyErr_SetString(PyExc_TypeError, "argument out of range"); |
| 820 | 625 return NULL; |
| 626 } | |
| 627 | |
|
1071
2291da05f178
Changed an ifdef from IRIX_405 to CDsetcallback.
Sjoerd Mullender <sjoerd@acm.org>
parents:
1063
diff
changeset
|
628 #ifdef CDsetcallback |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
629 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
|
630 (void *) self); |
|
921
8078834996ec
cdmodule.c: 2 minor changes by Sjoerd.
Guido van Rossum <guido@python.org>
parents:
849
diff
changeset
|
631 #else |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
632 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
|
633 (void *) self); |
|
921
8078834996ec
cdmodule.c: 2 minor changes by Sjoerd.
Guido van Rossum <guido@python.org>
parents:
849
diff
changeset
|
634 #endif |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
635 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
|
636 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
|
637 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
|
638 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
|
639 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
|
640 self->ob_cdcallbacks[type].ob_cdcallbackarg = funcarg; |
| 820 | 641 |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
642 /* |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
643 if (type == cd_audio) { |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
644 sigfpe_[_UNDERFL].repls = _ZERO; |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
645 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
|
646 _ABORT_ON_ERROR, NULL); |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
647 } |
|
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 |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
650 Py_INCREF(Py_None); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
651 return Py_None; |
| 820 | 652 } |
| 653 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
654 static PyMethodDef cdparser_methods[] = { |
|
21757
40631ae74b17
Patch #477750: Use METH_ constants in Modules.
Martin v. Löwis <martin@v.loewis.de>
parents:
21313
diff
changeset
|
655 {"addcallback", (PyCFunction)CD_addcallback, METH_VARARGS}, |
|
40631ae74b17
Patch #477750: Use METH_ constants in Modules.
Martin v. Löwis <martin@v.loewis.de>
parents:
21313
diff
changeset
|
656 {"deleteparser", (PyCFunction)CD_deleteparser, METH_VARARGS}, |
|
40631ae74b17
Patch #477750: Use METH_ constants in Modules.
Martin v. Löwis <martin@v.loewis.de>
parents:
21313
diff
changeset
|
657 {"parseframe", (PyCFunction)CD_parseframe, METH_VARARGS}, |
|
40631ae74b17
Patch #477750: Use METH_ constants in Modules.
Martin v. Löwis <martin@v.loewis.de>
parents:
21313
diff
changeset
|
658 {"removecallback", (PyCFunction)CD_removecallback, METH_VARARGS}, |
|
40631ae74b17
Patch #477750: Use METH_ constants in Modules.
Martin v. Löwis <martin@v.loewis.de>
parents:
21313
diff
changeset
|
659 {"resetparser", (PyCFunction)CD_resetparser, METH_VARARGS}, |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
660 /* backward compatibility */ |
|
21757
40631ae74b17
Patch #477750: Use METH_ constants in Modules.
Martin v. Löwis <martin@v.loewis.de>
parents:
21313
diff
changeset
|
661 {"setcallback", (PyCFunction)CD_addcallback, METH_VARARGS}, |
| 820 | 662 {NULL, NULL} /* sentinel */ |
| 663 }; | |
| 664 | |
| 665 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
|
666 cdparser_dealloc(cdparserobject *self) |
| 820 | 667 { |
| 668 int i; | |
| 669 | |
| 670 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
|
671 Py_XDECREF(self->ob_cdcallbacks[i].ob_cdcallback); |
| 820 | 672 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
|
673 Py_XDECREF(self->ob_cdcallbacks[i].ob_cdcallbackarg); |
| 820 | 674 self->ob_cdcallbacks[i].ob_cdcallbackarg = NULL; |
| 675 } | |
| 676 CDdeleteparser(self->ob_cdparser); | |
|
12576
1c7c2dd1beb1
Vladimir Marangozov's long-awaited malloc restructuring.
Guido van Rossum <guido@python.org>
parents:
11882
diff
changeset
|
677 PyObject_Del(self); |
| 820 | 678 } |
| 679 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
680 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
|
681 cdparser_getattr(cdparserobject *self, char *name) |
| 820 | 682 { |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
683 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
|
684 PyErr_SetString(PyExc_RuntimeError, "no parser active"); |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
685 return NULL; |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
686 } |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
687 |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
688 return Py_FindMethod(cdparser_methods, (PyObject *)self, name); |
| 820 | 689 } |
| 690 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
691 PyTypeObject CdParsertype = { |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
692 PyObject_HEAD_INIT(&PyType_Type) |
| 820 | 693 0, /*ob_size*/ |
|
21313
91dd223829c6
Patch supplied by Burton Radons for his own SF bug #487390: Modifying
Guido van Rossum <guido@python.org>
parents:
14375
diff
changeset
|
694 "cd.cdparser", /*tp_name*/ |
| 820 | 695 sizeof(cdparserobject), /*tp_size*/ |
| 696 0, /*tp_itemsize*/ | |
| 697 /* methods */ | |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1313
diff
changeset
|
698 (destructor)cdparser_dealloc, /*tp_dealloc*/ |
| 820 | 699 0, /*tp_print*/ |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1313
diff
changeset
|
700 (getattrfunc)cdparser_getattr, /*tp_getattr*/ |
| 820 | 701 0, /*tp_setattr*/ |
| 702 0, /*tp_compare*/ | |
| 703 0, /*tp_repr*/ | |
| 704 }; | |
| 705 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
706 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
|
707 newcdparserobject(CDPARSER *cdp) |
| 820 | 708 { |
| 709 cdparserobject *p; | |
| 710 int i; | |
| 711 | |
|
12576
1c7c2dd1beb1
Vladimir Marangozov's long-awaited malloc restructuring.
Guido van Rossum <guido@python.org>
parents:
11882
diff
changeset
|
712 p = PyObject_New(cdparserobject, &CdParsertype); |
| 820 | 713 if (p == NULL) |
| 714 return NULL; | |
| 715 p->ob_cdparser = cdp; | |
| 716 for (i = 0; i < NCALLBACKS; i++) { | |
| 717 p->ob_cdcallbacks[i].ob_cdcallback = NULL; | |
| 718 p->ob_cdcallbacks[i].ob_cdcallbackarg = NULL; | |
| 719 } | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
720 return (PyObject *) p; |
| 820 | 721 } |
| 722 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
723 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
|
724 CD_createparser(PyObject *self, PyObject *args) |
| 820 | 725 { |
| 726 CDPARSER *cdp; | |
| 727 | |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
728 if (!PyArg_ParseTuple(args, ":createparser")) |
| 820 | 729 return NULL; |
| 730 cdp = CDcreateparser(); | |
| 731 if (cdp == NULL) { | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
732 PyErr_SetString(CdError, "createparser failed"); |
| 820 | 733 return NULL; |
| 734 } | |
| 735 | |
| 736 return newcdparserobject(cdp); | |
| 737 } | |
| 738 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
739 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
|
740 CD_msftoframe(PyObject *self, PyObject *args) |
| 820 | 741 { |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
742 int min, sec, frame; |
| 820 | 743 |
|
11882
dc65c5f6ad7c
Massive patch by Skip Montanaro to add ":name" to as many
Guido van Rossum <guido@python.org>
parents:
6370
diff
changeset
|
744 if (!PyArg_ParseTuple(args, "iii:msftoframe", &min, &sec, &frame)) |
| 820 | 745 return NULL; |
| 746 | |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
747 return PyInt_FromLong((long) CDmsftoframe(min, sec, frame)); |
| 820 | 748 } |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
749 |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
750 static PyMethodDef CD_methods[] = { |
|
21757
40631ae74b17
Patch #477750: Use METH_ constants in Modules.
Martin v. Löwis <martin@v.loewis.de>
parents:
21313
diff
changeset
|
751 {"open", (PyCFunction)CD_open, METH_VARARGS}, |
|
40631ae74b17
Patch #477750: Use METH_ constants in Modules.
Martin v. Löwis <martin@v.loewis.de>
parents:
21313
diff
changeset
|
752 {"createparser", (PyCFunction)CD_createparser, METH_VARARGS}, |
|
40631ae74b17
Patch #477750: Use METH_ constants in Modules.
Martin v. Löwis <martin@v.loewis.de>
parents:
21313
diff
changeset
|
753 {"msftoframe", (PyCFunction)CD_msftoframe, METH_VARARGS}, |
| 820 | 754 {NULL, NULL} /* Sentinel */ |
| 755 }; | |
| 756 | |
| 757 void | |
|
13651
8a063423e0b7
Bunch of minor ANSIfications: 'void initfunc()' -> 'void initfunc(void)',
Thomas Wouters <thomas@python.org>
parents:
13514
diff
changeset
|
758 initcd(void) |
| 820 | 759 { |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
760 PyObject *m, *d; |
|
46995
561e5f5026eb
The CD and cd modules for IRIX are deprecated for 3.0.
Brett Cannon <bcannon@gmail.com>
parents:
36324
diff
changeset
|
761 |
|
561e5f5026eb
The CD and cd modules for IRIX are deprecated for 3.0.
Brett Cannon <bcannon@gmail.com>
parents:
36324
diff
changeset
|
762 if (PyErr_WarnPy3k("the cd module has been removed in " |
|
561e5f5026eb
The CD and cd modules for IRIX are deprecated for 3.0.
Brett Cannon <bcannon@gmail.com>
parents:
36324
diff
changeset
|
763 "Python 3.0", 2) < 0) |
|
561e5f5026eb
The CD and cd modules for IRIX are deprecated for 3.0.
Brett Cannon <bcannon@gmail.com>
parents:
36324
diff
changeset
|
764 return; |
|
1063
aaa3bccb143a
Defined exception cd.error which is used for errors other than
Sjoerd Mullender <sjoerd@acm.org>
parents:
926
diff
changeset
|
765 |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
766 m = Py_InitModule("cd", CD_methods); |
|
36324
1af7f719ed28
Check return result from Py_InitModule*(). This API can fail.
Neal Norwitz <nnorwitz@gmail.com>
parents:
23295
diff
changeset
|
767 if (m == NULL) |
|
1af7f719ed28
Check return result from Py_InitModule*(). This API can fail.
Neal Norwitz <nnorwitz@gmail.com>
parents:
23295
diff
changeset
|
768 return; |
|
4892
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
769 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
|
770 |
| 6370 | 771 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
|
772 PyDict_SetItemString(d, "error", CdError); |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
773 |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
774 /* 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
|
775 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
|
776 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
|
777 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
|
778 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
|
779 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
|
780 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
|
781 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
|
782 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
|
783 |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
784 /* 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
|
785 PyDict_SetItemString(d, "DATASIZE", |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
786 PyInt_FromLong((long) CDDA_DATASIZE)); |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
787 PyDict_SetItemString(d, "BLOCKSIZE", |
|
1c089c5b66e9
Renamed but not well tested.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
788 PyInt_FromLong((long) CDDA_BLOCKSIZE)); |
|
2603
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
789 |
|
4084ecf276cf
Use newgetargs instead of getargs.
Sjoerd Mullender <sjoerd@acm.org>
parents:
2061
diff
changeset
|
790 /* 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
|
791 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
|
792 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
|
793 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
|
794 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
|
795 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
|
796 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
|
797 #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
|
798 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
|
799 #endif |
| 820 | 800 } |
