1 /* Generated by Cython 0.12.1 on Sun Sep 26 13:30:09 2010 */
2
3 #define PY_SSIZE_T_CLEAN
4 #include "Python.h"
5 #include "structmember.h"
6 #ifndef Py_PYTHON_H
7 #error Python headers needed to compile C extensions, please install development version of Python.
8 #else
9
10 #ifndef PY_LONG_LONG
11 #define PY_LONG_LONG LONG_LONG
12 #endif
13 #ifndef DL_EXPORT
14 #define DL_EXPORT(t) t
15 #endif
16 #if PY_VERSION_HEX < 0x02040000
17 #define METH_COEXIST 0
18 #define PyDict_CheckExact(op) (Py_TYPE(op) == &PyDict_Type)
19 #define PyDict_Contains(d,o) PySequence_Contains(d,o)
20 #endif
21
22 #if PY_VERSION_HEX < 0x02050000
23 typedef int Py_ssize_t;
24 #define PY_SSIZE_T_MAX INT_MAX
25 #define PY_SSIZE_T_MIN INT_MIN
26 #define PY_FORMAT_SIZE_T ""
27 #define PyInt_FromSsize_t(z) PyInt_FromLong(z)
28 #define PyInt_AsSsize_t(o) PyInt_AsLong(o)
29 #define PyNumber_Index(o) PyNumber_Int(o)
30 #define PyIndex_Check(o) PyNumber_Check(o)
31 #define PyErr_WarnEx(category, message, stacklevel) PyErr_Warn(category, message)
32 #endif
33
34 #if PY_VERSION_HEX < 0x02060000
35 #define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt)
36 #define Py_TYPE(ob) (((PyObject*)(ob))->ob_type)
37 #define Py_SIZE(ob) (((PyVarObject*)(ob))->ob_size)
38 #define PyVarObject_HEAD_INIT(type, size) \
39 PyObject_HEAD_INIT(type) size,
40 #define PyType_Modified(t)
41
42 typedef struct {
43 void *buf;
44 PyObject *obj;
45 Py_ssize_t len;
46 Py_ssize_t itemsize;
47 int readonly;
48 int ndim;
49 char *format;
50 Py_ssize_t *shape;
51 Py_ssize_t *strides;
52 Py_ssize_t *suboffsets;
53 void *internal;
54 } Py_buffer;
55
56 #define PyBUF_SIMPLE 0
57 #define PyBUF_WRITABLE 0x0001
58 #define PyBUF_FORMAT 0x0004
59 #define PyBUF_ND 0x0008
60 #define PyBUF_STRIDES (0x0010 | PyBUF_ND)
61 #define PyBUF_C_CONTIGUOUS (0x0020 | PyBUF_STRIDES)
62 #define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES)
63 #define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES)
64 #define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES)
65
66 #endif
67
68 #if PY_MAJOR_VERSION < 3
69 #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
70 #else
71 #define __Pyx_BUILTIN_MODULE_NAME "builtins"
72 #endif
73
74 #if PY_MAJOR_VERSION >= 3
75 #define Py_TPFLAGS_CHECKTYPES 0
76 #define Py_TPFLAGS_HAVE_INDEX 0
77 #endif
78
79 #if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3)
80 #define Py_TPFLAGS_HAVE_NEWBUFFER 0
81 #endif
82
83 #if PY_MAJOR_VERSION >= 3
84 #define PyBaseString_Type PyUnicode_Type
85 #define PyString_Type PyUnicode_Type
86 #define PyString_CheckExact PyUnicode_CheckExact
87 #else
88 #define PyBytes_Type PyString_Type
89 #define PyBytes_CheckExact PyString_CheckExact
90 #endif
91
92 #if PY_MAJOR_VERSION >= 3
93 #define PyInt_Type PyLong_Type
94 #define PyInt_Check(op) PyLong_Check(op)
95 #define PyInt_CheckExact(op) PyLong_CheckExact(op)
96 #define PyInt_FromString PyLong_FromString
97 #define PyInt_FromUnicode PyLong_FromUnicode
98 #define PyInt_FromLong PyLong_FromLong
99 #define PyInt_FromSize_t PyLong_FromSize_t
100 #define PyInt_FromSsize_t PyLong_FromSsize_t
101 #define PyInt_AsLong PyLong_AsLong
102 #define PyInt_AS_LONG PyLong_AS_LONG
103 #define PyInt_AsSsize_t PyLong_AsSsize_t
104 #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask
105 #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
106 #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y)
107 #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y)
108 #else
109 #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y)
110 #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y)
111
112 #endif
113
114 #if PY_MAJOR_VERSION >= 3
115 #define PyMethod_New(func, self, klass) PyInstanceMethod_New(func)
116 #endif
117
118 #if !defined(WIN32) && !defined(MS_WINDOWS)
119 #ifndef __stdcall
120 #define __stdcall
121 #endif
122 #ifndef __cdecl
123 #define __cdecl
124 #endif
125 #ifndef __fastcall
126 #define __fastcall
127 #endif
128 #else
129 #define _USE_MATH_DEFINES
130 #endif
131
132 #if PY_VERSION_HEX < 0x02050000
133 #define __Pyx_GetAttrString(o,n) PyObject_GetAttrString((o),((char *)(n)))
134 #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),((char *)(n)),(a))
135 #define __Pyx_DelAttrString(o,n) PyObject_DelAttrString((o),((char *)(n)))
136 #else
137 #define __Pyx_GetAttrString(o,n) PyObject_GetAttrString((o),(n))
138 #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),(n),(a))
139 #define __Pyx_DelAttrString(o,n) PyObject_DelAttrString((o),(n))
140 #endif
141
142 #if PY_VERSION_HEX < 0x02050000
143 #define __Pyx_NAMESTR(n) ((char *)(n))
144 #define __Pyx_DOCSTR(n) ((char *)(n))
145 #else
146 #define __Pyx_NAMESTR(n) (n)
147 #define __Pyx_DOCSTR(n) (n)
148 #endif
149 #ifdef __cplusplus
150 #define __PYX_EXTERN_C extern "C"
151 #else
152 #define __PYX_EXTERN_C extern
153 #endif
154 #include <math.h>
155 #define __PYX_HAVE_API___pyportmidi
156 #include "portmidi.h"
157 #include "porttime.h"
158
159 #ifndef CYTHON_INLINE
160 #if defined(__GNUC__)
161 #define CYTHON_INLINE __inline__
162 #elif defined(_MSC_VER)
163 #define CYTHON_INLINE __inline
164 #else
165 #define CYTHON_INLINE
166 #endif
167 #endif
168
169 typedef struct {PyObject **p; char *s; const long n; const char* encoding; const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; /*proto*/
170
171
172 /* Type Conversion Predeclarations */
173
174 #if PY_MAJOR_VERSION < 3
175 #define __Pyx_PyBytes_FromString PyString_FromString
176 #define __Pyx_PyBytes_FromStringAndSize PyString_FromStringAndSize
177 #define __Pyx_PyBytes_AsString PyString_AsString
178 #else
179 #define __Pyx_PyBytes_FromString PyBytes_FromString
180 #define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
181 #define __Pyx_PyBytes_AsString PyBytes_AsString
182 #endif
183
184 #define __Pyx_PyBytes_FromUString(s) __Pyx_PyBytes_FromString((char*)s)
185 #define __Pyx_PyBytes_AsUString(s) ((unsigned char*) __Pyx_PyBytes_AsString(s))
186
187 #define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False))
188 static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
189 static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x);
190
191 #if !defined(T_PYSSIZET)
192 #if PY_VERSION_HEX < 0x02050000
193 #define T_PYSSIZET T_INT
194 #elif !defined(T_LONGLONG)
195 #define T_PYSSIZET \
196 ((sizeof(Py_ssize_t) == sizeof(int)) ? T_INT : \
197 ((sizeof(Py_ssize_t) == sizeof(long)) ? T_LONG : -1))
198 #else
199 #define T_PYSSIZET \
200 ((sizeof(Py_ssize_t) == sizeof(int)) ? T_INT : \
201 ((sizeof(Py_ssize_t) == sizeof(long)) ? T_LONG : \
202 ((sizeof(Py_ssize_t) == sizeof(PY_LONG_LONG)) ? T_LONGLONG : -1)))
203 #endif
204 #endif
205
206
207 #if !defined(T_ULONGLONG)
208 #define __Pyx_T_UNSIGNED_INT(x) \
209 ((sizeof(x) == sizeof(unsigned char)) ? T_UBYTE : \
210 ((sizeof(x) == sizeof(unsigned short)) ? T_USHORT : \
211 ((sizeof(x) == sizeof(unsigned int)) ? T_UINT : \
212 ((sizeof(x) == sizeof(unsigned long)) ? T_ULONG : -1))))
213 #else
214 #define __Pyx_T_UNSIGNED_INT(x) \
215 ((sizeof(x) == sizeof(unsigned char)) ? T_UBYTE : \
216 ((sizeof(x) == sizeof(unsigned short)) ? T_USHORT : \
217 ((sizeof(x) == sizeof(unsigned int)) ? T_UINT : \
218 ((sizeof(x) == sizeof(unsigned long)) ? T_ULONG : \
219 ((sizeof(x) == sizeof(unsigned PY_LONG_LONG)) ? T_ULONGLONG : -1)))))
220 #endif
221 #if !defined(T_LONGLONG)
222 #define __Pyx_T_SIGNED_INT(x) \
223 ((sizeof(x) == sizeof(char)) ? T_BYTE : \
224 ((sizeof(x) == sizeof(short)) ? T_SHORT : \
225 ((sizeof(x) == sizeof(int)) ? T_INT : \
226 ((sizeof(x) == sizeof(long)) ? T_LONG : -1))))
227 #else
228 #define __Pyx_T_SIGNED_INT(x) \
229 ((sizeof(x) == sizeof(char)) ? T_BYTE : \
230 ((sizeof(x) == sizeof(short)) ? T_SHORT : \
231 ((sizeof(x) == sizeof(int)) ? T_INT : \
232 ((sizeof(x) == sizeof(long)) ? T_LONG : \
233 ((sizeof(x) == sizeof(PY_LONG_LONG)) ? T_LONGLONG : -1)))))
234 #endif
235
236 #define __Pyx_T_FLOATING(x) \
237 ((sizeof(x) == sizeof(float)) ? T_FLOAT : \
238 ((sizeof(x) == sizeof(double)) ? T_DOUBLE : -1))
239
240 #if !defined(T_SIZET)
241 #if !defined(T_ULONGLONG)
242 #define T_SIZET \
243 ((sizeof(size_t) == sizeof(unsigned int)) ? T_UINT : \
244 ((sizeof(size_t) == sizeof(unsigned long)) ? T_ULONG : -1))
245 #else
246 #define T_SIZET \
247 ((sizeof(size_t) == sizeof(unsigned int)) ? T_UINT : \
248 ((sizeof(size_t) == sizeof(unsigned long)) ? T_ULONG : \
249 ((sizeof(size_t) == sizeof(unsigned PY_LONG_LONG)) ? T_ULONGLONG : -1)))
250 #endif
251 #endif
252
253 static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
254 static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
255 static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject*);
256
257 #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
258
259
260 #ifdef __GNUC__
261 /* Test for GCC > 2.95 */
262 #if __GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))
263 #define likely(x) __builtin_expect(!!(x), 1)
264 #define unlikely(x) __builtin_expect(!!(x), 0)
265 #else /* __GNUC__ > 2 ... */
266 #define likely(x) (x)
267 #define unlikely(x) (x)
268 #endif /* __GNUC__ > 2 ... */
269 #else /* __GNUC__ */
270 #define likely(x) (x)
271 #define unlikely(x) (x)
272 #endif /* __GNUC__ */
273
274 static PyObject *__pyx_m;
275 static PyObject *__pyx_b;
276 static PyObject *__pyx_empty_tuple;
277 static PyObject *__pyx_empty_bytes;
278 static int __pyx_lineno;
279 static int __pyx_clineno = 0;
280 static const char * __pyx_cfilenm= __FILE__;
281 static const char *__pyx_filename;
282 static const char **__pyx_f;
283
284
285 /* Type declarations */
286
287 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":394
288 *
289 *
290 * cdef class Input: # <<<<<<<<<<<<<<
291 * """
292 * class Input:
293 */
294
295 struct __pyx_obj_11_pyportmidi_Input {
296 PyObject_HEAD
297 PmStream *midi;
298 int debug;
299 int i;
300 };
301
302 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":201
303 * return Pm_Channel(chan-1)
304 *
305 * cdef class Output: # <<<<<<<<<<<<<<
306 * """
307 * class Output:
308 */
309
310 struct __pyx_obj_11_pyportmidi_Output {
311 PyObject_HEAD
312 int i;
313 PmStream *midi;
314 int debug;
315 int _aborted;
316 };
317
318 #ifndef CYTHON_REFNANNY
319 #define CYTHON_REFNANNY 0
320 #endif
321
322 #if CYTHON_REFNANNY
323 typedef struct {
324 void (*INCREF)(void*, PyObject*, int);
325 void (*DECREF)(void*, PyObject*, int);
326 void (*GOTREF)(void*, PyObject*, int);
327 void (*GIVEREF)(void*, PyObject*, int);
328 void* (*SetupContext)(const char*, int, const char*);
329 void (*FinishContext)(void**);
330 } __Pyx_RefNannyAPIStruct;
331 static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
__Pyx_RefNannyImportAPI(const char * modname)332 static __Pyx_RefNannyAPIStruct * __Pyx_RefNannyImportAPI(const char *modname) {
333 PyObject *m = NULL, *p = NULL;
334 void *r = NULL;
335 m = PyImport_ImportModule((char *)modname);
336 if (!m) goto end;
337 p = PyObject_GetAttrString(m, (char *)"RefNannyAPI");
338 if (!p) goto end;
339 r = PyLong_AsVoidPtr(p);
340 end:
341 Py_XDECREF(p);
342 Py_XDECREF(m);
343 return (__Pyx_RefNannyAPIStruct *)r;
344 }
345 #define __Pyx_RefNannySetupContext(name) void *__pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
346 #define __Pyx_RefNannyFinishContext() __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
347 #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
348 #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
349 #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
350 #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
351 #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r);} } while(0)
352 #else
353 #define __Pyx_RefNannySetupContext(name)
354 #define __Pyx_RefNannyFinishContext()
355 #define __Pyx_INCREF(r) Py_INCREF(r)
356 #define __Pyx_DECREF(r) Py_DECREF(r)
357 #define __Pyx_GOTREF(r)
358 #define __Pyx_GIVEREF(r)
359 #define __Pyx_XDECREF(r) Py_XDECREF(r)
360 #endif /* CYTHON_REFNANNY */
361 #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);} } while(0)
362 #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r);} } while(0)
363
364 static void __Pyx_RaiseDoubleKeywordsError(
365 const char* func_name, PyObject* kw_name); /*proto*/
366
367 static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
368 Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /*proto*/
369
370 static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, const char* function_name); /*proto*/
371
372
__Pyx_GetItemInt_Generic(PyObject * o,PyObject * j)373 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
374 PyObject *r;
375 if (!j) return NULL;
376 r = PyObject_GetItem(o, j);
377 Py_DECREF(j);
378 return r;
379 }
380
381
382 #define __Pyx_GetItemInt_List(o, i, size, to_py_func) ((size <= sizeof(Py_ssize_t)) ? \
383 __Pyx_GetItemInt_List_Fast(o, i, size <= sizeof(long)) : \
384 __Pyx_GetItemInt_Generic(o, to_py_func(i)))
385
__Pyx_GetItemInt_List_Fast(PyObject * o,Py_ssize_t i,int fits_long)386 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, int fits_long) {
387 if (likely(o != Py_None)) {
388 if (likely((0 <= i) & (i < PyList_GET_SIZE(o)))) {
389 PyObject *r = PyList_GET_ITEM(o, i);
390 Py_INCREF(r);
391 return r;
392 }
393 else if ((-PyList_GET_SIZE(o) <= i) & (i < 0)) {
394 PyObject *r = PyList_GET_ITEM(o, PyList_GET_SIZE(o) + i);
395 Py_INCREF(r);
396 return r;
397 }
398 }
399 return __Pyx_GetItemInt_Generic(o, fits_long ? PyInt_FromLong(i) : PyLong_FromLongLong(i));
400 }
401
402 #define __Pyx_GetItemInt_Tuple(o, i, size, to_py_func) ((size <= sizeof(Py_ssize_t)) ? \
403 __Pyx_GetItemInt_Tuple_Fast(o, i, size <= sizeof(long)) : \
404 __Pyx_GetItemInt_Generic(o, to_py_func(i)))
405
__Pyx_GetItemInt_Tuple_Fast(PyObject * o,Py_ssize_t i,int fits_long)406 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, int fits_long) {
407 if (likely(o != Py_None)) {
408 if (likely((0 <= i) & (i < PyTuple_GET_SIZE(o)))) {
409 PyObject *r = PyTuple_GET_ITEM(o, i);
410 Py_INCREF(r);
411 return r;
412 }
413 else if ((-PyTuple_GET_SIZE(o) <= i) & (i < 0)) {
414 PyObject *r = PyTuple_GET_ITEM(o, PyTuple_GET_SIZE(o) + i);
415 Py_INCREF(r);
416 return r;
417 }
418 }
419 return __Pyx_GetItemInt_Generic(o, fits_long ? PyInt_FromLong(i) : PyLong_FromLongLong(i));
420 }
421
422
423 #define __Pyx_GetItemInt(o, i, size, to_py_func) ((size <= sizeof(Py_ssize_t)) ? \
424 __Pyx_GetItemInt_Fast(o, i, size <= sizeof(long)) : \
425 __Pyx_GetItemInt_Generic(o, to_py_func(i)))
426
__Pyx_GetItemInt_Fast(PyObject * o,Py_ssize_t i,int fits_long)427 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int fits_long) {
428 PyObject *r;
429 if (PyList_CheckExact(o) && ((0 <= i) & (i < PyList_GET_SIZE(o)))) {
430 r = PyList_GET_ITEM(o, i);
431 Py_INCREF(r);
432 }
433 else if (PyTuple_CheckExact(o) && ((0 <= i) & (i < PyTuple_GET_SIZE(o)))) {
434 r = PyTuple_GET_ITEM(o, i);
435 Py_INCREF(r);
436 }
437 else if (Py_TYPE(o)->tp_as_sequence && Py_TYPE(o)->tp_as_sequence->sq_item && (likely(i >= 0))) {
438 r = PySequence_GetItem(o, i);
439 }
440 else {
441 r = __Pyx_GetItemInt_Generic(o, fits_long ? PyInt_FromLong(i) : PyLong_FromLongLong(i));
442 }
443 return r;
444 }
445
__Pyx_PyObject_Append(PyObject * L,PyObject * x)446 static CYTHON_INLINE PyObject* __Pyx_PyObject_Append(PyObject* L, PyObject* x) {
447 if (likely(PyList_CheckExact(L))) {
448 if (PyList_Append(L, x) < 0) return NULL;
449 Py_INCREF(Py_None);
450 return Py_None; /* this is just to have an accurate signature */
451 }
452 else {
453 PyObject *r, *m;
454 m = __Pyx_GetAttrString(L, "append");
455 if (!m) return NULL;
456 r = PyObject_CallFunctionObjArgs(m, x, NULL);
457 Py_DECREF(m);
458 return r;
459 }
460 }
461
462 static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list); /*proto*/
463
464 static CYTHON_INLINE PyObject *__Pyx_PyInt_to_py_PmDeviceID(PmDeviceID);
465
466 static CYTHON_INLINE PmDeviceID __Pyx_PyInt_from_py_PmDeviceID(PyObject *);
467
468 static CYTHON_INLINE PyObject *__Pyx_PyInt_to_py_PtTimestamp(PtTimestamp);
469
470 static int __Pyx_Print(PyObject *, int); /*proto*/
471 #if PY_MAJOR_VERSION >= 3
472 static PyObject* __pyx_print = 0;
473 static PyObject* __pyx_print_kwargs = 0;
474 #endif
475
476 static int __Pyx_PrintOne(PyObject *o); /*proto*/
477
478 static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/
479
480 static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
481 static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
482
483 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
484
485 static CYTHON_INLINE PyObject *__Pyx_PyInt_to_py_PmMessage(PmMessage);
486
487 static CYTHON_INLINE PmMessage __Pyx_PyInt_from_py_PmMessage(PyObject *);
488
489 static CYTHON_INLINE PmTimestamp __Pyx_PyInt_from_py_PmTimestamp(PyObject *);
490
491 static CYTHON_INLINE PyObject *__Pyx_PyInt_to_py_PmTimestamp(PmTimestamp);
492
493 static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject *);
494
495 static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject *);
496
497 static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject *);
498
499 static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject *);
500
501 static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject *);
502
503 static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject *);
504
505 static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject *);
506
507 static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject *);
508
509 static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject *);
510
511 static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject *);
512
513 static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject *);
514
515 static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject *);
516
517 static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject *);
518
519 static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject *);
520
521 static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject *);
522
523 static void __Pyx_AddTraceback(const char *funcname); /*proto*/
524
525 static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/
526 /* Module declarations from _pyportmidi */
527
528 static PyTypeObject *__pyx_ptype_11_pyportmidi_Output = 0;
529 static PyTypeObject *__pyx_ptype_11_pyportmidi_Input = 0;
530 #define __Pyx_MODULE_NAME "_pyportmidi"
531 int __pyx_module_is_main__pyportmidi = 0;
532
533 /* Implementation of _pyportmidi */
534 static PyObject *__pyx_builtin_Exception;
535 static PyObject *__pyx_builtin_IndexError;
536 static PyObject *__pyx_builtin_range;
537 static char __pyx_k_1[] = "Opening Midi Output";
538 static char __pyx_k_2[] = "Unable to open Midi OutputDevice=";
539 static char __pyx_k_3[] = " err=";
540 static char __pyx_k_4[] = "Closing MIDI output stream and destroying instance";
541 static char __pyx_k_5[] = "midi Output not open.";
542 static char __pyx_k_6[] = "midi Output aborted. Need to call Close after Abort.";
543 static char __pyx_k_7[] = "maximum list length is 1024";
544 static char __pyx_k_8[] = " arguments in event list";
545 static char __pyx_k_9[] = " : ";
546 static char __pyx_k_10[] = "writing to midi buffer";
547 static char __pyx_k_11[] = "Writing to MIDI buffer";
548 static char __pyx_k_12[] = "MIDI input opened.";
549 static char __pyx_k_13[] = "Closing MIDI input stream and destroying instance";
550 static char __pyx_k_14[] = "midi Input not open.";
551 static char __pyx_k_15[] = "maximum buffer length is 1024";
552 static char __pyx_k_16[] = "minimum buffer length is 1";
553 static char __pyx_k_17[] = "0.07";
554 static char __pyx_k_18[] = "FILT_CHANNEL_AFTERTOUCH";
555 static char __pyx_k_19[] = "FILT_POLY_AFTERTOUCH";
556 static char __pyx_k_20[] = "Initialize (line 132)";
557 static char __pyx_k_21[] = "Terminate (line 139)";
558 static char __pyx_k_22[] = "GetDeviceInfo (line 156)";
559 static char __pyx_k_23[] = "Time (line 173)";
560 static char __pyx_k_24[] = "GetErrorText (line 180)";
561 static char __pyx_k_25[] = "Channel (line 187)";
562 static char __pyx_k_26[] = "Output._check_open (line 248)";
563 static char __pyx_k_27[] = "Output.Close (line 258)";
564 static char __pyx_k_28[] = "Output.Abort (line 274)";
565 static char __pyx_k_29[] = "Output.Write (line 293)";
566 static char __pyx_k_30[] = "Output.WriteShort (line 333)";
567 static char __pyx_k_31[] = "Output.WriteSysEx (line 356)";
568 static char __pyx_k_32[] = "Input._check_open (line 422)";
569 static char __pyx_k_33[] = "Input.Close (line 430)";
570 static char __pyx_k_34[] = "Input.SetFilter (line 447)";
571 static char __pyx_k_35[] = "Input.SetChannelMask (line 481)";
572 static char __pyx_k_36[] = "Input.Poll (line 502)";
573 static char __pyx_k_37[] = "Input.Read (line 514)";
574 static char __pyx_k__B[] = "B";
575 static char __pyx_k__i[] = "i";
576 static char __pyx_k__msg[] = "msg";
577 static char __pyx_k__Poll[] = "Poll";
578 static char __pyx_k__Read[] = "Read";
579 static char __pyx_k__TRUE[] = "TRUE";
580 static char __pyx_k__Time[] = "Time";
581 static char __pyx_k__midi[] = "midi";
582 static char __pyx_k__name[] = "name";
583 static char __pyx_k__when[] = "when";
584 static char __pyx_k__Abort[] = "Abort";
585 static char __pyx_k__Close[] = "Close";
586 static char __pyx_k__FALSE[] = "FALSE";
587 static char __pyx_k__Input[] = "Input";
588 static char __pyx_k__Write[] = "Write";
589 static char __pyx_k__array[] = "array";
590 static char __pyx_k__data1[] = "data1";
591 static char __pyx_k__data2[] = "data2";
592 static char __pyx_k__debug[] = "debug";
593 static char __pyx_k__input[] = "input";
594 static char __pyx_k__range[] = "range";
595 static char __pyx_k__Output[] = "Output";
596 static char __pyx_k__interf[] = "interf";
597 static char __pyx_k__opened[] = "opened";
598 static char __pyx_k__output[] = "output";
599 static char __pyx_k__status[] = "status";
600 static char __pyx_k__Channel[] = "Channel";
601 static char __pyx_k__FILT_F9[] = "FILT_F9";
602 static char __pyx_k__FILT_FD[] = "FILT_FD";
603 static char __pyx_k__latency[] = "latency";
604 static char __pyx_k__message[] = "message";
605 static char __pyx_k__FILT_MTC[] = "FILT_MTC";
606 static char __pyx_k____main__[] = "__main__";
607 static char __pyx_k____test__[] = "__test__";
608 static char __pyx_k___aborted[] = "_aborted";
609 static char __pyx_k__tostring[] = "tostring";
610 static char __pyx_k__Exception[] = "Exception";
611 static char __pyx_k__FILT_NOTE[] = "FILT_NOTE";
612 static char __pyx_k__FILT_PLAY[] = "FILT_PLAY";
613 static char __pyx_k__FILT_TICK[] = "FILT_TICK";
614 static char __pyx_k__FILT_TUNE[] = "FILT_TUNE";
615 static char __pyx_k__SetFilter[] = "SetFilter";
616 static char __pyx_k__Terminate[] = "Terminate";
617 static char __pyx_k__timestamp[] = "timestamp";
618 static char __pyx_k__FILT_CLOCK[] = "FILT_CLOCK";
619 static char __pyx_k__FILT_RESET[] = "FILT_RESET";
620 static char __pyx_k__FILT_SYSEX[] = "FILT_SYSEX";
621 static char __pyx_k__IndexError[] = "IndexError";
622 static char __pyx_k__Initialize[] = "Initialize";
623 static char __pyx_k__WriteShort[] = "WriteShort";
624 static char __pyx_k__WriteSysEx[] = "WriteSysEx";
625 static char __pyx_k__buffersize[] = "buffersize";
626 static char __pyx_k__FILT_ACTIVE[] = "FILT_ACTIVE";
627 static char __pyx_k__InputDevice[] = "InputDevice";
628 static char __pyx_k____version__[] = "__version__";
629 static char __pyx_k___check_open[] = "_check_open";
630 static char __pyx_k__FILT_CONTROL[] = "FILT_CONTROL";
631 static char __pyx_k__FILT_PROGRAM[] = "FILT_PROGRAM";
632 static char __pyx_k__GetErrorText[] = "GetErrorText";
633 static char __pyx_k__OutputDevice[] = "OutputDevice";
634 static char __pyx_k__FILT_REALTIME[] = "FILT_REALTIME";
635 static char __pyx_k__GetDeviceInfo[] = "GetDeviceInfo";
636 static char __pyx_k__FILT_PITCHBEND[] = "FILT_PITCHBEND";
637 static char __pyx_k__FILT_UNDEFINED[] = "FILT_UNDEFINED";
638 static char __pyx_k__SetChannelMask[] = "SetChannelMask";
639 static char __pyx_k__FILT_AFTERTOUCH[] = "FILT_AFTERTOUCH";
640 static char __pyx_k__FILT_SONG_SELECT[] = "FILT_SONG_SELECT";
641 static char __pyx_k__FILT_SONG_POSITION[] = "FILT_SONG_POSITION";
642 static PyObject *__pyx_kp_s_1;
643 static PyObject *__pyx_kp_s_10;
644 static PyObject *__pyx_kp_s_11;
645 static PyObject *__pyx_kp_s_12;
646 static PyObject *__pyx_kp_s_13;
647 static PyObject *__pyx_kp_s_14;
648 static PyObject *__pyx_kp_s_15;
649 static PyObject *__pyx_kp_s_16;
650 static PyObject *__pyx_kp_s_17;
651 static PyObject *__pyx_n_s_18;
652 static PyObject *__pyx_n_s_19;
653 static PyObject *__pyx_kp_s_2;
654 static PyObject *__pyx_kp_u_20;
655 static PyObject *__pyx_kp_u_21;
656 static PyObject *__pyx_kp_u_22;
657 static PyObject *__pyx_kp_u_23;
658 static PyObject *__pyx_kp_u_24;
659 static PyObject *__pyx_kp_u_25;
660 static PyObject *__pyx_kp_u_26;
661 static PyObject *__pyx_kp_u_27;
662 static PyObject *__pyx_kp_u_28;
663 static PyObject *__pyx_kp_u_29;
664 static PyObject *__pyx_kp_s_3;
665 static PyObject *__pyx_kp_u_30;
666 static PyObject *__pyx_kp_u_31;
667 static PyObject *__pyx_kp_u_32;
668 static PyObject *__pyx_kp_u_33;
669 static PyObject *__pyx_kp_u_34;
670 static PyObject *__pyx_kp_u_35;
671 static PyObject *__pyx_kp_u_36;
672 static PyObject *__pyx_kp_u_37;
673 static PyObject *__pyx_kp_s_4;
674 static PyObject *__pyx_kp_s_5;
675 static PyObject *__pyx_kp_s_6;
676 static PyObject *__pyx_kp_s_7;
677 static PyObject *__pyx_kp_s_8;
678 static PyObject *__pyx_kp_s_9;
679 static PyObject *__pyx_n_s__Abort;
680 static PyObject *__pyx_n_s__B;
681 static PyObject *__pyx_n_s__Channel;
682 static PyObject *__pyx_n_s__Close;
683 static PyObject *__pyx_n_s__Exception;
684 static PyObject *__pyx_n_s__FALSE;
685 static PyObject *__pyx_n_s__FILT_ACTIVE;
686 static PyObject *__pyx_n_s__FILT_AFTERTOUCH;
687 static PyObject *__pyx_n_s__FILT_CLOCK;
688 static PyObject *__pyx_n_s__FILT_CONTROL;
689 static PyObject *__pyx_n_s__FILT_F9;
690 static PyObject *__pyx_n_s__FILT_FD;
691 static PyObject *__pyx_n_s__FILT_MTC;
692 static PyObject *__pyx_n_s__FILT_NOTE;
693 static PyObject *__pyx_n_s__FILT_PITCHBEND;
694 static PyObject *__pyx_n_s__FILT_PLAY;
695 static PyObject *__pyx_n_s__FILT_PROGRAM;
696 static PyObject *__pyx_n_s__FILT_REALTIME;
697 static PyObject *__pyx_n_s__FILT_RESET;
698 static PyObject *__pyx_n_s__FILT_SONG_POSITION;
699 static PyObject *__pyx_n_s__FILT_SONG_SELECT;
700 static PyObject *__pyx_n_s__FILT_SYSEX;
701 static PyObject *__pyx_n_s__FILT_TICK;
702 static PyObject *__pyx_n_s__FILT_TUNE;
703 static PyObject *__pyx_n_s__FILT_UNDEFINED;
704 static PyObject *__pyx_n_s__GetDeviceInfo;
705 static PyObject *__pyx_n_s__GetErrorText;
706 static PyObject *__pyx_n_s__IndexError;
707 static PyObject *__pyx_n_s__Initialize;
708 static PyObject *__pyx_n_s__Input;
709 static PyObject *__pyx_n_s__InputDevice;
710 static PyObject *__pyx_n_s__Output;
711 static PyObject *__pyx_n_s__OutputDevice;
712 static PyObject *__pyx_n_s__Poll;
713 static PyObject *__pyx_n_s__Read;
714 static PyObject *__pyx_n_s__SetChannelMask;
715 static PyObject *__pyx_n_s__SetFilter;
716 static PyObject *__pyx_n_s__TRUE;
717 static PyObject *__pyx_n_s__Terminate;
718 static PyObject *__pyx_n_s__Time;
719 static PyObject *__pyx_n_s__Write;
720 static PyObject *__pyx_n_s__WriteShort;
721 static PyObject *__pyx_n_s__WriteSysEx;
722 static PyObject *__pyx_n_s____main__;
723 static PyObject *__pyx_n_s____test__;
724 static PyObject *__pyx_n_s____version__;
725 static PyObject *__pyx_n_s___aborted;
726 static PyObject *__pyx_n_s___check_open;
727 static PyObject *__pyx_n_s__array;
728 static PyObject *__pyx_n_s__buffersize;
729 static PyObject *__pyx_n_s__data1;
730 static PyObject *__pyx_n_s__data2;
731 static PyObject *__pyx_n_s__debug;
732 static PyObject *__pyx_n_s__i;
733 static PyObject *__pyx_n_s__input;
734 static PyObject *__pyx_n_s__interf;
735 static PyObject *__pyx_n_s__latency;
736 static PyObject *__pyx_n_s__message;
737 static PyObject *__pyx_n_s__midi;
738 static PyObject *__pyx_n_s__msg;
739 static PyObject *__pyx_n_s__name;
740 static PyObject *__pyx_n_s__opened;
741 static PyObject *__pyx_n_s__output;
742 static PyObject *__pyx_n_s__range;
743 static PyObject *__pyx_n_s__status;
744 static PyObject *__pyx_n_s__timestamp;
745 static PyObject *__pyx_n_s__tostring;
746 static PyObject *__pyx_n_s__when;
747 static PyObject *__pyx_int_0;
748 static PyObject *__pyx_int_1;
749 static PyObject *__pyx_int_8;
750 static PyObject *__pyx_int_16;
751 static PyObject *__pyx_int_0x1;
752 static PyObject *__pyx_int_0x2;
753 static PyObject *__pyx_int_0x4;
754 static PyObject *__pyx_int_0x8;
755 static PyObject *__pyx_int_0x10;
756 static PyObject *__pyx_int_0x20;
757 static PyObject *__pyx_int_0x30;
758 static PyObject *__pyx_int_0x40;
759 static PyObject *__pyx_int_0x7F;
760 static PyObject *__pyx_int_0x80;
761 static PyObject *__pyx_int_0xFF;
762 static PyObject *__pyx_int_1024;
763 static PyObject *__pyx_int_4096;
764 static PyObject *__pyx_int_0x100;
765 static PyObject *__pyx_int_0x200;
766 static PyObject *__pyx_int_0x300;
767 static PyObject *__pyx_int_0x400;
768 static PyObject *__pyx_int_0x800;
769 static PyObject *__pyx_int_0x1000;
770 static PyObject *__pyx_int_0x2000;
771 static PyObject *__pyx_int_0x4000;
772 static PyObject *__pyx_int_0x8000;
773 static PyObject *__pyx_int_0xFF00;
774 static PyObject *__pyx_int_0x10000;
775 static PyObject *__pyx_int_0xFF0000;
776
777 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":132
778 * TRUE=1
779 *
780 * def Initialize(): # <<<<<<<<<<<<<<
781 * """
782 * Initialize: call this first
783 */
784
785 static PyObject *__pyx_pf_11_pyportmidi_Initialize(PyObject *__pyx_self, PyObject *unused); /*proto*/
786 static char __pyx_doc_11_pyportmidi_Initialize[] = "\nInitialize: call this first\n ";
__pyx_pf_11_pyportmidi_Initialize(PyObject * __pyx_self,PyObject * unused)787 static PyObject *__pyx_pf_11_pyportmidi_Initialize(PyObject *__pyx_self, PyObject *unused) {
788 PyObject *__pyx_r = NULL;
789 __Pyx_RefNannySetupContext("Initialize");
790 __pyx_self = __pyx_self;
791
792 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":136
793 * Initialize: call this first
794 * """
795 * Pm_Initialize() # <<<<<<<<<<<<<<
796 * Pt_Start(1, NULL, NULL) # /[inserted by cython to avoid comment start]* equiv to TIME_START: start timer w/ ms accuracy *[inserted by cython to avoid comment closer]/
797 *
798 */
799 Pm_Initialize();
800
801 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":137
802 * """
803 * Pm_Initialize()
804 * Pt_Start(1, NULL, NULL) # /[inserted by cython to avoid comment start]* equiv to TIME_START: start timer w/ ms accuracy *[inserted by cython to avoid comment closer]/ # <<<<<<<<<<<<<<
805 *
806 * def Terminate():
807 */
808 Pt_Start(1, NULL, NULL);
809
810 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
811 __Pyx_XGIVEREF(__pyx_r);
812 __Pyx_RefNannyFinishContext();
813 return __pyx_r;
814 }
815
816 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":139
817 * Pt_Start(1, NULL, NULL) # /[inserted by cython to avoid comment start]* equiv to TIME_START: start timer w/ ms accuracy *[inserted by cython to avoid comment closer]/
818 *
819 * def Terminate(): # <<<<<<<<<<<<<<
820 * """
821 * Terminate: call this to clean up Midi streams when done.
822 */
823
824 static PyObject *__pyx_pf_11_pyportmidi_Terminate(PyObject *__pyx_self, PyObject *unused); /*proto*/
825 static char __pyx_doc_11_pyportmidi_Terminate[] = "\nTerminate: call this to clean up Midi streams when done.\nIf you do not call this on Windows machines when you are\ndone with MIDI, your system may crash.\n ";
__pyx_pf_11_pyportmidi_Terminate(PyObject * __pyx_self,PyObject * unused)826 static PyObject *__pyx_pf_11_pyportmidi_Terminate(PyObject *__pyx_self, PyObject *unused) {
827 PyObject *__pyx_r = NULL;
828 __Pyx_RefNannySetupContext("Terminate");
829 __pyx_self = __pyx_self;
830
831 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":145
832 * done with MIDI, your system may crash.
833 * """
834 * Pm_Terminate() # <<<<<<<<<<<<<<
835 *
836 * def GetDefaultInputDeviceID():
837 */
838 Pm_Terminate();
839
840 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
841 __Pyx_XGIVEREF(__pyx_r);
842 __Pyx_RefNannyFinishContext();
843 return __pyx_r;
844 }
845
846 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":147
847 * Pm_Terminate()
848 *
849 * def GetDefaultInputDeviceID(): # <<<<<<<<<<<<<<
850 * return Pm_GetDefaultInputDeviceID()
851 *
852 */
853
854 static PyObject *__pyx_pf_11_pyportmidi_GetDefaultInputDeviceID(PyObject *__pyx_self, PyObject *unused); /*proto*/
__pyx_pf_11_pyportmidi_GetDefaultInputDeviceID(PyObject * __pyx_self,PyObject * unused)855 static PyObject *__pyx_pf_11_pyportmidi_GetDefaultInputDeviceID(PyObject *__pyx_self, PyObject *unused) {
856 PyObject *__pyx_r = NULL;
857 PyObject *__pyx_t_1 = NULL;
858 __Pyx_RefNannySetupContext("GetDefaultInputDeviceID");
859 __pyx_self = __pyx_self;
860
861 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":148
862 *
863 * def GetDefaultInputDeviceID():
864 * return Pm_GetDefaultInputDeviceID() # <<<<<<<<<<<<<<
865 *
866 * def GetDefaultOutputDeviceID():
867 */
868 __Pyx_XDECREF(__pyx_r);
869 __pyx_t_1 = __Pyx_PyInt_to_py_PmDeviceID(Pm_GetDefaultInputDeviceID()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
870 __Pyx_GOTREF(__pyx_t_1);
871 __pyx_r = __pyx_t_1;
872 __pyx_t_1 = 0;
873 goto __pyx_L0;
874
875 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
876 goto __pyx_L0;
877 __pyx_L1_error:;
878 __Pyx_XDECREF(__pyx_t_1);
879 __Pyx_AddTraceback("_pyportmidi.GetDefaultInputDeviceID");
880 __pyx_r = NULL;
881 __pyx_L0:;
882 __Pyx_XGIVEREF(__pyx_r);
883 __Pyx_RefNannyFinishContext();
884 return __pyx_r;
885 }
886
887 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":150
888 * return Pm_GetDefaultInputDeviceID()
889 *
890 * def GetDefaultOutputDeviceID(): # <<<<<<<<<<<<<<
891 * return Pm_GetDefaultOutputDeviceID()
892 *
893 */
894
895 static PyObject *__pyx_pf_11_pyportmidi_GetDefaultOutputDeviceID(PyObject *__pyx_self, PyObject *unused); /*proto*/
__pyx_pf_11_pyportmidi_GetDefaultOutputDeviceID(PyObject * __pyx_self,PyObject * unused)896 static PyObject *__pyx_pf_11_pyportmidi_GetDefaultOutputDeviceID(PyObject *__pyx_self, PyObject *unused) {
897 PyObject *__pyx_r = NULL;
898 PyObject *__pyx_t_1 = NULL;
899 __Pyx_RefNannySetupContext("GetDefaultOutputDeviceID");
900 __pyx_self = __pyx_self;
901
902 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":151
903 *
904 * def GetDefaultOutputDeviceID():
905 * return Pm_GetDefaultOutputDeviceID() # <<<<<<<<<<<<<<
906 *
907 * def CountDevices():
908 */
909 __Pyx_XDECREF(__pyx_r);
910 __pyx_t_1 = __Pyx_PyInt_to_py_PmDeviceID(Pm_GetDefaultOutputDeviceID()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
911 __Pyx_GOTREF(__pyx_t_1);
912 __pyx_r = __pyx_t_1;
913 __pyx_t_1 = 0;
914 goto __pyx_L0;
915
916 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
917 goto __pyx_L0;
918 __pyx_L1_error:;
919 __Pyx_XDECREF(__pyx_t_1);
920 __Pyx_AddTraceback("_pyportmidi.GetDefaultOutputDeviceID");
921 __pyx_r = NULL;
922 __pyx_L0:;
923 __Pyx_XGIVEREF(__pyx_r);
924 __Pyx_RefNannyFinishContext();
925 return __pyx_r;
926 }
927
928 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":153
929 * return Pm_GetDefaultOutputDeviceID()
930 *
931 * def CountDevices(): # <<<<<<<<<<<<<<
932 * return Pm_CountDevices()
933 *
934 */
935
936 static PyObject *__pyx_pf_11_pyportmidi_CountDevices(PyObject *__pyx_self, PyObject *unused); /*proto*/
__pyx_pf_11_pyportmidi_CountDevices(PyObject * __pyx_self,PyObject * unused)937 static PyObject *__pyx_pf_11_pyportmidi_CountDevices(PyObject *__pyx_self, PyObject *unused) {
938 PyObject *__pyx_r = NULL;
939 PyObject *__pyx_t_1 = NULL;
940 __Pyx_RefNannySetupContext("CountDevices");
941 __pyx_self = __pyx_self;
942
943 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":154
944 *
945 * def CountDevices():
946 * return Pm_CountDevices() # <<<<<<<<<<<<<<
947 *
948 * def GetDeviceInfo(i):
949 */
950 __Pyx_XDECREF(__pyx_r);
951 __pyx_t_1 = PyInt_FromLong(Pm_CountDevices()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
952 __Pyx_GOTREF(__pyx_t_1);
953 __pyx_r = __pyx_t_1;
954 __pyx_t_1 = 0;
955 goto __pyx_L0;
956
957 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
958 goto __pyx_L0;
959 __pyx_L1_error:;
960 __Pyx_XDECREF(__pyx_t_1);
961 __Pyx_AddTraceback("_pyportmidi.CountDevices");
962 __pyx_r = NULL;
963 __pyx_L0:;
964 __Pyx_XGIVEREF(__pyx_r);
965 __Pyx_RefNannyFinishContext();
966 return __pyx_r;
967 }
968
969 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":156
970 * return Pm_CountDevices()
971 *
972 * def GetDeviceInfo(i): # <<<<<<<<<<<<<<
973 * """
974 * GetDeviceInfo(<device number>): returns 5 parameters
975 */
976
977 static PyObject *__pyx_pf_11_pyportmidi_GetDeviceInfo(PyObject *__pyx_self, PyObject *__pyx_v_i); /*proto*/
978 static char __pyx_doc_11_pyportmidi_GetDeviceInfo[] = "\nGetDeviceInfo(<device number>): returns 5 parameters\n - underlying MIDI API\n - device name\n - TRUE iff input is available\n - TRUE iff output is available\n - TRUE iff device stream is already open\n ";
__pyx_pf_11_pyportmidi_GetDeviceInfo(PyObject * __pyx_self,PyObject * __pyx_v_i)979 static PyObject *__pyx_pf_11_pyportmidi_GetDeviceInfo(PyObject *__pyx_self, PyObject *__pyx_v_i) {
980 PmDeviceInfo *__pyx_v_info;
981 PyObject *__pyx_r = NULL;
982 PmDeviceID __pyx_t_1;
983 int __pyx_t_2;
984 PyObject *__pyx_t_3 = NULL;
985 PyObject *__pyx_t_4 = NULL;
986 PyObject *__pyx_t_5 = NULL;
987 PyObject *__pyx_t_6 = NULL;
988 PyObject *__pyx_t_7 = NULL;
989 PyObject *__pyx_t_8 = NULL;
990 __Pyx_RefNannySetupContext("GetDeviceInfo");
991 __pyx_self = __pyx_self;
992 __Pyx_INCREF(__pyx_v_i);
993
994 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":168
995 *
996 * # disregarding the constness from Pm_GetDeviceInfo, since pyrex doesn't do const.
997 * info = <PmDeviceInfo *>Pm_GetDeviceInfo(i) # <<<<<<<<<<<<<<
998 *
999 * if info <> NULL: return info.interf, info.name, info.input, info.output, info.opened
1000 */
1001 __pyx_t_1 = __Pyx_PyInt_from_py_PmDeviceID(__pyx_v_i); if (unlikely((__pyx_t_1 == (PmDeviceID)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1002 __pyx_v_info = ((PmDeviceInfo *)Pm_GetDeviceInfo(__pyx_t_1));
1003
1004 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":170
1005 * info = <PmDeviceInfo *>Pm_GetDeviceInfo(i)
1006 *
1007 * if info <> NULL: return info.interf, info.name, info.input, info.output, info.opened # <<<<<<<<<<<<<<
1008 * else: return
1009 *
1010 */
1011 __pyx_t_2 = (__pyx_v_info != NULL);
1012 if (__pyx_t_2) {
1013 __Pyx_XDECREF(__pyx_r);
1014 __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_info->interf); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1015 __Pyx_GOTREF(((PyObject *)__pyx_t_3));
1016 __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_info->name); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1017 __Pyx_GOTREF(((PyObject *)__pyx_t_4));
1018 __pyx_t_5 = PyInt_FromLong(__pyx_v_info->input); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1019 __Pyx_GOTREF(__pyx_t_5);
1020 __pyx_t_6 = PyInt_FromLong(__pyx_v_info->output); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1021 __Pyx_GOTREF(__pyx_t_6);
1022 __pyx_t_7 = PyInt_FromLong(__pyx_v_info->opened); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1023 __Pyx_GOTREF(__pyx_t_7);
1024 __pyx_t_8 = PyTuple_New(5); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1025 __Pyx_GOTREF(__pyx_t_8);
1026 PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_t_3));
1027 __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
1028 PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_t_4));
1029 __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
1030 PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_5);
1031 __Pyx_GIVEREF(__pyx_t_5);
1032 PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_t_6);
1033 __Pyx_GIVEREF(__pyx_t_6);
1034 PyTuple_SET_ITEM(__pyx_t_8, 4, __pyx_t_7);
1035 __Pyx_GIVEREF(__pyx_t_7);
1036 __pyx_t_3 = 0;
1037 __pyx_t_4 = 0;
1038 __pyx_t_5 = 0;
1039 __pyx_t_6 = 0;
1040 __pyx_t_7 = 0;
1041 __pyx_r = __pyx_t_8;
1042 __pyx_t_8 = 0;
1043 goto __pyx_L0;
1044 goto __pyx_L5;
1045 }
1046 /*else*/ {
1047
1048 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":171
1049 *
1050 * if info <> NULL: return info.interf, info.name, info.input, info.output, info.opened
1051 * else: return # <<<<<<<<<<<<<<
1052 *
1053 * def Time():
1054 */
1055 __Pyx_XDECREF(__pyx_r);
1056 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
1057 goto __pyx_L0;
1058 }
1059 __pyx_L5:;
1060
1061 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
1062 goto __pyx_L0;
1063 __pyx_L1_error:;
1064 __Pyx_XDECREF(__pyx_t_3);
1065 __Pyx_XDECREF(__pyx_t_4);
1066 __Pyx_XDECREF(__pyx_t_5);
1067 __Pyx_XDECREF(__pyx_t_6);
1068 __Pyx_XDECREF(__pyx_t_7);
1069 __Pyx_XDECREF(__pyx_t_8);
1070 __Pyx_AddTraceback("_pyportmidi.GetDeviceInfo");
1071 __pyx_r = NULL;
1072 __pyx_L0:;
1073 __Pyx_DECREF(__pyx_v_i);
1074 __Pyx_XGIVEREF(__pyx_r);
1075 __Pyx_RefNannyFinishContext();
1076 return __pyx_r;
1077 }
1078
1079 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":173
1080 * else: return
1081 *
1082 * def Time(): # <<<<<<<<<<<<<<
1083 * """
1084 * Time() returns the current time in ms
1085 */
1086
1087 static PyObject *__pyx_pf_11_pyportmidi_Time(PyObject *__pyx_self, PyObject *unused); /*proto*/
1088 static char __pyx_doc_11_pyportmidi_Time[] = "\nTime() returns the current time in ms\nof the PortMidi timer\n ";
__pyx_pf_11_pyportmidi_Time(PyObject * __pyx_self,PyObject * unused)1089 static PyObject *__pyx_pf_11_pyportmidi_Time(PyObject *__pyx_self, PyObject *unused) {
1090 PyObject *__pyx_r = NULL;
1091 PyObject *__pyx_t_1 = NULL;
1092 __Pyx_RefNannySetupContext("Time");
1093 __pyx_self = __pyx_self;
1094
1095 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":178
1096 * of the PortMidi timer
1097 * """
1098 * return Pt_Time() # <<<<<<<<<<<<<<
1099 *
1100 * def GetErrorText(err):
1101 */
1102 __Pyx_XDECREF(__pyx_r);
1103 __pyx_t_1 = __Pyx_PyInt_to_py_PtTimestamp(Pt_Time()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1104 __Pyx_GOTREF(__pyx_t_1);
1105 __pyx_r = __pyx_t_1;
1106 __pyx_t_1 = 0;
1107 goto __pyx_L0;
1108
1109 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
1110 goto __pyx_L0;
1111 __pyx_L1_error:;
1112 __Pyx_XDECREF(__pyx_t_1);
1113 __Pyx_AddTraceback("_pyportmidi.Time");
1114 __pyx_r = NULL;
1115 __pyx_L0:;
1116 __Pyx_XGIVEREF(__pyx_r);
1117 __Pyx_RefNannyFinishContext();
1118 return __pyx_r;
1119 }
1120
1121 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":180
1122 * return Pt_Time()
1123 *
1124 * def GetErrorText(err): # <<<<<<<<<<<<<<
1125 * """
1126 * GetErrorText(<err num>) returns human-readable error
1127 */
1128
1129 static PyObject *__pyx_pf_11_pyportmidi_GetErrorText(PyObject *__pyx_self, PyObject *__pyx_v_err); /*proto*/
1130 static char __pyx_doc_11_pyportmidi_GetErrorText[] = "\nGetErrorText(<err num>) returns human-readable error\nmessages translated from error numbers\n ";
__pyx_pf_11_pyportmidi_GetErrorText(PyObject * __pyx_self,PyObject * __pyx_v_err)1131 static PyObject *__pyx_pf_11_pyportmidi_GetErrorText(PyObject *__pyx_self, PyObject *__pyx_v_err) {
1132 PyObject *__pyx_r = NULL;
1133 PmError __pyx_t_1;
1134 PyObject *__pyx_t_2 = NULL;
1135 __Pyx_RefNannySetupContext("GetErrorText");
1136 __pyx_self = __pyx_self;
1137
1138 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":185
1139 * messages translated from error numbers
1140 * """
1141 * return Pm_GetErrorText(err) # <<<<<<<<<<<<<<
1142 *
1143 * def Channel(chan):
1144 */
1145 __Pyx_XDECREF(__pyx_r);
1146 __pyx_t_1 = ((PmError)PyInt_AsLong(__pyx_v_err)); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1147 __pyx_t_2 = __Pyx_PyBytes_FromString(Pm_GetErrorText(__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1148 __Pyx_GOTREF(((PyObject *)__pyx_t_2));
1149 __pyx_r = ((PyObject *)__pyx_t_2);
1150 __pyx_t_2 = 0;
1151 goto __pyx_L0;
1152
1153 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
1154 goto __pyx_L0;
1155 __pyx_L1_error:;
1156 __Pyx_XDECREF(__pyx_t_2);
1157 __Pyx_AddTraceback("_pyportmidi.GetErrorText");
1158 __pyx_r = NULL;
1159 __pyx_L0:;
1160 __Pyx_XGIVEREF(__pyx_r);
1161 __Pyx_RefNannyFinishContext();
1162 return __pyx_r;
1163 }
1164
1165 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":187
1166 * return Pm_GetErrorText(err)
1167 *
1168 * def Channel(chan): # <<<<<<<<<<<<<<
1169 * """
1170 * Channel(<chan>) is used with ChannelMask on input MIDI streams.
1171 */
1172
1173 static PyObject *__pyx_pf_11_pyportmidi_Channel(PyObject *__pyx_self, PyObject *__pyx_v_chan); /*proto*/
1174 static char __pyx_doc_11_pyportmidi_Channel[] = "\nChannel(<chan>) is used with ChannelMask on input MIDI streams.\nExample: to receive input on channels 1 and 10 on a MIDI\n stream called MidiIn:\nMidiIn.SetChannelMask(pypm.Channel(1) | pypm.Channel(10))\n\nnote: PyPortMidi Channel function has been altered from\n the original PortMidi c call to correct for what\n seems to be a bug --- i.e. channel filters were\n all numbered from 0 to 15 instead of 1 to 16.\n ";
__pyx_pf_11_pyportmidi_Channel(PyObject * __pyx_self,PyObject * __pyx_v_chan)1175 static PyObject *__pyx_pf_11_pyportmidi_Channel(PyObject *__pyx_self, PyObject *__pyx_v_chan) {
1176 PyObject *__pyx_r = NULL;
1177 PyObject *__pyx_t_1 = NULL;
1178 int __pyx_t_2;
1179 __Pyx_RefNannySetupContext("Channel");
1180 __pyx_self = __pyx_self;
1181
1182 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":199
1183 * all numbered from 0 to 15 instead of 1 to 16.
1184 * """
1185 * return Pm_Channel(chan-1) # <<<<<<<<<<<<<<
1186 *
1187 * cdef class Output:
1188 */
1189 __Pyx_XDECREF(__pyx_r);
1190 __pyx_t_1 = PyNumber_Subtract(__pyx_v_chan, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1191 __Pyx_GOTREF(__pyx_t_1);
1192 __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1193 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1194 __pyx_t_1 = PyInt_FromLong(Pm_Channel(__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1195 __Pyx_GOTREF(__pyx_t_1);
1196 __pyx_r = __pyx_t_1;
1197 __pyx_t_1 = 0;
1198 goto __pyx_L0;
1199
1200 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
1201 goto __pyx_L0;
1202 __pyx_L1_error:;
1203 __Pyx_XDECREF(__pyx_t_1);
1204 __Pyx_AddTraceback("_pyportmidi.Channel");
1205 __pyx_r = NULL;
1206 __pyx_L0:;
1207 __Pyx_XGIVEREF(__pyx_r);
1208 __Pyx_RefNannyFinishContext();
1209 return __pyx_r;
1210 }
1211
1212 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":214
1213 * cdef int _aborted
1214 *
1215 * def __init__(self, OutputDevice, latency=0): # <<<<<<<<<<<<<<
1216 *
1217 * cdef PmError err
1218 */
1219
1220 static int __pyx_pf_11_pyportmidi_6Output___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pf_11_pyportmidi_6Output___init__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)1221 static int __pyx_pf_11_pyportmidi_6Output___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
1222 PyObject *__pyx_v_OutputDevice = 0;
1223 PyObject *__pyx_v_latency = 0;
1224 PmError __pyx_v_err;
1225 PmTimeProcPtr __pyx_v_PmPtr;
1226 PyObject *__pyx_v_s;
1227 int __pyx_r;
1228 int __pyx_t_1;
1229 PyObject *__pyx_t_2 = NULL;
1230 int __pyx_t_3;
1231 long __pyx_t_4;
1232 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__OutputDevice,&__pyx_n_s__latency,0};
1233 __Pyx_RefNannySetupContext("__init__");
1234 if (unlikely(__pyx_kwds)) {
1235 Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
1236 PyObject* values[2] = {0,0};
1237 values[1] = ((PyObject *)__pyx_int_0);
1238 switch (PyTuple_GET_SIZE(__pyx_args)) {
1239 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
1240 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
1241 case 0: break;
1242 default: goto __pyx_L5_argtuple_error;
1243 }
1244 switch (PyTuple_GET_SIZE(__pyx_args)) {
1245 case 0:
1246 values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__OutputDevice);
1247 if (likely(values[0])) kw_args--;
1248 else goto __pyx_L5_argtuple_error;
1249 case 1:
1250 if (kw_args > 1) {
1251 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__latency);
1252 if (unlikely(value)) { values[1] = value; kw_args--; }
1253 }
1254 }
1255 if (unlikely(kw_args > 0)) {
1256 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
1257 }
1258 __pyx_v_OutputDevice = values[0];
1259 __pyx_v_latency = values[1];
1260 } else {
1261 __pyx_v_latency = ((PyObject *)__pyx_int_0);
1262 switch (PyTuple_GET_SIZE(__pyx_args)) {
1263 case 2: __pyx_v_latency = PyTuple_GET_ITEM(__pyx_args, 1);
1264 case 1: __pyx_v_OutputDevice = PyTuple_GET_ITEM(__pyx_args, 0);
1265 break;
1266 default: goto __pyx_L5_argtuple_error;
1267 }
1268 }
1269 goto __pyx_L4_argument_unpacking_done;
1270 __pyx_L5_argtuple_error:;
1271 __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
1272 __pyx_L3_error:;
1273 __Pyx_AddTraceback("_pyportmidi.Output.__init__");
1274 return -1;
1275 __pyx_L4_argument_unpacking_done:;
1276 __Pyx_INCREF((PyObject *)__pyx_v_self);
1277 __Pyx_INCREF(__pyx_v_OutputDevice);
1278 __Pyx_INCREF(__pyx_v_latency);
1279 __pyx_v_s = Py_None; __Pyx_INCREF(Py_None);
1280
1281 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":220
1282 * cdef PmTimeProcPtr PmPtr
1283 *
1284 * self.i = OutputDevice # <<<<<<<<<<<<<<
1285 * self.debug = 0
1286 * self._aborted = 0
1287 */
1288 __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_OutputDevice); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1289 ((struct __pyx_obj_11_pyportmidi_Output *)__pyx_v_self)->i = __pyx_t_1;
1290
1291 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":221
1292 *
1293 * self.i = OutputDevice
1294 * self.debug = 0 # <<<<<<<<<<<<<<
1295 * self._aborted = 0
1296 *
1297 */
1298 ((struct __pyx_obj_11_pyportmidi_Output *)__pyx_v_self)->debug = 0;
1299
1300 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":222
1301 * self.i = OutputDevice
1302 * self.debug = 0
1303 * self._aborted = 0 # <<<<<<<<<<<<<<
1304 *
1305 * if latency == 0:
1306 */
1307 ((struct __pyx_obj_11_pyportmidi_Output *)__pyx_v_self)->_aborted = 0;
1308
1309 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":224
1310 * self._aborted = 0
1311 *
1312 * if latency == 0: # <<<<<<<<<<<<<<
1313 * PmPtr = NULL
1314 * else:
1315 */
1316 __pyx_t_2 = PyObject_RichCompare(__pyx_v_latency, __pyx_int_0, Py_EQ); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1317 __Pyx_GOTREF(__pyx_t_2);
1318 __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1319 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1320 if (__pyx_t_3) {
1321
1322 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":225
1323 *
1324 * if latency == 0:
1325 * PmPtr = NULL # <<<<<<<<<<<<<<
1326 * else:
1327 * PmPtr = <PmTimeProcPtr>&Pt_Time
1328 */
1329 __pyx_v_PmPtr = NULL;
1330 goto __pyx_L6;
1331 }
1332 /*else*/ {
1333
1334 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":227
1335 * PmPtr = NULL
1336 * else:
1337 * PmPtr = <PmTimeProcPtr>&Pt_Time # <<<<<<<<<<<<<<
1338 * if self.debug: print "Opening Midi Output"
1339 * # Why is bufferSize 0 here?
1340 */
1341 __pyx_v_PmPtr = ((PmTimestamp (*)(void *))(&Pt_Time));
1342 }
1343 __pyx_L6:;
1344
1345 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":228
1346 * else:
1347 * PmPtr = <PmTimeProcPtr>&Pt_Time
1348 * if self.debug: print "Opening Midi Output" # <<<<<<<<<<<<<<
1349 * # Why is bufferSize 0 here?
1350 * err = Pm_OpenOutput(&(self.midi), self.i, NULL, 0, PmPtr, NULL, latency)
1351 */
1352 __pyx_t_1 = ((struct __pyx_obj_11_pyportmidi_Output *)__pyx_v_self)->debug;
1353 if (__pyx_t_1) {
1354 if (__Pyx_PrintOne(((PyObject *)__pyx_kp_s_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1355 goto __pyx_L7;
1356 }
1357 __pyx_L7:;
1358
1359 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":230
1360 * if self.debug: print "Opening Midi Output"
1361 * # Why is bufferSize 0 here?
1362 * err = Pm_OpenOutput(&(self.midi), self.i, NULL, 0, PmPtr, NULL, latency) # <<<<<<<<<<<<<<
1363 * if err < 0:
1364 * s = Pm_GetErrorText(err)
1365 */
1366 __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_v_latency); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1367 __pyx_v_err = Pm_OpenOutput((&((struct __pyx_obj_11_pyportmidi_Output *)__pyx_v_self)->midi), ((struct __pyx_obj_11_pyportmidi_Output *)__pyx_v_self)->i, NULL, 0, __pyx_v_PmPtr, NULL, __pyx_t_4);
1368
1369 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":231
1370 * # Why is bufferSize 0 here?
1371 * err = Pm_OpenOutput(&(self.midi), self.i, NULL, 0, PmPtr, NULL, latency)
1372 * if err < 0: # <<<<<<<<<<<<<<
1373 * s = Pm_GetErrorText(err)
1374 * # Something's amiss here - if we try to throw an Exception
1375 */
1376 __pyx_t_3 = (__pyx_v_err < 0);
1377 if (__pyx_t_3) {
1378
1379 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":232
1380 * err = Pm_OpenOutput(&(self.midi), self.i, NULL, 0, PmPtr, NULL, latency)
1381 * if err < 0:
1382 * s = Pm_GetErrorText(err) # <<<<<<<<<<<<<<
1383 * # Something's amiss here - if we try to throw an Exception
1384 * # here, we crash.
1385 */
1386 __pyx_t_2 = __Pyx_PyBytes_FromString(Pm_GetErrorText(__pyx_v_err)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1387 __Pyx_GOTREF(((PyObject *)__pyx_t_2));
1388 __Pyx_DECREF(__pyx_v_s);
1389 __pyx_v_s = ((PyObject *)__pyx_t_2);
1390 __pyx_t_2 = 0;
1391
1392 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":235
1393 * # Something's amiss here - if we try to throw an Exception
1394 * # here, we crash.
1395 * if not err == -10000: # <<<<<<<<<<<<<<
1396 * raise Exception,s
1397 * else:
1398 */
1399 __pyx_t_3 = (!(__pyx_v_err == -10000));
1400 if (__pyx_t_3) {
1401
1402 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":236
1403 * # here, we crash.
1404 * if not err == -10000:
1405 * raise Exception,s # <<<<<<<<<<<<<<
1406 * else:
1407 * print "Unable to open Midi OutputDevice=",OutputDevice," err=",s
1408 */
1409 __Pyx_Raise(__pyx_builtin_Exception, __pyx_v_s, 0);
1410 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1411 goto __pyx_L9;
1412 }
1413 /*else*/ {
1414
1415 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":238
1416 * raise Exception,s
1417 * else:
1418 * print "Unable to open Midi OutputDevice=",OutputDevice," err=",s # <<<<<<<<<<<<<<
1419 *
1420 * def __dealloc__(self):
1421 */
1422 __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1423 __Pyx_GOTREF(__pyx_t_2);
1424 __Pyx_INCREF(((PyObject *)__pyx_kp_s_2));
1425 PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_s_2));
1426 __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_2));
1427 __Pyx_INCREF(__pyx_v_OutputDevice);
1428 PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_OutputDevice);
1429 __Pyx_GIVEREF(__pyx_v_OutputDevice);
1430 __Pyx_INCREF(((PyObject *)__pyx_kp_s_3));
1431 PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_kp_s_3));
1432 __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_3));
1433 __Pyx_INCREF(__pyx_v_s);
1434 PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_s);
1435 __Pyx_GIVEREF(__pyx_v_s);
1436 if (__Pyx_Print(__pyx_t_2, 1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1437 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1438 }
1439 __pyx_L9:;
1440 goto __pyx_L8;
1441 }
1442 __pyx_L8:;
1443
1444 __pyx_r = 0;
1445 goto __pyx_L0;
1446 __pyx_L1_error:;
1447 __Pyx_XDECREF(__pyx_t_2);
1448 __Pyx_AddTraceback("_pyportmidi.Output.__init__");
1449 __pyx_r = -1;
1450 __pyx_L0:;
1451 __Pyx_DECREF(__pyx_v_s);
1452 __Pyx_DECREF((PyObject *)__pyx_v_self);
1453 __Pyx_DECREF(__pyx_v_OutputDevice);
1454 __Pyx_DECREF(__pyx_v_latency);
1455 __Pyx_RefNannyFinishContext();
1456 return __pyx_r;
1457 }
1458
1459 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":240
1460 * print "Unable to open Midi OutputDevice=",OutputDevice," err=",s
1461 *
1462 * def __dealloc__(self): # <<<<<<<<<<<<<<
1463 * if self.debug: print "Closing MIDI output stream and destroying instance"
1464 * #err = Pm_Abort(self.midi)
1465 */
1466
1467 static void __pyx_pf_11_pyportmidi_6Output___dealloc__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_11_pyportmidi_6Output___dealloc__(PyObject * __pyx_v_self)1468 static void __pyx_pf_11_pyportmidi_6Output___dealloc__(PyObject *__pyx_v_self) {
1469 PyObject *__pyx_v_err;
1470 int __pyx_t_1;
1471 PyObject *__pyx_t_2 = NULL;
1472 int __pyx_t_3;
1473 PmError __pyx_t_4;
1474 __Pyx_RefNannySetupContext("__dealloc__");
1475 __Pyx_INCREF((PyObject *)__pyx_v_self);
1476 __pyx_v_err = Py_None; __Pyx_INCREF(Py_None);
1477
1478 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":241
1479 *
1480 * def __dealloc__(self):
1481 * if self.debug: print "Closing MIDI output stream and destroying instance" # <<<<<<<<<<<<<<
1482 * #err = Pm_Abort(self.midi)
1483 * #if err < 0: raise Exception, Pm_GetErrorText(err)
1484 */
1485 __pyx_t_1 = ((struct __pyx_obj_11_pyportmidi_Output *)__pyx_v_self)->debug;
1486 if (__pyx_t_1) {
1487 if (__Pyx_PrintOne(((PyObject *)__pyx_kp_s_4)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1488 goto __pyx_L5;
1489 }
1490 __pyx_L5:;
1491
1492 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":244
1493 * #err = Pm_Abort(self.midi)
1494 * #if err < 0: raise Exception, Pm_GetErrorText(err)
1495 * err = Pm_Close(self.midi) # <<<<<<<<<<<<<<
1496 * if err < 0: raise Exception, Pm_GetErrorText(err)
1497 *
1498 */
1499 __pyx_t_2 = PyInt_FromLong(Pm_Close(((struct __pyx_obj_11_pyportmidi_Output *)__pyx_v_self)->midi)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1500 __Pyx_GOTREF(__pyx_t_2);
1501 __Pyx_DECREF(__pyx_v_err);
1502 __pyx_v_err = __pyx_t_2;
1503 __pyx_t_2 = 0;
1504
1505 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":245
1506 * #if err < 0: raise Exception, Pm_GetErrorText(err)
1507 * err = Pm_Close(self.midi)
1508 * if err < 0: raise Exception, Pm_GetErrorText(err) # <<<<<<<<<<<<<<
1509 *
1510 *
1511 */
1512 __pyx_t_2 = PyObject_RichCompare(__pyx_v_err, __pyx_int_0, Py_LT); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1513 __Pyx_GOTREF(__pyx_t_2);
1514 __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1515 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1516 if (__pyx_t_3) {
1517 __pyx_t_4 = ((PmError)PyInt_AsLong(__pyx_v_err)); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1518 __pyx_t_2 = __Pyx_PyBytes_FromString(Pm_GetErrorText(__pyx_t_4)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1519 __Pyx_GOTREF(((PyObject *)__pyx_t_2));
1520 __Pyx_Raise(__pyx_builtin_Exception, ((PyObject *)__pyx_t_2), 0);
1521 __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
1522 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1523 goto __pyx_L6;
1524 }
1525 __pyx_L6:;
1526
1527 goto __pyx_L0;
1528 __pyx_L1_error:;
1529 __Pyx_XDECREF(__pyx_t_2);
1530 __Pyx_AddTraceback("_pyportmidi.Output.__dealloc__");
1531 __pyx_L0:;
1532 __Pyx_DECREF(__pyx_v_err);
1533 __Pyx_DECREF((PyObject *)__pyx_v_self);
1534 __Pyx_RefNannyFinishContext();
1535 }
1536
1537 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":248
1538 *
1539 *
1540 * def _check_open(self): # <<<<<<<<<<<<<<
1541 * """ checks to see if the midi is open, and if not, raises an error.
1542 * """
1543 */
1544
1545 static PyObject *__pyx_pf_11_pyportmidi_6Output__check_open(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
1546 static char __pyx_doc_11_pyportmidi_6Output__check_open[] = " checks to see if the midi is open, and if not, raises an error.\n ";
__pyx_pf_11_pyportmidi_6Output__check_open(PyObject * __pyx_v_self,PyObject * unused)1547 static PyObject *__pyx_pf_11_pyportmidi_6Output__check_open(PyObject *__pyx_v_self, PyObject *unused) {
1548 PyObject *__pyx_r = NULL;
1549 int __pyx_t_1;
1550 int __pyx_t_2;
1551 __Pyx_RefNannySetupContext("_check_open");
1552 __Pyx_INCREF((PyObject *)__pyx_v_self);
1553
1554 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":252
1555 * """
1556 *
1557 * if self.midi == NULL: # <<<<<<<<<<<<<<
1558 * raise Exception, "midi Output not open."
1559 *
1560 */
1561 __pyx_t_1 = (((struct __pyx_obj_11_pyportmidi_Output *)__pyx_v_self)->midi == NULL);
1562 if (__pyx_t_1) {
1563
1564 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":253
1565 *
1566 * if self.midi == NULL:
1567 * raise Exception, "midi Output not open." # <<<<<<<<<<<<<<
1568 *
1569 * if self._aborted:
1570 */
1571 __Pyx_Raise(__pyx_builtin_Exception, ((PyObject *)__pyx_kp_s_5), 0);
1572 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1573 goto __pyx_L5;
1574 }
1575 __pyx_L5:;
1576
1577 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":255
1578 * raise Exception, "midi Output not open."
1579 *
1580 * if self._aborted: # <<<<<<<<<<<<<<
1581 * raise Exception, "midi Output aborted. Need to call Close after Abort."
1582 *
1583 */
1584 __pyx_t_2 = ((struct __pyx_obj_11_pyportmidi_Output *)__pyx_v_self)->_aborted;
1585 if (__pyx_t_2) {
1586
1587 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":256
1588 *
1589 * if self._aborted:
1590 * raise Exception, "midi Output aborted. Need to call Close after Abort." # <<<<<<<<<<<<<<
1591 *
1592 * def Close(self):
1593 */
1594 __Pyx_Raise(__pyx_builtin_Exception, ((PyObject *)__pyx_kp_s_6), 0);
1595 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1596 goto __pyx_L6;
1597 }
1598 __pyx_L6:;
1599
1600 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
1601 goto __pyx_L0;
1602 __pyx_L1_error:;
1603 __Pyx_AddTraceback("_pyportmidi.Output._check_open");
1604 __pyx_r = NULL;
1605 __pyx_L0:;
1606 __Pyx_DECREF((PyObject *)__pyx_v_self);
1607 __Pyx_XGIVEREF(__pyx_r);
1608 __Pyx_RefNannyFinishContext();
1609 return __pyx_r;
1610 }
1611
1612 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":258
1613 * raise Exception, "midi Output aborted. Need to call Close after Abort."
1614 *
1615 * def Close(self): # <<<<<<<<<<<<<<
1616 * """
1617 * Close()
1618 */
1619
1620 static PyObject *__pyx_pf_11_pyportmidi_6Output_Close(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
1621 static char __pyx_doc_11_pyportmidi_6Output_Close[] = "\nClose()\n closes a midi stream, flushing any pending buffers.\n (PortMidi attempts to close open streams when the application\n exits -- this is particularly difficult under Windows.)\n ";
__pyx_pf_11_pyportmidi_6Output_Close(PyObject * __pyx_v_self,PyObject * unused)1622 static PyObject *__pyx_pf_11_pyportmidi_6Output_Close(PyObject *__pyx_v_self, PyObject *unused) {
1623 PyObject *__pyx_v_err;
1624 PyObject *__pyx_r = NULL;
1625 PyObject *__pyx_t_1 = NULL;
1626 int __pyx_t_2;
1627 PmError __pyx_t_3;
1628 __Pyx_RefNannySetupContext("Close");
1629 __Pyx_INCREF((PyObject *)__pyx_v_self);
1630 __pyx_v_err = Py_None; __Pyx_INCREF(Py_None);
1631
1632 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":268
1633 * # return
1634 *
1635 * err = Pm_Close(self.midi) # <<<<<<<<<<<<<<
1636 * if err < 0:
1637 * raise Exception, Pm_GetErrorText(err)
1638 */
1639 __pyx_t_1 = PyInt_FromLong(Pm_Close(((struct __pyx_obj_11_pyportmidi_Output *)__pyx_v_self)->midi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1640 __Pyx_GOTREF(__pyx_t_1);
1641 __Pyx_DECREF(__pyx_v_err);
1642 __pyx_v_err = __pyx_t_1;
1643 __pyx_t_1 = 0;
1644
1645 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":269
1646 *
1647 * err = Pm_Close(self.midi)
1648 * if err < 0: # <<<<<<<<<<<<<<
1649 * raise Exception, Pm_GetErrorText(err)
1650 * #self.midi = NULL
1651 */
1652 __pyx_t_1 = PyObject_RichCompare(__pyx_v_err, __pyx_int_0, Py_LT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1653 __Pyx_GOTREF(__pyx_t_1);
1654 __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1655 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1656 if (__pyx_t_2) {
1657
1658 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":270
1659 * err = Pm_Close(self.midi)
1660 * if err < 0:
1661 * raise Exception, Pm_GetErrorText(err) # <<<<<<<<<<<<<<
1662 * #self.midi = NULL
1663 *
1664 */
1665 __pyx_t_3 = ((PmError)PyInt_AsLong(__pyx_v_err)); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1666 __pyx_t_1 = __Pyx_PyBytes_FromString(Pm_GetErrorText(__pyx_t_3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1667 __Pyx_GOTREF(((PyObject *)__pyx_t_1));
1668 __Pyx_Raise(__pyx_builtin_Exception, ((PyObject *)__pyx_t_1), 0);
1669 __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
1670 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1671 goto __pyx_L5;
1672 }
1673 __pyx_L5:;
1674
1675 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
1676 goto __pyx_L0;
1677 __pyx_L1_error:;
1678 __Pyx_XDECREF(__pyx_t_1);
1679 __Pyx_AddTraceback("_pyportmidi.Output.Close");
1680 __pyx_r = NULL;
1681 __pyx_L0:;
1682 __Pyx_DECREF(__pyx_v_err);
1683 __Pyx_DECREF((PyObject *)__pyx_v_self);
1684 __Pyx_XGIVEREF(__pyx_r);
1685 __Pyx_RefNannyFinishContext();
1686 return __pyx_r;
1687 }
1688
1689 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":274
1690 *
1691 *
1692 * def Abort(self): # <<<<<<<<<<<<<<
1693 * """
1694 * Abort() terminates outgoing messages immediately
1695 */
1696
1697 static PyObject *__pyx_pf_11_pyportmidi_6Output_Abort(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
1698 static char __pyx_doc_11_pyportmidi_6Output_Abort[] = "\nAbort() terminates outgoing messages immediately\n The caller should immediately close the output port;\n this call may result in transmission of a partial midi message.\n There is no abort for Midi input because the user can simply\n ignore messages in the buffer and close an input device at\n any time.\n ";
__pyx_pf_11_pyportmidi_6Output_Abort(PyObject * __pyx_v_self,PyObject * unused)1699 static PyObject *__pyx_pf_11_pyportmidi_6Output_Abort(PyObject *__pyx_v_self, PyObject *unused) {
1700 PyObject *__pyx_v_err;
1701 PyObject *__pyx_r = NULL;
1702 PyObject *__pyx_t_1 = NULL;
1703 int __pyx_t_2;
1704 PmError __pyx_t_3;
1705 __Pyx_RefNannySetupContext("Abort");
1706 __Pyx_INCREF((PyObject *)__pyx_v_self);
1707 __pyx_v_err = Py_None; __Pyx_INCREF(Py_None);
1708
1709 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":286
1710 * # return
1711 *
1712 * err = Pm_Abort(self.midi) # <<<<<<<<<<<<<<
1713 * if err < 0:
1714 * raise Exception, Pm_GetErrorText(err)
1715 */
1716 __pyx_t_1 = PyInt_FromLong(Pm_Abort(((struct __pyx_obj_11_pyportmidi_Output *)__pyx_v_self)->midi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1717 __Pyx_GOTREF(__pyx_t_1);
1718 __Pyx_DECREF(__pyx_v_err);
1719 __pyx_v_err = __pyx_t_1;
1720 __pyx_t_1 = 0;
1721
1722 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":287
1723 *
1724 * err = Pm_Abort(self.midi)
1725 * if err < 0: # <<<<<<<<<<<<<<
1726 * raise Exception, Pm_GetErrorText(err)
1727 *
1728 */
1729 __pyx_t_1 = PyObject_RichCompare(__pyx_v_err, __pyx_int_0, Py_LT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1730 __Pyx_GOTREF(__pyx_t_1);
1731 __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1732 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1733 if (__pyx_t_2) {
1734
1735 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":288
1736 * err = Pm_Abort(self.midi)
1737 * if err < 0:
1738 * raise Exception, Pm_GetErrorText(err) # <<<<<<<<<<<<<<
1739 *
1740 * self._aborted = 1
1741 */
1742 __pyx_t_3 = ((PmError)PyInt_AsLong(__pyx_v_err)); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1743 __pyx_t_1 = __Pyx_PyBytes_FromString(Pm_GetErrorText(__pyx_t_3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1744 __Pyx_GOTREF(((PyObject *)__pyx_t_1));
1745 __Pyx_Raise(__pyx_builtin_Exception, ((PyObject *)__pyx_t_1), 0);
1746 __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
1747 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1748 goto __pyx_L5;
1749 }
1750 __pyx_L5:;
1751
1752 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":290
1753 * raise Exception, Pm_GetErrorText(err)
1754 *
1755 * self._aborted = 1 # <<<<<<<<<<<<<<
1756 *
1757 *
1758 */
1759 ((struct __pyx_obj_11_pyportmidi_Output *)__pyx_v_self)->_aborted = 1;
1760
1761 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
1762 goto __pyx_L0;
1763 __pyx_L1_error:;
1764 __Pyx_XDECREF(__pyx_t_1);
1765 __Pyx_AddTraceback("_pyportmidi.Output.Abort");
1766 __pyx_r = NULL;
1767 __pyx_L0:;
1768 __Pyx_DECREF(__pyx_v_err);
1769 __Pyx_DECREF((PyObject *)__pyx_v_self);
1770 __Pyx_XGIVEREF(__pyx_r);
1771 __Pyx_RefNannyFinishContext();
1772 return __pyx_r;
1773 }
1774
1775 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":293
1776 *
1777 *
1778 * def Write(self, data): # <<<<<<<<<<<<<<
1779 * """
1780 * Write(data)
1781 */
1782
1783 static PyObject *__pyx_pf_11_pyportmidi_6Output_Write(PyObject *__pyx_v_self, PyObject *__pyx_v_data); /*proto*/
1784 static char __pyx_doc_11_pyportmidi_6Output_Write[] = "\nWrite(data)\n output a series of MIDI information in the form of a list:\n Write([[[status <,data1><,data2><,data3>],timestamp],\n [[status <,data1><,data2><,data3>],timestamp],...])\n <data> fields are optional\n example: choose program change 1 at time 20000 and\n send note 65 with velocity 100 500 ms later.\n Write([[[0xc0,0,0],20000],[[0x90,60,100],20500]])\n notes:\n 1. timestamps will be ignored if latency = 0.\n 2. To get a note to play immediately, send MIDI info with\n timestamp read from function Time.\n 3. understanding optional data fields:\n Write([[[0xc0,0,0],20000]]) is equivalent to\n Write([[[0xc0],20000]])\n ";
__pyx_pf_11_pyportmidi_6Output_Write(PyObject * __pyx_v_self,PyObject * __pyx_v_data)1785 static PyObject *__pyx_pf_11_pyportmidi_6Output_Write(PyObject *__pyx_v_self, PyObject *__pyx_v_data) {
1786 PmEvent __pyx_v_buffer[1024];
1787 PmError __pyx_v_err;
1788 int __pyx_v_i;
1789 PyObject *__pyx_v_loop1;
1790 PyObject *__pyx_r = NULL;
1791 PyObject *__pyx_t_1 = NULL;
1792 PyObject *__pyx_t_2 = NULL;
1793 Py_ssize_t __pyx_t_3;
1794 int __pyx_t_4;
1795 Py_ssize_t __pyx_t_5;
1796 PyObject *__pyx_t_6 = NULL;
1797 Py_ssize_t __pyx_t_7;
1798 int __pyx_t_8;
1799 PyObject *__pyx_t_9 = NULL;
1800 PyObject *__pyx_t_10 = NULL;
1801 PmMessage __pyx_t_11;
1802 PmTimestamp __pyx_t_12;
1803 __Pyx_RefNannySetupContext("Write");
1804 __Pyx_INCREF((PyObject *)__pyx_v_self);
1805 __Pyx_INCREF(__pyx_v_data);
1806 __pyx_v_loop1 = Py_None; __Pyx_INCREF(Py_None);
1807
1808 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":315
1809 * cdef int i
1810 *
1811 * self._check_open() # <<<<<<<<<<<<<<
1812 *
1813 *
1814 */
1815 __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___check_open); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1816 __Pyx_GOTREF(__pyx_t_1);
1817 __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1818 __Pyx_GOTREF(__pyx_t_2);
1819 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1820 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1821
1822 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":318
1823 *
1824 *
1825 * if len(data) > 1024: raise IndexError, 'maximum list length is 1024' # <<<<<<<<<<<<<<
1826 * else:
1827 * for loop1 in range(len(data)):
1828 */
1829 __pyx_t_3 = PyObject_Length(__pyx_v_data); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1830 __pyx_t_4 = (__pyx_t_3 > 1024);
1831 if (__pyx_t_4) {
1832 __Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_kp_s_7), 0);
1833 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1834 goto __pyx_L5;
1835 }
1836 /*else*/ {
1837
1838 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":320
1839 * if len(data) > 1024: raise IndexError, 'maximum list length is 1024'
1840 * else:
1841 * for loop1 in range(len(data)): # <<<<<<<<<<<<<<
1842 * if ((len(data[loop1][0]) > 4) |
1843 * (len(data[loop1][0]) < 1)):
1844 */
1845 __pyx_t_5 = PyObject_Length(__pyx_v_data); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1846 __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1847 __Pyx_GOTREF(__pyx_t_2);
1848 __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1849 __Pyx_GOTREF(__pyx_t_1);
1850 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
1851 __Pyx_GIVEREF(__pyx_t_2);
1852 __pyx_t_2 = 0;
1853 __pyx_t_2 = PyObject_Call(__pyx_builtin_range, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1854 __Pyx_GOTREF(__pyx_t_2);
1855 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1856 if (PyList_CheckExact(__pyx_t_2) || PyTuple_CheckExact(__pyx_t_2)) {
1857 __pyx_t_3 = 0; __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1);
1858 } else {
1859 __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1860 __Pyx_GOTREF(__pyx_t_1);
1861 }
1862 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1863 for (;;) {
1864 if (likely(PyList_CheckExact(__pyx_t_1))) {
1865 if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
1866 __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++;
1867 } else if (likely(PyTuple_CheckExact(__pyx_t_1))) {
1868 if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
1869 __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++;
1870 } else {
1871 __pyx_t_2 = PyIter_Next(__pyx_t_1);
1872 if (!__pyx_t_2) {
1873 if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1874 break;
1875 }
1876 __Pyx_GOTREF(__pyx_t_2);
1877 }
1878 __Pyx_DECREF(__pyx_v_loop1);
1879 __pyx_v_loop1 = __pyx_t_2;
1880 __pyx_t_2 = 0;
1881
1882 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":321
1883 * else:
1884 * for loop1 in range(len(data)):
1885 * if ((len(data[loop1][0]) > 4) | # <<<<<<<<<<<<<<
1886 * (len(data[loop1][0]) < 1)):
1887 * raise IndexError, str(len(data[loop1][0]))+' arguments in event list'
1888 */
1889 __pyx_t_2 = PyObject_GetItem(__pyx_v_data, __pyx_v_loop1); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1890 __Pyx_GOTREF(__pyx_t_2);
1891 __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_2, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1892 __Pyx_GOTREF(__pyx_t_6);
1893 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1894 __pyx_t_5 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1895 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
1896
1897 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":322
1898 * for loop1 in range(len(data)):
1899 * if ((len(data[loop1][0]) > 4) |
1900 * (len(data[loop1][0]) < 1)): # <<<<<<<<<<<<<<
1901 * raise IndexError, str(len(data[loop1][0]))+' arguments in event list'
1902 * buffer[loop1].message = 0
1903 */
1904 __pyx_t_6 = PyObject_GetItem(__pyx_v_data, __pyx_v_loop1); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1905 __Pyx_GOTREF(__pyx_t_6);
1906 __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_6, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1907 __Pyx_GOTREF(__pyx_t_2);
1908 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
1909 __pyx_t_7 = PyObject_Length(__pyx_t_2); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1910 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1911 __pyx_t_4 = ((__pyx_t_5 > 4) | (__pyx_t_7 < 1));
1912 if (__pyx_t_4) {
1913
1914 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":323
1915 * if ((len(data[loop1][0]) > 4) |
1916 * (len(data[loop1][0]) < 1)):
1917 * raise IndexError, str(len(data[loop1][0]))+' arguments in event list' # <<<<<<<<<<<<<<
1918 * buffer[loop1].message = 0
1919 * for i in range(len(data[loop1][0])):
1920 */
1921 __pyx_t_2 = PyObject_GetItem(__pyx_v_data, __pyx_v_loop1); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1922 __Pyx_GOTREF(__pyx_t_2);
1923 __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_2, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1924 __Pyx_GOTREF(__pyx_t_6);
1925 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1926 __pyx_t_7 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1927 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
1928 __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1929 __Pyx_GOTREF(__pyx_t_6);
1930 __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1931 __Pyx_GOTREF(__pyx_t_2);
1932 PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_6);
1933 __Pyx_GIVEREF(__pyx_t_6);
1934 __pyx_t_6 = 0;
1935 __pyx_t_6 = PyObject_Call(((PyObject *)((PyObject*)&PyString_Type)), __pyx_t_2, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1936 __Pyx_GOTREF(__pyx_t_6);
1937 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1938 __pyx_t_2 = PyNumber_Add(__pyx_t_6, ((PyObject *)__pyx_kp_s_8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1939 __Pyx_GOTREF(__pyx_t_2);
1940 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
1941 __Pyx_Raise(__pyx_builtin_IndexError, __pyx_t_2, 0);
1942 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1943 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1944 goto __pyx_L8;
1945 }
1946 __pyx_L8:;
1947
1948 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":324
1949 * (len(data[loop1][0]) < 1)):
1950 * raise IndexError, str(len(data[loop1][0]))+' arguments in event list'
1951 * buffer[loop1].message = 0 # <<<<<<<<<<<<<<
1952 * for i in range(len(data[loop1][0])):
1953 * buffer[loop1].message = buffer[loop1].message + ((data[loop1][0][i]&0xFF) << (8*i))
1954 */
1955 __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_v_loop1); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1956 (__pyx_v_buffer[__pyx_t_7]).message = 0;
1957
1958 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":325
1959 * raise IndexError, str(len(data[loop1][0]))+' arguments in event list'
1960 * buffer[loop1].message = 0
1961 * for i in range(len(data[loop1][0])): # <<<<<<<<<<<<<<
1962 * buffer[loop1].message = buffer[loop1].message + ((data[loop1][0][i]&0xFF) << (8*i))
1963 * buffer[loop1].timestamp = data[loop1][1]
1964 */
1965 __pyx_t_2 = PyObject_GetItem(__pyx_v_data, __pyx_v_loop1); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1966 __Pyx_GOTREF(__pyx_t_2);
1967 __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_2, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1968 __Pyx_GOTREF(__pyx_t_6);
1969 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1970 __pyx_t_7 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1971 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
1972 for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
1973 __pyx_v_i = __pyx_t_8;
1974
1975 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":326
1976 * buffer[loop1].message = 0
1977 * for i in range(len(data[loop1][0])):
1978 * buffer[loop1].message = buffer[loop1].message + ((data[loop1][0][i]&0xFF) << (8*i)) # <<<<<<<<<<<<<<
1979 * buffer[loop1].timestamp = data[loop1][1]
1980 * if self.debug: print loop1," : ",buffer[loop1].message," : ",buffer[loop1].timestamp
1981 */
1982 __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_v_loop1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1983 __pyx_t_6 = __Pyx_PyInt_to_py_PmMessage((__pyx_v_buffer[__pyx_t_5]).message); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1984 __Pyx_GOTREF(__pyx_t_6);
1985 __pyx_t_2 = PyObject_GetItem(__pyx_v_data, __pyx_v_loop1); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1986 __Pyx_GOTREF(__pyx_t_2);
1987 __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_2, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1988 __Pyx_GOTREF(__pyx_t_9);
1989 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1990 __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_9, __pyx_v_i, sizeof(int), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1991 __Pyx_GOTREF(__pyx_t_2);
1992 __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
1993 __pyx_t_9 = PyNumber_And(__pyx_t_2, __pyx_int_0xFF); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1994 __Pyx_GOTREF(__pyx_t_9);
1995 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1996 __pyx_t_2 = PyInt_FromLong((8 * __pyx_v_i)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1997 __Pyx_GOTREF(__pyx_t_2);
1998 __pyx_t_10 = PyNumber_Lshift(__pyx_t_9, __pyx_t_2); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1999 __Pyx_GOTREF(__pyx_t_10);
2000 __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
2001 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2002 __pyx_t_2 = PyNumber_Add(__pyx_t_6, __pyx_t_10); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2003 __Pyx_GOTREF(__pyx_t_2);
2004 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
2005 __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
2006 __pyx_t_11 = __Pyx_PyInt_from_py_PmMessage(__pyx_t_2); if (unlikely((__pyx_t_11 == (PmMessage)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2007 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2008 __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_v_loop1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2009 (__pyx_v_buffer[__pyx_t_5]).message = __pyx_t_11;
2010 }
2011
2012 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":327
2013 * for i in range(len(data[loop1][0])):
2014 * buffer[loop1].message = buffer[loop1].message + ((data[loop1][0][i]&0xFF) << (8*i))
2015 * buffer[loop1].timestamp = data[loop1][1] # <<<<<<<<<<<<<<
2016 * if self.debug: print loop1," : ",buffer[loop1].message," : ",buffer[loop1].timestamp
2017 * if self.debug: print "writing to midi buffer"
2018 */
2019 __pyx_t_2 = PyObject_GetItem(__pyx_v_data, __pyx_v_loop1); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2020 __Pyx_GOTREF(__pyx_t_2);
2021 __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_2, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2022 __Pyx_GOTREF(__pyx_t_10);
2023 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2024 __pyx_t_12 = __Pyx_PyInt_from_py_PmTimestamp(__pyx_t_10); if (unlikely((__pyx_t_12 == (PmTimestamp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2025 __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
2026 __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_v_loop1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2027 (__pyx_v_buffer[__pyx_t_5]).timestamp = __pyx_t_12;
2028
2029 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":328
2030 * buffer[loop1].message = buffer[loop1].message + ((data[loop1][0][i]&0xFF) << (8*i))
2031 * buffer[loop1].timestamp = data[loop1][1]
2032 * if self.debug: print loop1," : ",buffer[loop1].message," : ",buffer[loop1].timestamp # <<<<<<<<<<<<<<
2033 * if self.debug: print "writing to midi buffer"
2034 * err= Pm_Write(self.midi, buffer, len(data))
2035 */
2036 __pyx_t_8 = ((struct __pyx_obj_11_pyportmidi_Output *)__pyx_v_self)->debug;
2037 if (__pyx_t_8) {
2038 __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_v_loop1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2039 __pyx_t_10 = __Pyx_PyInt_to_py_PmMessage((__pyx_v_buffer[__pyx_t_5]).message); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2040 __Pyx_GOTREF(__pyx_t_10);
2041 __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_v_loop1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2042 __pyx_t_2 = __Pyx_PyInt_to_py_PmTimestamp((__pyx_v_buffer[__pyx_t_5]).timestamp); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2043 __Pyx_GOTREF(__pyx_t_2);
2044 __pyx_t_6 = PyTuple_New(5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2045 __Pyx_GOTREF(__pyx_t_6);
2046 __Pyx_INCREF(__pyx_v_loop1);
2047 PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_loop1);
2048 __Pyx_GIVEREF(__pyx_v_loop1);
2049 __Pyx_INCREF(((PyObject *)__pyx_kp_s_9));
2050 PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_kp_s_9));
2051 __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_9));
2052 PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_10);
2053 __Pyx_GIVEREF(__pyx_t_10);
2054 __Pyx_INCREF(((PyObject *)__pyx_kp_s_9));
2055 PyTuple_SET_ITEM(__pyx_t_6, 3, ((PyObject *)__pyx_kp_s_9));
2056 __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_9));
2057 PyTuple_SET_ITEM(__pyx_t_6, 4, __pyx_t_2);
2058 __Pyx_GIVEREF(__pyx_t_2);
2059 __pyx_t_10 = 0;
2060 __pyx_t_2 = 0;
2061 if (__Pyx_Print(__pyx_t_6, 1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2062 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
2063 goto __pyx_L11;
2064 }
2065 __pyx_L11:;
2066 }
2067 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2068 }
2069 __pyx_L5:;
2070
2071 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":329
2072 * buffer[loop1].timestamp = data[loop1][1]
2073 * if self.debug: print loop1," : ",buffer[loop1].message," : ",buffer[loop1].timestamp
2074 * if self.debug: print "writing to midi buffer" # <<<<<<<<<<<<<<
2075 * err= Pm_Write(self.midi, buffer, len(data))
2076 * if err < 0: raise Exception, Pm_GetErrorText(err)
2077 */
2078 __pyx_t_8 = ((struct __pyx_obj_11_pyportmidi_Output *)__pyx_v_self)->debug;
2079 if (__pyx_t_8) {
2080 if (__Pyx_PrintOne(((PyObject *)__pyx_kp_s_10)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2081 goto __pyx_L12;
2082 }
2083 __pyx_L12:;
2084
2085 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":330
2086 * if self.debug: print loop1," : ",buffer[loop1].message," : ",buffer[loop1].timestamp
2087 * if self.debug: print "writing to midi buffer"
2088 * err= Pm_Write(self.midi, buffer, len(data)) # <<<<<<<<<<<<<<
2089 * if err < 0: raise Exception, Pm_GetErrorText(err)
2090 *
2091 */
2092 __pyx_t_3 = PyObject_Length(__pyx_v_data); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2093 __pyx_v_err = Pm_Write(((struct __pyx_obj_11_pyportmidi_Output *)__pyx_v_self)->midi, __pyx_v_buffer, __pyx_t_3);
2094
2095 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":331
2096 * if self.debug: print "writing to midi buffer"
2097 * err= Pm_Write(self.midi, buffer, len(data))
2098 * if err < 0: raise Exception, Pm_GetErrorText(err) # <<<<<<<<<<<<<<
2099 *
2100 * def WriteShort(self, status, data1 = 0, data2 = 0):
2101 */
2102 __pyx_t_4 = (__pyx_v_err < 0);
2103 if (__pyx_t_4) {
2104 __pyx_t_1 = __Pyx_PyBytes_FromString(Pm_GetErrorText(__pyx_v_err)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2105 __Pyx_GOTREF(((PyObject *)__pyx_t_1));
2106 __Pyx_Raise(__pyx_builtin_Exception, ((PyObject *)__pyx_t_1), 0);
2107 __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
2108 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2109 goto __pyx_L13;
2110 }
2111 __pyx_L13:;
2112
2113 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
2114 goto __pyx_L0;
2115 __pyx_L1_error:;
2116 __Pyx_XDECREF(__pyx_t_1);
2117 __Pyx_XDECREF(__pyx_t_2);
2118 __Pyx_XDECREF(__pyx_t_6);
2119 __Pyx_XDECREF(__pyx_t_9);
2120 __Pyx_XDECREF(__pyx_t_10);
2121 __Pyx_AddTraceback("_pyportmidi.Output.Write");
2122 __pyx_r = NULL;
2123 __pyx_L0:;
2124 __Pyx_DECREF(__pyx_v_loop1);
2125 __Pyx_DECREF((PyObject *)__pyx_v_self);
2126 __Pyx_DECREF(__pyx_v_data);
2127 __Pyx_XGIVEREF(__pyx_r);
2128 __Pyx_RefNannyFinishContext();
2129 return __pyx_r;
2130 }
2131
2132 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":333
2133 * if err < 0: raise Exception, Pm_GetErrorText(err)
2134 *
2135 * def WriteShort(self, status, data1 = 0, data2 = 0): # <<<<<<<<<<<<<<
2136 * """
2137 * WriteShort(status <, data1><, data2>)
2138 */
2139
2140 static PyObject *__pyx_pf_11_pyportmidi_6Output_WriteShort(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
2141 static char __pyx_doc_11_pyportmidi_6Output_WriteShort[] = "\nWriteShort(status <, data1><, data2>)\n output MIDI information of 3 bytes or less.\n data fields are optional\n status byte could be:\n 0xc0 = program change\n 0x90 = note on\n etc.\n data bytes are optional and assumed 0 if omitted\n example: note 65 on with velocity 100\n WriteShort(0x90,65,100)\n ";
__pyx_pf_11_pyportmidi_6Output_WriteShort(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)2142 static PyObject *__pyx_pf_11_pyportmidi_6Output_WriteShort(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
2143 PyObject *__pyx_v_status = 0;
2144 PyObject *__pyx_v_data1 = 0;
2145 PyObject *__pyx_v_data2 = 0;
2146 PmEvent __pyx_v_buffer[1];
2147 PmError __pyx_v_err;
2148 PyObject *__pyx_r = NULL;
2149 PyObject *__pyx_t_1 = NULL;
2150 PyObject *__pyx_t_2 = NULL;
2151 PyObject *__pyx_t_3 = NULL;
2152 PmMessage __pyx_t_4;
2153 int __pyx_t_5;
2154 int __pyx_t_6;
2155 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__status,&__pyx_n_s__data1,&__pyx_n_s__data2,0};
2156 __Pyx_RefNannySetupContext("WriteShort");
2157 if (unlikely(__pyx_kwds)) {
2158 Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
2159 PyObject* values[3] = {0,0,0};
2160 values[1] = ((PyObject *)__pyx_int_0);
2161 values[2] = ((PyObject *)__pyx_int_0);
2162 switch (PyTuple_GET_SIZE(__pyx_args)) {
2163 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
2164 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
2165 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
2166 case 0: break;
2167 default: goto __pyx_L5_argtuple_error;
2168 }
2169 switch (PyTuple_GET_SIZE(__pyx_args)) {
2170 case 0:
2171 values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__status);
2172 if (likely(values[0])) kw_args--;
2173 else goto __pyx_L5_argtuple_error;
2174 case 1:
2175 if (kw_args > 1) {
2176 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__data1);
2177 if (unlikely(value)) { values[1] = value; kw_args--; }
2178 }
2179 case 2:
2180 if (kw_args > 1) {
2181 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__data2);
2182 if (unlikely(value)) { values[2] = value; kw_args--; }
2183 }
2184 }
2185 if (unlikely(kw_args > 0)) {
2186 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "WriteShort") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
2187 }
2188 __pyx_v_status = values[0];
2189 __pyx_v_data1 = values[1];
2190 __pyx_v_data2 = values[2];
2191 } else {
2192 __pyx_v_data1 = ((PyObject *)__pyx_int_0);
2193 __pyx_v_data2 = ((PyObject *)__pyx_int_0);
2194 switch (PyTuple_GET_SIZE(__pyx_args)) {
2195 case 3: __pyx_v_data2 = PyTuple_GET_ITEM(__pyx_args, 2);
2196 case 2: __pyx_v_data1 = PyTuple_GET_ITEM(__pyx_args, 1);
2197 case 1: __pyx_v_status = PyTuple_GET_ITEM(__pyx_args, 0);
2198 break;
2199 default: goto __pyx_L5_argtuple_error;
2200 }
2201 }
2202 goto __pyx_L4_argument_unpacking_done;
2203 __pyx_L5_argtuple_error:;
2204 __Pyx_RaiseArgtupleInvalid("WriteShort", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
2205 __pyx_L3_error:;
2206 __Pyx_AddTraceback("_pyportmidi.Output.WriteShort");
2207 return NULL;
2208 __pyx_L4_argument_unpacking_done:;
2209 __Pyx_INCREF((PyObject *)__pyx_v_self);
2210 __Pyx_INCREF(__pyx_v_status);
2211 __Pyx_INCREF(__pyx_v_data1);
2212 __Pyx_INCREF(__pyx_v_data2);
2213
2214 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":348
2215 * cdef PmEvent buffer[1]
2216 * cdef PmError err
2217 * self._check_open() # <<<<<<<<<<<<<<
2218 *
2219 * buffer[0].timestamp = Pt_Time()
2220 */
2221 __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___check_open); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2222 __Pyx_GOTREF(__pyx_t_1);
2223 __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2224 __Pyx_GOTREF(__pyx_t_2);
2225 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2226 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2227
2228 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":350
2229 * self._check_open()
2230 *
2231 * buffer[0].timestamp = Pt_Time() # <<<<<<<<<<<<<<
2232 * buffer[0].message = ((((data2) << 16) & 0xFF0000) | (((data1) << 8) & 0xFF00) | ((status) & 0xFF))
2233 * if self.debug: print "Writing to MIDI buffer"
2234 */
2235 (__pyx_v_buffer[0]).timestamp = Pt_Time();
2236
2237 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":351
2238 *
2239 * buffer[0].timestamp = Pt_Time()
2240 * buffer[0].message = ((((data2) << 16) & 0xFF0000) | (((data1) << 8) & 0xFF00) | ((status) & 0xFF)) # <<<<<<<<<<<<<<
2241 * if self.debug: print "Writing to MIDI buffer"
2242 * err = Pm_Write(self.midi, buffer, 1) # stream, buffer, length
2243 */
2244 __pyx_t_2 = PyNumber_Lshift(__pyx_v_data2, __pyx_int_16); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2245 __Pyx_GOTREF(__pyx_t_2);
2246 __pyx_t_1 = PyNumber_And(__pyx_t_2, __pyx_int_0xFF0000); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2247 __Pyx_GOTREF(__pyx_t_1);
2248 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2249 __pyx_t_2 = PyNumber_Lshift(__pyx_v_data1, __pyx_int_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2250 __Pyx_GOTREF(__pyx_t_2);
2251 __pyx_t_3 = PyNumber_And(__pyx_t_2, __pyx_int_0xFF00); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2252 __Pyx_GOTREF(__pyx_t_3);
2253 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2254 __pyx_t_2 = PyNumber_Or(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2255 __Pyx_GOTREF(__pyx_t_2);
2256 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2257 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
2258 __pyx_t_3 = PyNumber_And(__pyx_v_status, __pyx_int_0xFF); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2259 __Pyx_GOTREF(__pyx_t_3);
2260 __pyx_t_1 = PyNumber_Or(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2261 __Pyx_GOTREF(__pyx_t_1);
2262 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2263 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
2264 __pyx_t_4 = __Pyx_PyInt_from_py_PmMessage(__pyx_t_1); if (unlikely((__pyx_t_4 == (PmMessage)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2265 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2266 (__pyx_v_buffer[0]).message = __pyx_t_4;
2267
2268 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":352
2269 * buffer[0].timestamp = Pt_Time()
2270 * buffer[0].message = ((((data2) << 16) & 0xFF0000) | (((data1) << 8) & 0xFF00) | ((status) & 0xFF))
2271 * if self.debug: print "Writing to MIDI buffer" # <<<<<<<<<<<<<<
2272 * err = Pm_Write(self.midi, buffer, 1) # stream, buffer, length
2273 * if err < 0 : raise Exception, Pm_GetErrorText(err)
2274 */
2275 __pyx_t_5 = ((struct __pyx_obj_11_pyportmidi_Output *)__pyx_v_self)->debug;
2276 if (__pyx_t_5) {
2277 if (__Pyx_PrintOne(((PyObject *)__pyx_kp_s_11)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2278 goto __pyx_L6;
2279 }
2280 __pyx_L6:;
2281
2282 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":353
2283 * buffer[0].message = ((((data2) << 16) & 0xFF0000) | (((data1) << 8) & 0xFF00) | ((status) & 0xFF))
2284 * if self.debug: print "Writing to MIDI buffer"
2285 * err = Pm_Write(self.midi, buffer, 1) # stream, buffer, length # <<<<<<<<<<<<<<
2286 * if err < 0 : raise Exception, Pm_GetErrorText(err)
2287 *
2288 */
2289 __pyx_v_err = Pm_Write(((struct __pyx_obj_11_pyportmidi_Output *)__pyx_v_self)->midi, __pyx_v_buffer, 1);
2290
2291 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":354
2292 * if self.debug: print "Writing to MIDI buffer"
2293 * err = Pm_Write(self.midi, buffer, 1) # stream, buffer, length
2294 * if err < 0 : raise Exception, Pm_GetErrorText(err) # <<<<<<<<<<<<<<
2295 *
2296 * def WriteSysEx(self, when, msg):
2297 */
2298 __pyx_t_6 = (__pyx_v_err < 0);
2299 if (__pyx_t_6) {
2300 __pyx_t_1 = __Pyx_PyBytes_FromString(Pm_GetErrorText(__pyx_v_err)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2301 __Pyx_GOTREF(((PyObject *)__pyx_t_1));
2302 __Pyx_Raise(__pyx_builtin_Exception, ((PyObject *)__pyx_t_1), 0);
2303 __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
2304 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2305 goto __pyx_L7;
2306 }
2307 __pyx_L7:;
2308
2309 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
2310 goto __pyx_L0;
2311 __pyx_L1_error:;
2312 __Pyx_XDECREF(__pyx_t_1);
2313 __Pyx_XDECREF(__pyx_t_2);
2314 __Pyx_XDECREF(__pyx_t_3);
2315 __Pyx_AddTraceback("_pyportmidi.Output.WriteShort");
2316 __pyx_r = NULL;
2317 __pyx_L0:;
2318 __Pyx_DECREF((PyObject *)__pyx_v_self);
2319 __Pyx_DECREF(__pyx_v_status);
2320 __Pyx_DECREF(__pyx_v_data1);
2321 __Pyx_DECREF(__pyx_v_data2);
2322 __Pyx_XGIVEREF(__pyx_r);
2323 __Pyx_RefNannyFinishContext();
2324 return __pyx_r;
2325 }
2326
2327 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":356
2328 * if err < 0 : raise Exception, Pm_GetErrorText(err)
2329 *
2330 * def WriteSysEx(self, when, msg): # <<<<<<<<<<<<<<
2331 * """
2332 * WriteSysEx(<timestamp>,<msg>)
2333 */
2334
2335 static PyObject *__pyx_pf_11_pyportmidi_6Output_WriteSysEx(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
2336 static char __pyx_doc_11_pyportmidi_6Output_WriteSysEx[] = "\n WriteSysEx(<timestamp>,<msg>)\n writes a timestamped system-exclusive midi message.\n <msg> can be a *list* or a *string*\n example:\n (assuming y is an input MIDI stream)\n y.WriteSysEx(0,'\\xF0\\x7D\\x10\\x11\\x12\\x13\\xF7')\n is equivalent to\n y.WriteSysEx(pypm.Time,\n [0xF0, 0x7D, 0x10, 0x11, 0x12, 0x13, 0xF7])\n ";
__pyx_pf_11_pyportmidi_6Output_WriteSysEx(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)2337 static PyObject *__pyx_pf_11_pyportmidi_6Output_WriteSysEx(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
2338 PyObject *__pyx_v_when = 0;
2339 PyObject *__pyx_v_msg = 0;
2340 PmError __pyx_v_err;
2341 char *__pyx_v_cmsg;
2342 PtTimestamp __pyx_v_CurTime;
2343 PyObject *__pyx_r = NULL;
2344 PyObject *__pyx_t_1 = NULL;
2345 PyObject *__pyx_t_2 = NULL;
2346 int __pyx_t_3;
2347 PyObject *__pyx_t_4 = NULL;
2348 char *__pyx_t_5;
2349 PmTimestamp __pyx_t_6;
2350 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__when,&__pyx_n_s__msg,0};
2351 __Pyx_RefNannySetupContext("WriteSysEx");
2352 if (unlikely(__pyx_kwds)) {
2353 Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
2354 PyObject* values[2] = {0,0};
2355 switch (PyTuple_GET_SIZE(__pyx_args)) {
2356 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
2357 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
2358 case 0: break;
2359 default: goto __pyx_L5_argtuple_error;
2360 }
2361 switch (PyTuple_GET_SIZE(__pyx_args)) {
2362 case 0:
2363 values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__when);
2364 if (likely(values[0])) kw_args--;
2365 else goto __pyx_L5_argtuple_error;
2366 case 1:
2367 values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__msg);
2368 if (likely(values[1])) kw_args--;
2369 else {
2370 __Pyx_RaiseArgtupleInvalid("WriteSysEx", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
2371 }
2372 }
2373 if (unlikely(kw_args > 0)) {
2374 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "WriteSysEx") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
2375 }
2376 __pyx_v_when = values[0];
2377 __pyx_v_msg = values[1];
2378 } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
2379 goto __pyx_L5_argtuple_error;
2380 } else {
2381 __pyx_v_when = PyTuple_GET_ITEM(__pyx_args, 0);
2382 __pyx_v_msg = PyTuple_GET_ITEM(__pyx_args, 1);
2383 }
2384 goto __pyx_L4_argument_unpacking_done;
2385 __pyx_L5_argtuple_error:;
2386 __Pyx_RaiseArgtupleInvalid("WriteSysEx", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
2387 __pyx_L3_error:;
2388 __Pyx_AddTraceback("_pyportmidi.Output.WriteSysEx");
2389 return NULL;
2390 __pyx_L4_argument_unpacking_done:;
2391 __Pyx_INCREF((PyObject *)__pyx_v_self);
2392 __Pyx_INCREF(__pyx_v_when);
2393 __Pyx_INCREF(__pyx_v_msg);
2394
2395 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":372
2396 * cdef PtTimestamp CurTime
2397 *
2398 * self._check_open() # <<<<<<<<<<<<<<
2399 *
2400 * if type(msg) is list:
2401 */
2402 __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___check_open); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2403 __Pyx_GOTREF(__pyx_t_1);
2404 __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2405 __Pyx_GOTREF(__pyx_t_2);
2406 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2407 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2408
2409 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":374
2410 * self._check_open()
2411 *
2412 * if type(msg) is list: # <<<<<<<<<<<<<<
2413 * msg = array.array('B',msg).tostring() # Markus Pfaff contribution
2414 * cmsg = msg
2415 */
2416 __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_msg)) == ((PyObject *)((PyObject*)&PyList_Type)));
2417 if (__pyx_t_3) {
2418
2419 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":375
2420 *
2421 * if type(msg) is list:
2422 * msg = array.array('B',msg).tostring() # Markus Pfaff contribution # <<<<<<<<<<<<<<
2423 * cmsg = msg
2424 *
2425 */
2426 __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__array); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2427 __Pyx_GOTREF(__pyx_t_2);
2428 __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__array); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2429 __Pyx_GOTREF(__pyx_t_1);
2430 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2431 __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2432 __Pyx_GOTREF(__pyx_t_2);
2433 __Pyx_INCREF(((PyObject *)__pyx_n_s__B));
2434 PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_n_s__B));
2435 __Pyx_GIVEREF(((PyObject *)__pyx_n_s__B));
2436 __Pyx_INCREF(__pyx_v_msg);
2437 PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_msg);
2438 __Pyx_GIVEREF(__pyx_v_msg);
2439 __pyx_t_4 = PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2440 __Pyx_GOTREF(__pyx_t_4);
2441 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2442 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2443 __pyx_t_2 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__tostring); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2444 __Pyx_GOTREF(__pyx_t_2);
2445 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
2446 __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2447 __Pyx_GOTREF(__pyx_t_4);
2448 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2449 __Pyx_DECREF(__pyx_v_msg);
2450 __pyx_v_msg = __pyx_t_4;
2451 __pyx_t_4 = 0;
2452 goto __pyx_L6;
2453 }
2454 __pyx_L6:;
2455
2456 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":376
2457 * if type(msg) is list:
2458 * msg = array.array('B',msg).tostring() # Markus Pfaff contribution
2459 * cmsg = msg # <<<<<<<<<<<<<<
2460 *
2461 * CurTime = Pt_Time()
2462 */
2463 __pyx_t_5 = __Pyx_PyBytes_AsString(__pyx_v_msg); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2464 __pyx_v_cmsg = __pyx_t_5;
2465
2466 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":378
2467 * cmsg = msg
2468 *
2469 * CurTime = Pt_Time() # <<<<<<<<<<<<<<
2470 * err = Pm_WriteSysEx(self.midi, when, <unsigned char *> cmsg)
2471 * if err < 0 : raise Exception, Pm_GetErrorText(err)
2472 */
2473 __pyx_v_CurTime = Pt_Time();
2474
2475 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":379
2476 *
2477 * CurTime = Pt_Time()
2478 * err = Pm_WriteSysEx(self.midi, when, <unsigned char *> cmsg) # <<<<<<<<<<<<<<
2479 * if err < 0 : raise Exception, Pm_GetErrorText(err)
2480 * while Pt_Time() == CurTime: # wait for SysEx to go thru or...my
2481 */
2482 __pyx_t_6 = __Pyx_PyInt_from_py_PmTimestamp(__pyx_v_when); if (unlikely((__pyx_t_6 == (PmTimestamp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2483 __pyx_v_err = Pm_WriteSysEx(((struct __pyx_obj_11_pyportmidi_Output *)__pyx_v_self)->midi, __pyx_t_6, ((unsigned char *)__pyx_v_cmsg));
2484
2485 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":380
2486 * CurTime = Pt_Time()
2487 * err = Pm_WriteSysEx(self.midi, when, <unsigned char *> cmsg)
2488 * if err < 0 : raise Exception, Pm_GetErrorText(err) # <<<<<<<<<<<<<<
2489 * while Pt_Time() == CurTime: # wait for SysEx to go thru or...my
2490 * pass # win32 machine crashes w/ multiple SysEx
2491 */
2492 __pyx_t_3 = (__pyx_v_err < 0);
2493 if (__pyx_t_3) {
2494 __pyx_t_4 = __Pyx_PyBytes_FromString(Pm_GetErrorText(__pyx_v_err)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2495 __Pyx_GOTREF(((PyObject *)__pyx_t_4));
2496 __Pyx_Raise(__pyx_builtin_Exception, ((PyObject *)__pyx_t_4), 0);
2497 __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
2498 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2499 goto __pyx_L7;
2500 }
2501 __pyx_L7:;
2502
2503 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":381
2504 * err = Pm_WriteSysEx(self.midi, when, <unsigned char *> cmsg)
2505 * if err < 0 : raise Exception, Pm_GetErrorText(err)
2506 * while Pt_Time() == CurTime: # wait for SysEx to go thru or...my # <<<<<<<<<<<<<<
2507 * pass # win32 machine crashes w/ multiple SysEx
2508 *
2509 */
2510 while (1) {
2511 __pyx_t_3 = (Pt_Time() == __pyx_v_CurTime);
2512 if (!__pyx_t_3) break;
2513 }
2514
2515 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
2516 goto __pyx_L0;
2517 __pyx_L1_error:;
2518 __Pyx_XDECREF(__pyx_t_1);
2519 __Pyx_XDECREF(__pyx_t_2);
2520 __Pyx_XDECREF(__pyx_t_4);
2521 __Pyx_AddTraceback("_pyportmidi.Output.WriteSysEx");
2522 __pyx_r = NULL;
2523 __pyx_L0:;
2524 __Pyx_DECREF((PyObject *)__pyx_v_self);
2525 __Pyx_DECREF(__pyx_v_when);
2526 __Pyx_DECREF(__pyx_v_msg);
2527 __Pyx_XGIVEREF(__pyx_r);
2528 __Pyx_RefNannyFinishContext();
2529 return __pyx_r;
2530 }
2531
2532 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":404
2533 * cdef int i
2534 *
2535 * def __init__(self, InputDevice, buffersize=4096): # <<<<<<<<<<<<<<
2536 * cdef PmError err
2537 * self.i = InputDevice
2538 */
2539
2540 static int __pyx_pf_11_pyportmidi_5Input___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pf_11_pyportmidi_5Input___init__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)2541 static int __pyx_pf_11_pyportmidi_5Input___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
2542 PyObject *__pyx_v_InputDevice = 0;
2543 PyObject *__pyx_v_buffersize = 0;
2544 PmError __pyx_v_err;
2545 int __pyx_r;
2546 int __pyx_t_1;
2547 long __pyx_t_2;
2548 int __pyx_t_3;
2549 PyObject *__pyx_t_4 = NULL;
2550 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__InputDevice,&__pyx_n_s__buffersize,0};
2551 __Pyx_RefNannySetupContext("__init__");
2552 if (unlikely(__pyx_kwds)) {
2553 Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
2554 PyObject* values[2] = {0,0};
2555 values[1] = ((PyObject *)__pyx_int_4096);
2556 switch (PyTuple_GET_SIZE(__pyx_args)) {
2557 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
2558 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
2559 case 0: break;
2560 default: goto __pyx_L5_argtuple_error;
2561 }
2562 switch (PyTuple_GET_SIZE(__pyx_args)) {
2563 case 0:
2564 values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__InputDevice);
2565 if (likely(values[0])) kw_args--;
2566 else goto __pyx_L5_argtuple_error;
2567 case 1:
2568 if (kw_args > 1) {
2569 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buffersize);
2570 if (unlikely(value)) { values[1] = value; kw_args--; }
2571 }
2572 }
2573 if (unlikely(kw_args > 0)) {
2574 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
2575 }
2576 __pyx_v_InputDevice = values[0];
2577 __pyx_v_buffersize = values[1];
2578 } else {
2579 __pyx_v_buffersize = ((PyObject *)__pyx_int_4096);
2580 switch (PyTuple_GET_SIZE(__pyx_args)) {
2581 case 2: __pyx_v_buffersize = PyTuple_GET_ITEM(__pyx_args, 1);
2582 case 1: __pyx_v_InputDevice = PyTuple_GET_ITEM(__pyx_args, 0);
2583 break;
2584 default: goto __pyx_L5_argtuple_error;
2585 }
2586 }
2587 goto __pyx_L4_argument_unpacking_done;
2588 __pyx_L5_argtuple_error:;
2589 __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
2590 __pyx_L3_error:;
2591 __Pyx_AddTraceback("_pyportmidi.Input.__init__");
2592 return -1;
2593 __pyx_L4_argument_unpacking_done:;
2594 __Pyx_INCREF((PyObject *)__pyx_v_self);
2595 __Pyx_INCREF(__pyx_v_InputDevice);
2596 __Pyx_INCREF(__pyx_v_buffersize);
2597
2598 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":406
2599 * def __init__(self, InputDevice, buffersize=4096):
2600 * cdef PmError err
2601 * self.i = InputDevice # <<<<<<<<<<<<<<
2602 * self.debug = 0
2603 * err= Pm_OpenInput(&(self.midi),self.i,NULL,buffersize,&Pt_Time,NULL)
2604 */
2605 __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_InputDevice); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2606 ((struct __pyx_obj_11_pyportmidi_Input *)__pyx_v_self)->i = __pyx_t_1;
2607
2608 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":407
2609 * cdef PmError err
2610 * self.i = InputDevice
2611 * self.debug = 0 # <<<<<<<<<<<<<<
2612 * err= Pm_OpenInput(&(self.midi),self.i,NULL,buffersize,&Pt_Time,NULL)
2613 * if err < 0: raise Exception, Pm_GetErrorText(err)
2614 */
2615 ((struct __pyx_obj_11_pyportmidi_Input *)__pyx_v_self)->debug = 0;
2616
2617 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":408
2618 * self.i = InputDevice
2619 * self.debug = 0
2620 * err= Pm_OpenInput(&(self.midi),self.i,NULL,buffersize,&Pt_Time,NULL) # <<<<<<<<<<<<<<
2621 * if err < 0: raise Exception, Pm_GetErrorText(err)
2622 * if self.debug: print "MIDI input opened."
2623 */
2624 __pyx_t_2 = __Pyx_PyInt_AsLong(__pyx_v_buffersize); if (unlikely((__pyx_t_2 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2625 __pyx_v_err = Pm_OpenInput((&((struct __pyx_obj_11_pyportmidi_Input *)__pyx_v_self)->midi), ((struct __pyx_obj_11_pyportmidi_Input *)__pyx_v_self)->i, NULL, __pyx_t_2, (&Pt_Time), NULL);
2626
2627 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":409
2628 * self.debug = 0
2629 * err= Pm_OpenInput(&(self.midi),self.i,NULL,buffersize,&Pt_Time,NULL)
2630 * if err < 0: raise Exception, Pm_GetErrorText(err) # <<<<<<<<<<<<<<
2631 * if self.debug: print "MIDI input opened."
2632 *
2633 */
2634 __pyx_t_3 = (__pyx_v_err < 0);
2635 if (__pyx_t_3) {
2636 __pyx_t_4 = __Pyx_PyBytes_FromString(Pm_GetErrorText(__pyx_v_err)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2637 __Pyx_GOTREF(((PyObject *)__pyx_t_4));
2638 __Pyx_Raise(__pyx_builtin_Exception, ((PyObject *)__pyx_t_4), 0);
2639 __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
2640 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2641 goto __pyx_L6;
2642 }
2643 __pyx_L6:;
2644
2645 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":410
2646 * err= Pm_OpenInput(&(self.midi),self.i,NULL,buffersize,&Pt_Time,NULL)
2647 * if err < 0: raise Exception, Pm_GetErrorText(err)
2648 * if self.debug: print "MIDI input opened." # <<<<<<<<<<<<<<
2649 *
2650 * def __dealloc__(self):
2651 */
2652 __pyx_t_1 = ((struct __pyx_obj_11_pyportmidi_Input *)__pyx_v_self)->debug;
2653 if (__pyx_t_1) {
2654 if (__Pyx_PrintOne(((PyObject *)__pyx_kp_s_12)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2655 goto __pyx_L7;
2656 }
2657 __pyx_L7:;
2658
2659 __pyx_r = 0;
2660 goto __pyx_L0;
2661 __pyx_L1_error:;
2662 __Pyx_XDECREF(__pyx_t_4);
2663 __Pyx_AddTraceback("_pyportmidi.Input.__init__");
2664 __pyx_r = -1;
2665 __pyx_L0:;
2666 __Pyx_DECREF((PyObject *)__pyx_v_self);
2667 __Pyx_DECREF(__pyx_v_InputDevice);
2668 __Pyx_DECREF(__pyx_v_buffersize);
2669 __Pyx_RefNannyFinishContext();
2670 return __pyx_r;
2671 }
2672
2673 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":412
2674 * if self.debug: print "MIDI input opened."
2675 *
2676 * def __dealloc__(self): # <<<<<<<<<<<<<<
2677 * cdef PmError err
2678 * if self.debug: print "Closing MIDI input stream and destroying instance"
2679 */
2680
2681 static void __pyx_pf_11_pyportmidi_5Input___dealloc__(PyObject *__pyx_v_self); /*proto*/
__pyx_pf_11_pyportmidi_5Input___dealloc__(PyObject * __pyx_v_self)2682 static void __pyx_pf_11_pyportmidi_5Input___dealloc__(PyObject *__pyx_v_self) {
2683 PmError __pyx_v_err;
2684 int __pyx_t_1;
2685 int __pyx_t_2;
2686 PyObject *__pyx_t_3 = NULL;
2687 __Pyx_RefNannySetupContext("__dealloc__");
2688 __Pyx_INCREF((PyObject *)__pyx_v_self);
2689
2690 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":414
2691 * def __dealloc__(self):
2692 * cdef PmError err
2693 * if self.debug: print "Closing MIDI input stream and destroying instance" # <<<<<<<<<<<<<<
2694 *
2695 * err = Pm_Close(self.midi)
2696 */
2697 __pyx_t_1 = ((struct __pyx_obj_11_pyportmidi_Input *)__pyx_v_self)->debug;
2698 if (__pyx_t_1) {
2699 if (__Pyx_PrintOne(((PyObject *)__pyx_kp_s_13)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2700 goto __pyx_L5;
2701 }
2702 __pyx_L5:;
2703
2704 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":416
2705 * if self.debug: print "Closing MIDI input stream and destroying instance"
2706 *
2707 * err = Pm_Close(self.midi) # <<<<<<<<<<<<<<
2708 * if err < 0:
2709 * raise Exception, Pm_GetErrorText(err)
2710 */
2711 __pyx_v_err = Pm_Close(((struct __pyx_obj_11_pyportmidi_Input *)__pyx_v_self)->midi);
2712
2713 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":417
2714 *
2715 * err = Pm_Close(self.midi)
2716 * if err < 0: # <<<<<<<<<<<<<<
2717 * raise Exception, Pm_GetErrorText(err)
2718 *
2719 */
2720 __pyx_t_2 = (__pyx_v_err < 0);
2721 if (__pyx_t_2) {
2722
2723 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":418
2724 * err = Pm_Close(self.midi)
2725 * if err < 0:
2726 * raise Exception, Pm_GetErrorText(err) # <<<<<<<<<<<<<<
2727 *
2728 *
2729 */
2730 __pyx_t_3 = __Pyx_PyBytes_FromString(Pm_GetErrorText(__pyx_v_err)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2731 __Pyx_GOTREF(((PyObject *)__pyx_t_3));
2732 __Pyx_Raise(__pyx_builtin_Exception, ((PyObject *)__pyx_t_3), 0);
2733 __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
2734 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2735 goto __pyx_L6;
2736 }
2737 __pyx_L6:;
2738
2739 goto __pyx_L0;
2740 __pyx_L1_error:;
2741 __Pyx_XDECREF(__pyx_t_3);
2742 __Pyx_AddTraceback("_pyportmidi.Input.__dealloc__");
2743 __pyx_L0:;
2744 __Pyx_DECREF((PyObject *)__pyx_v_self);
2745 __Pyx_RefNannyFinishContext();
2746 }
2747
2748 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":422
2749 *
2750 *
2751 * def _check_open(self): # <<<<<<<<<<<<<<
2752 * """ checks to see if the midi is open, and if not, raises an error.
2753 * """
2754 */
2755
2756 static PyObject *__pyx_pf_11_pyportmidi_5Input__check_open(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
2757 static char __pyx_doc_11_pyportmidi_5Input__check_open[] = " checks to see if the midi is open, and if not, raises an error.\n ";
__pyx_pf_11_pyportmidi_5Input__check_open(PyObject * __pyx_v_self,PyObject * unused)2758 static PyObject *__pyx_pf_11_pyportmidi_5Input__check_open(PyObject *__pyx_v_self, PyObject *unused) {
2759 PyObject *__pyx_r = NULL;
2760 int __pyx_t_1;
2761 __Pyx_RefNannySetupContext("_check_open");
2762 __Pyx_INCREF((PyObject *)__pyx_v_self);
2763
2764 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":426
2765 * """
2766 *
2767 * if self.midi == NULL: # <<<<<<<<<<<<<<
2768 * raise Exception, "midi Input not open."
2769 *
2770 */
2771 __pyx_t_1 = (((struct __pyx_obj_11_pyportmidi_Input *)__pyx_v_self)->midi == NULL);
2772 if (__pyx_t_1) {
2773
2774 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":427
2775 *
2776 * if self.midi == NULL:
2777 * raise Exception, "midi Input not open." # <<<<<<<<<<<<<<
2778 *
2779 *
2780 */
2781 __Pyx_Raise(__pyx_builtin_Exception, ((PyObject *)__pyx_kp_s_14), 0);
2782 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2783 goto __pyx_L5;
2784 }
2785 __pyx_L5:;
2786
2787 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
2788 goto __pyx_L0;
2789 __pyx_L1_error:;
2790 __Pyx_AddTraceback("_pyportmidi.Input._check_open");
2791 __pyx_r = NULL;
2792 __pyx_L0:;
2793 __Pyx_DECREF((PyObject *)__pyx_v_self);
2794 __Pyx_XGIVEREF(__pyx_r);
2795 __Pyx_RefNannyFinishContext();
2796 return __pyx_r;
2797 }
2798
2799 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":430
2800 *
2801 *
2802 * def Close(self): # <<<<<<<<<<<<<<
2803 * """
2804 * Close()
2805 */
2806
2807 static PyObject *__pyx_pf_11_pyportmidi_5Input_Close(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
2808 static char __pyx_doc_11_pyportmidi_5Input_Close[] = "\nClose()\n closes a midi stream, flushing any pending buffers.\n (PortMidi attempts to close open streams when the application\n exits -- this is particularly difficult under Windows.)\n ";
__pyx_pf_11_pyportmidi_5Input_Close(PyObject * __pyx_v_self,PyObject * unused)2809 static PyObject *__pyx_pf_11_pyportmidi_5Input_Close(PyObject *__pyx_v_self, PyObject *unused) {
2810 PyObject *__pyx_v_err;
2811 PyObject *__pyx_r = NULL;
2812 PyObject *__pyx_t_1 = NULL;
2813 int __pyx_t_2;
2814 PmError __pyx_t_3;
2815 __Pyx_RefNannySetupContext("Close");
2816 __Pyx_INCREF((PyObject *)__pyx_v_self);
2817 __pyx_v_err = Py_None; __Pyx_INCREF(Py_None);
2818
2819 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":440
2820 * # return
2821 *
2822 * err = Pm_Close(self.midi) # <<<<<<<<<<<<<<
2823 * if err < 0:
2824 * raise Exception, Pm_GetErrorText(err)
2825 */
2826 __pyx_t_1 = PyInt_FromLong(Pm_Close(((struct __pyx_obj_11_pyportmidi_Input *)__pyx_v_self)->midi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2827 __Pyx_GOTREF(__pyx_t_1);
2828 __Pyx_DECREF(__pyx_v_err);
2829 __pyx_v_err = __pyx_t_1;
2830 __pyx_t_1 = 0;
2831
2832 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":441
2833 *
2834 * err = Pm_Close(self.midi)
2835 * if err < 0: # <<<<<<<<<<<<<<
2836 * raise Exception, Pm_GetErrorText(err)
2837 * #self.midi = NULL
2838 */
2839 __pyx_t_1 = PyObject_RichCompare(__pyx_v_err, __pyx_int_0, Py_LT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2840 __Pyx_GOTREF(__pyx_t_1);
2841 __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2842 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2843 if (__pyx_t_2) {
2844
2845 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":442
2846 * err = Pm_Close(self.midi)
2847 * if err < 0:
2848 * raise Exception, Pm_GetErrorText(err) # <<<<<<<<<<<<<<
2849 * #self.midi = NULL
2850 *
2851 */
2852 __pyx_t_3 = ((PmError)PyInt_AsLong(__pyx_v_err)); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2853 __pyx_t_1 = __Pyx_PyBytes_FromString(Pm_GetErrorText(__pyx_t_3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2854 __Pyx_GOTREF(((PyObject *)__pyx_t_1));
2855 __Pyx_Raise(__pyx_builtin_Exception, ((PyObject *)__pyx_t_1), 0);
2856 __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
2857 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2858 goto __pyx_L5;
2859 }
2860 __pyx_L5:;
2861
2862 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
2863 goto __pyx_L0;
2864 __pyx_L1_error:;
2865 __Pyx_XDECREF(__pyx_t_1);
2866 __Pyx_AddTraceback("_pyportmidi.Input.Close");
2867 __pyx_r = NULL;
2868 __pyx_L0:;
2869 __Pyx_DECREF(__pyx_v_err);
2870 __Pyx_DECREF((PyObject *)__pyx_v_self);
2871 __Pyx_XGIVEREF(__pyx_r);
2872 __Pyx_RefNannyFinishContext();
2873 return __pyx_r;
2874 }
2875
2876 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":447
2877 *
2878 *
2879 * def SetFilter(self, filters): # <<<<<<<<<<<<<<
2880 * """
2881 * SetFilter(<filters>) sets filters on an open input stream
2882 */
2883
2884 static PyObject *__pyx_pf_11_pyportmidi_5Input_SetFilter(PyObject *__pyx_v_self, PyObject *__pyx_v_filters); /*proto*/
2885 static char __pyx_doc_11_pyportmidi_5Input_SetFilter[] = "\n SetFilter(<filters>) sets filters on an open input stream\n to drop selected input types. By default, only active sensing\n messages are filtered. To prohibit, say, active sensing and\n sysex messages, call\n SetFilter(stream, FILT_ACTIVE | FILT_SYSEX);\n\n Filtering is useful when midi routing or midi thru functionality\n is being provided by the user application.\n For example, you may want to exclude timing messages\n (clock, MTC, start/stop/continue), while allowing note-related\n messages to pass. Or you may be using a sequencer or drum-machine\n for MIDI clock information but want to exclude any notes\n it may play.\n\n Note: SetFilter empties the buffer after setting the filter,\n just in case anything got through.\n ";
__pyx_pf_11_pyportmidi_5Input_SetFilter(PyObject * __pyx_v_self,PyObject * __pyx_v_filters)2886 static PyObject *__pyx_pf_11_pyportmidi_5Input_SetFilter(PyObject *__pyx_v_self, PyObject *__pyx_v_filters) {
2887 PmEvent __pyx_v_buffer[1];
2888 PmError __pyx_v_err;
2889 PyObject *__pyx_r = NULL;
2890 PyObject *__pyx_t_1 = NULL;
2891 PyObject *__pyx_t_2 = NULL;
2892 long __pyx_t_3;
2893 int __pyx_t_4;
2894 __Pyx_RefNannySetupContext("SetFilter");
2895 __Pyx_INCREF((PyObject *)__pyx_v_self);
2896 __Pyx_INCREF(__pyx_v_filters);
2897
2898 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":469
2899 * cdef PmError err
2900 *
2901 * self._check_open() # <<<<<<<<<<<<<<
2902 *
2903 *
2904 */
2905 __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___check_open); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2906 __Pyx_GOTREF(__pyx_t_1);
2907 __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2908 __Pyx_GOTREF(__pyx_t_2);
2909 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2910 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2911
2912 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":472
2913 *
2914 *
2915 * err = Pm_SetFilter(self.midi, filters) # <<<<<<<<<<<<<<
2916 *
2917 * if err < 0: raise Exception, Pm_GetErrorText(err)
2918 */
2919 __pyx_t_3 = __Pyx_PyInt_AsLong(__pyx_v_filters); if (unlikely((__pyx_t_3 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2920 __pyx_v_err = Pm_SetFilter(((struct __pyx_obj_11_pyportmidi_Input *)__pyx_v_self)->midi, __pyx_t_3);
2921
2922 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":474
2923 * err = Pm_SetFilter(self.midi, filters)
2924 *
2925 * if err < 0: raise Exception, Pm_GetErrorText(err) # <<<<<<<<<<<<<<
2926 *
2927 * while(Pm_Poll(self.midi) != pmNoError):
2928 */
2929 __pyx_t_4 = (__pyx_v_err < 0);
2930 if (__pyx_t_4) {
2931 __pyx_t_2 = __Pyx_PyBytes_FromString(Pm_GetErrorText(__pyx_v_err)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 474; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2932 __Pyx_GOTREF(((PyObject *)__pyx_t_2));
2933 __Pyx_Raise(__pyx_builtin_Exception, ((PyObject *)__pyx_t_2), 0);
2934 __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
2935 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 474; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2936 goto __pyx_L5;
2937 }
2938 __pyx_L5:;
2939
2940 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":476
2941 * if err < 0: raise Exception, Pm_GetErrorText(err)
2942 *
2943 * while(Pm_Poll(self.midi) != pmNoError): # <<<<<<<<<<<<<<
2944 *
2945 * err = Pm_Read(self.midi,buffer,1)
2946 */
2947 while (1) {
2948 __pyx_t_4 = (Pm_Poll(((struct __pyx_obj_11_pyportmidi_Input *)__pyx_v_self)->midi) != pmNoError);
2949 if (!__pyx_t_4) break;
2950
2951 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":478
2952 * while(Pm_Poll(self.midi) != pmNoError):
2953 *
2954 * err = Pm_Read(self.midi,buffer,1) # <<<<<<<<<<<<<<
2955 * if err < 0: raise Exception, Pm_GetErrorText(err)
2956 *
2957 */
2958 __pyx_v_err = Pm_Read(((struct __pyx_obj_11_pyportmidi_Input *)__pyx_v_self)->midi, __pyx_v_buffer, 1);
2959
2960 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":479
2961 *
2962 * err = Pm_Read(self.midi,buffer,1)
2963 * if err < 0: raise Exception, Pm_GetErrorText(err) # <<<<<<<<<<<<<<
2964 *
2965 * def SetChannelMask(self, mask):
2966 */
2967 __pyx_t_4 = (__pyx_v_err < 0);
2968 if (__pyx_t_4) {
2969 __pyx_t_2 = __Pyx_PyBytes_FromString(Pm_GetErrorText(__pyx_v_err)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2970 __Pyx_GOTREF(((PyObject *)__pyx_t_2));
2971 __Pyx_Raise(__pyx_builtin_Exception, ((PyObject *)__pyx_t_2), 0);
2972 __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
2973 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
2974 goto __pyx_L8;
2975 }
2976 __pyx_L8:;
2977 }
2978
2979 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
2980 goto __pyx_L0;
2981 __pyx_L1_error:;
2982 __Pyx_XDECREF(__pyx_t_1);
2983 __Pyx_XDECREF(__pyx_t_2);
2984 __Pyx_AddTraceback("_pyportmidi.Input.SetFilter");
2985 __pyx_r = NULL;
2986 __pyx_L0:;
2987 __Pyx_DECREF((PyObject *)__pyx_v_self);
2988 __Pyx_DECREF(__pyx_v_filters);
2989 __Pyx_XGIVEREF(__pyx_r);
2990 __Pyx_RefNannyFinishContext();
2991 return __pyx_r;
2992 }
2993
2994 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":481
2995 * if err < 0: raise Exception, Pm_GetErrorText(err)
2996 *
2997 * def SetChannelMask(self, mask): # <<<<<<<<<<<<<<
2998 * """
2999 * SetChannelMask(<mask>) filters incoming messages based on channel.
3000 */
3001
3002 static PyObject *__pyx_pf_11_pyportmidi_5Input_SetChannelMask(PyObject *__pyx_v_self, PyObject *__pyx_v_mask); /*proto*/
3003 static char __pyx_doc_11_pyportmidi_5Input_SetChannelMask[] = "\n SetChannelMask(<mask>) filters incoming messages based on channel.\n The mask is a 16-bit bitfield corresponding to appropriate channels\n Channel(<channel>) can assist in calling this function.\n i.e. to set receive only input on channel 1, call with\n SetChannelMask(Channel(1))\n Multiple channels should be OR'd together, like\n SetChannelMask(Channel(10) | Channel(11))\n note: PyPortMidi Channel function has been altered from\n the original PortMidi c call to correct for what\n seems to be a bug --- i.e. channel filters were\n all numbered from 0 to 15 instead of 1 to 16.\n ";
__pyx_pf_11_pyportmidi_5Input_SetChannelMask(PyObject * __pyx_v_self,PyObject * __pyx_v_mask)3004 static PyObject *__pyx_pf_11_pyportmidi_5Input_SetChannelMask(PyObject *__pyx_v_self, PyObject *__pyx_v_mask) {
3005 PmError __pyx_v_err;
3006 PyObject *__pyx_r = NULL;
3007 PyObject *__pyx_t_1 = NULL;
3008 PyObject *__pyx_t_2 = NULL;
3009 int __pyx_t_3;
3010 int __pyx_t_4;
3011 __Pyx_RefNannySetupContext("SetChannelMask");
3012 __Pyx_INCREF((PyObject *)__pyx_v_self);
3013 __Pyx_INCREF(__pyx_v_mask);
3014
3015 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":497
3016 * cdef PmError err
3017 *
3018 * self._check_open() # <<<<<<<<<<<<<<
3019 *
3020 * err = Pm_SetChannelMask(self.midi,mask)
3021 */
3022 __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___check_open); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3023 __Pyx_GOTREF(__pyx_t_1);
3024 __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3025 __Pyx_GOTREF(__pyx_t_2);
3026 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3027 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3028
3029 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":499
3030 * self._check_open()
3031 *
3032 * err = Pm_SetChannelMask(self.midi,mask) # <<<<<<<<<<<<<<
3033 * if err < 0: raise Exception, Pm_GetErrorText(err)
3034 *
3035 */
3036 __pyx_t_3 = __Pyx_PyInt_AsInt(__pyx_v_mask); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3037 __pyx_v_err = Pm_SetChannelMask(((struct __pyx_obj_11_pyportmidi_Input *)__pyx_v_self)->midi, __pyx_t_3);
3038
3039 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":500
3040 *
3041 * err = Pm_SetChannelMask(self.midi,mask)
3042 * if err < 0: raise Exception, Pm_GetErrorText(err) # <<<<<<<<<<<<<<
3043 *
3044 * def Poll(self):
3045 */
3046 __pyx_t_4 = (__pyx_v_err < 0);
3047 if (__pyx_t_4) {
3048 __pyx_t_2 = __Pyx_PyBytes_FromString(Pm_GetErrorText(__pyx_v_err)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3049 __Pyx_GOTREF(((PyObject *)__pyx_t_2));
3050 __Pyx_Raise(__pyx_builtin_Exception, ((PyObject *)__pyx_t_2), 0);
3051 __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
3052 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3053 goto __pyx_L5;
3054 }
3055 __pyx_L5:;
3056
3057 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
3058 goto __pyx_L0;
3059 __pyx_L1_error:;
3060 __Pyx_XDECREF(__pyx_t_1);
3061 __Pyx_XDECREF(__pyx_t_2);
3062 __Pyx_AddTraceback("_pyportmidi.Input.SetChannelMask");
3063 __pyx_r = NULL;
3064 __pyx_L0:;
3065 __Pyx_DECREF((PyObject *)__pyx_v_self);
3066 __Pyx_DECREF(__pyx_v_mask);
3067 __Pyx_XGIVEREF(__pyx_r);
3068 __Pyx_RefNannyFinishContext();
3069 return __pyx_r;
3070 }
3071
3072 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":502
3073 * if err < 0: raise Exception, Pm_GetErrorText(err)
3074 *
3075 * def Poll(self): # <<<<<<<<<<<<<<
3076 * """
3077 * Poll tests whether input is available,
3078 */
3079
3080 static PyObject *__pyx_pf_11_pyportmidi_5Input_Poll(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
3081 static char __pyx_doc_11_pyportmidi_5Input_Poll[] = "\n Poll tests whether input is available,\n returning TRUE, FALSE, or an error value.\n ";
__pyx_pf_11_pyportmidi_5Input_Poll(PyObject * __pyx_v_self,PyObject * unused)3082 static PyObject *__pyx_pf_11_pyportmidi_5Input_Poll(PyObject *__pyx_v_self, PyObject *unused) {
3083 PmError __pyx_v_err;
3084 PyObject *__pyx_r = NULL;
3085 PyObject *__pyx_t_1 = NULL;
3086 PyObject *__pyx_t_2 = NULL;
3087 int __pyx_t_3;
3088 __Pyx_RefNannySetupContext("Poll");
3089 __Pyx_INCREF((PyObject *)__pyx_v_self);
3090
3091 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":508
3092 * """
3093 * cdef PmError err
3094 * self._check_open() # <<<<<<<<<<<<<<
3095 *
3096 * err = Pm_Poll(self.midi)
3097 */
3098 __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___check_open); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3099 __Pyx_GOTREF(__pyx_t_1);
3100 __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3101 __Pyx_GOTREF(__pyx_t_2);
3102 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3103 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3104
3105 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":510
3106 * self._check_open()
3107 *
3108 * err = Pm_Poll(self.midi) # <<<<<<<<<<<<<<
3109 * if err < 0: raise Exception, Pm_GetErrorText(err)
3110 * return err
3111 */
3112 __pyx_v_err = Pm_Poll(((struct __pyx_obj_11_pyportmidi_Input *)__pyx_v_self)->midi);
3113
3114 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":511
3115 *
3116 * err = Pm_Poll(self.midi)
3117 * if err < 0: raise Exception, Pm_GetErrorText(err) # <<<<<<<<<<<<<<
3118 * return err
3119 *
3120 */
3121 __pyx_t_3 = (__pyx_v_err < 0);
3122 if (__pyx_t_3) {
3123 __pyx_t_2 = __Pyx_PyBytes_FromString(Pm_GetErrorText(__pyx_v_err)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3124 __Pyx_GOTREF(((PyObject *)__pyx_t_2));
3125 __Pyx_Raise(__pyx_builtin_Exception, ((PyObject *)__pyx_t_2), 0);
3126 __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
3127 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3128 goto __pyx_L5;
3129 }
3130 __pyx_L5:;
3131
3132 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":512
3133 * err = Pm_Poll(self.midi)
3134 * if err < 0: raise Exception, Pm_GetErrorText(err)
3135 * return err # <<<<<<<<<<<<<<
3136 *
3137 * def Read(self,length):
3138 */
3139 __Pyx_XDECREF(__pyx_r);
3140 __pyx_t_2 = PyInt_FromLong(__pyx_v_err); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 512; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3141 __Pyx_GOTREF(__pyx_t_2);
3142 __pyx_r = __pyx_t_2;
3143 __pyx_t_2 = 0;
3144 goto __pyx_L0;
3145
3146 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
3147 goto __pyx_L0;
3148 __pyx_L1_error:;
3149 __Pyx_XDECREF(__pyx_t_1);
3150 __Pyx_XDECREF(__pyx_t_2);
3151 __Pyx_AddTraceback("_pyportmidi.Input.Poll");
3152 __pyx_r = NULL;
3153 __pyx_L0:;
3154 __Pyx_DECREF((PyObject *)__pyx_v_self);
3155 __Pyx_XGIVEREF(__pyx_r);
3156 __Pyx_RefNannyFinishContext();
3157 return __pyx_r;
3158 }
3159
3160 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":514
3161 * return err
3162 *
3163 * def Read(self,length): # <<<<<<<<<<<<<<
3164 * """
3165 * Read(length): returns up to <length> midi events stored in
3166 */
3167
3168 static PyObject *__pyx_pf_11_pyportmidi_5Input_Read(PyObject *__pyx_v_self, PyObject *__pyx_v_length); /*proto*/
3169 static char __pyx_doc_11_pyportmidi_5Input_Read[] = "\nRead(length): returns up to <length> midi events stored in\nthe buffer and returns them as a list:\n[[[status,data1,data2,data3],timestamp],\n [[status,data1,data2,data3],timestamp],...]\nexample: Read(50) returns all the events in the buffer,\n up to 50 events.\n ";
__pyx_pf_11_pyportmidi_5Input_Read(PyObject * __pyx_v_self,PyObject * __pyx_v_length)3170 static PyObject *__pyx_pf_11_pyportmidi_5Input_Read(PyObject *__pyx_v_self, PyObject *__pyx_v_length) {
3171 PmEvent __pyx_v_buffer[1024];
3172 PyObject *__pyx_v_x;
3173 PyObject *__pyx_v_NumEvents;
3174 PyObject *__pyx_v_loop;
3175 PyObject *__pyx_r = NULL;
3176 PyObject *__pyx_t_1 = NULL;
3177 PyObject *__pyx_t_2 = NULL;
3178 int __pyx_t_3;
3179 long __pyx_t_4;
3180 PmError __pyx_t_5;
3181 Py_ssize_t __pyx_t_6;
3182 Py_ssize_t __pyx_t_7;
3183 PyObject *__pyx_t_8 = NULL;
3184 PyObject *__pyx_t_9 = NULL;
3185 PyObject *__pyx_t_10 = NULL;
3186 PyObject *__pyx_t_11 = NULL;
3187 __Pyx_RefNannySetupContext("Read");
3188 __Pyx_INCREF((PyObject *)__pyx_v_self);
3189 __Pyx_INCREF(__pyx_v_length);
3190 __pyx_v_x = Py_None; __Pyx_INCREF(Py_None);
3191 __pyx_v_NumEvents = Py_None; __Pyx_INCREF(Py_None);
3192 __pyx_v_loop = Py_None; __Pyx_INCREF(Py_None);
3193
3194 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":525
3195 * cdef PmEvent buffer[1024]
3196 *
3197 * self._check_open() # <<<<<<<<<<<<<<
3198 *
3199 * x = []
3200 */
3201 __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___check_open); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3202 __Pyx_GOTREF(__pyx_t_1);
3203 __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3204 __Pyx_GOTREF(__pyx_t_2);
3205 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3206 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3207
3208 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":527
3209 * self._check_open()
3210 *
3211 * x = [] # <<<<<<<<<<<<<<
3212 *
3213 * if length > 1024: raise IndexError, 'maximum buffer length is 1024'
3214 */
3215 __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3216 __Pyx_GOTREF(((PyObject *)__pyx_t_2));
3217 __Pyx_DECREF(__pyx_v_x);
3218 __pyx_v_x = ((PyObject *)__pyx_t_2);
3219 __pyx_t_2 = 0;
3220
3221 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":529
3222 * x = []
3223 *
3224 * if length > 1024: raise IndexError, 'maximum buffer length is 1024' # <<<<<<<<<<<<<<
3225 * if length < 1: raise IndexError, 'minimum buffer length is 1'
3226 * NumEvents = Pm_Read(self.midi,buffer,length)
3227 */
3228 __pyx_t_2 = PyObject_RichCompare(__pyx_v_length, __pyx_int_1024, Py_GT); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3229 __Pyx_GOTREF(__pyx_t_2);
3230 __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3231 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3232 if (__pyx_t_3) {
3233 __Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_kp_s_15), 0);
3234 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3235 goto __pyx_L5;
3236 }
3237 __pyx_L5:;
3238
3239 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":530
3240 *
3241 * if length > 1024: raise IndexError, 'maximum buffer length is 1024'
3242 * if length < 1: raise IndexError, 'minimum buffer length is 1' # <<<<<<<<<<<<<<
3243 * NumEvents = Pm_Read(self.midi,buffer,length)
3244 * if NumEvents < 0: raise Exception, Pm_GetErrorText(NumEvents)
3245 */
3246 __pyx_t_2 = PyObject_RichCompare(__pyx_v_length, __pyx_int_1, Py_LT); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3247 __Pyx_GOTREF(__pyx_t_2);
3248 __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3249 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3250 if (__pyx_t_3) {
3251 __Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_kp_s_16), 0);
3252 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3253 goto __pyx_L6;
3254 }
3255 __pyx_L6:;
3256
3257 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":531
3258 * if length > 1024: raise IndexError, 'maximum buffer length is 1024'
3259 * if length < 1: raise IndexError, 'minimum buffer length is 1'
3260 * NumEvents = Pm_Read(self.midi,buffer,length) # <<<<<<<<<<<<<<
3261 * if NumEvents < 0: raise Exception, Pm_GetErrorText(NumEvents)
3262 * x=[]
3263 */
3264 __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_v_length); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3265 __pyx_t_2 = PyInt_FromLong(Pm_Read(((struct __pyx_obj_11_pyportmidi_Input *)__pyx_v_self)->midi, __pyx_v_buffer, __pyx_t_4)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3266 __Pyx_GOTREF(__pyx_t_2);
3267 __Pyx_DECREF(__pyx_v_NumEvents);
3268 __pyx_v_NumEvents = __pyx_t_2;
3269 __pyx_t_2 = 0;
3270
3271 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":532
3272 * if length < 1: raise IndexError, 'minimum buffer length is 1'
3273 * NumEvents = Pm_Read(self.midi,buffer,length)
3274 * if NumEvents < 0: raise Exception, Pm_GetErrorText(NumEvents) # <<<<<<<<<<<<<<
3275 * x=[]
3276 * if NumEvents >= 1:
3277 */
3278 __pyx_t_2 = PyObject_RichCompare(__pyx_v_NumEvents, __pyx_int_0, Py_LT); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 532; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3279 __Pyx_GOTREF(__pyx_t_2);
3280 __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 532; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3281 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3282 if (__pyx_t_3) {
3283 __pyx_t_5 = ((PmError)PyInt_AsLong(__pyx_v_NumEvents)); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 532; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3284 __pyx_t_2 = __Pyx_PyBytes_FromString(Pm_GetErrorText(__pyx_t_5)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 532; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3285 __Pyx_GOTREF(((PyObject *)__pyx_t_2));
3286 __Pyx_Raise(__pyx_builtin_Exception, ((PyObject *)__pyx_t_2), 0);
3287 __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
3288 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 532; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3289 goto __pyx_L7;
3290 }
3291 __pyx_L7:;
3292
3293 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":533
3294 * NumEvents = Pm_Read(self.midi,buffer,length)
3295 * if NumEvents < 0: raise Exception, Pm_GetErrorText(NumEvents)
3296 * x=[] # <<<<<<<<<<<<<<
3297 * if NumEvents >= 1:
3298 * for loop in range(NumEvents):
3299 */
3300 __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 533; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3301 __Pyx_GOTREF(((PyObject *)__pyx_t_2));
3302 __Pyx_DECREF(__pyx_v_x);
3303 __pyx_v_x = ((PyObject *)__pyx_t_2);
3304 __pyx_t_2 = 0;
3305
3306 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":534
3307 * if NumEvents < 0: raise Exception, Pm_GetErrorText(NumEvents)
3308 * x=[]
3309 * if NumEvents >= 1: # <<<<<<<<<<<<<<
3310 * for loop in range(NumEvents):
3311 * x.append([[buffer[loop].message & 0xff, (buffer[loop].message >> 8) & 0xFF, (buffer[loop].message >> 16) & 0xFF, (buffer[loop].message >> 24) & 0xFF], buffer[loop].timestamp])
3312 */
3313 __pyx_t_2 = PyObject_RichCompare(__pyx_v_NumEvents, __pyx_int_1, Py_GE); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 534; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3314 __Pyx_GOTREF(__pyx_t_2);
3315 __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 534; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3316 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3317 if (__pyx_t_3) {
3318
3319 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":535
3320 * x=[]
3321 * if NumEvents >= 1:
3322 * for loop in range(NumEvents): # <<<<<<<<<<<<<<
3323 * x.append([[buffer[loop].message & 0xff, (buffer[loop].message >> 8) & 0xFF, (buffer[loop].message >> 16) & 0xFF, (buffer[loop].message >> 24) & 0xFF], buffer[loop].timestamp])
3324 * return x
3325 */
3326 __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3327 __Pyx_GOTREF(__pyx_t_2);
3328 __Pyx_INCREF(__pyx_v_NumEvents);
3329 PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_NumEvents);
3330 __Pyx_GIVEREF(__pyx_v_NumEvents);
3331 __pyx_t_1 = PyObject_Call(__pyx_builtin_range, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3332 __Pyx_GOTREF(__pyx_t_1);
3333 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3334 if (PyList_CheckExact(__pyx_t_1) || PyTuple_CheckExact(__pyx_t_1)) {
3335 __pyx_t_6 = 0; __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2);
3336 } else {
3337 __pyx_t_6 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3338 __Pyx_GOTREF(__pyx_t_2);
3339 }
3340 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3341 for (;;) {
3342 if (likely(PyList_CheckExact(__pyx_t_2))) {
3343 if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_2)) break;
3344 __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++;
3345 } else if (likely(PyTuple_CheckExact(__pyx_t_2))) {
3346 if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
3347 __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++;
3348 } else {
3349 __pyx_t_1 = PyIter_Next(__pyx_t_2);
3350 if (!__pyx_t_1) {
3351 if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3352 break;
3353 }
3354 __Pyx_GOTREF(__pyx_t_1);
3355 }
3356 __Pyx_DECREF(__pyx_v_loop);
3357 __pyx_v_loop = __pyx_t_1;
3358 __pyx_t_1 = 0;
3359
3360 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":536
3361 * if NumEvents >= 1:
3362 * for loop in range(NumEvents):
3363 * x.append([[buffer[loop].message & 0xff, (buffer[loop].message >> 8) & 0xFF, (buffer[loop].message >> 16) & 0xFF, (buffer[loop].message >> 24) & 0xFF], buffer[loop].timestamp]) # <<<<<<<<<<<<<<
3364 * return x
3365 */
3366 __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_v_loop); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3367 __pyx_t_1 = __Pyx_PyInt_to_py_PmMessage(((__pyx_v_buffer[__pyx_t_7]).message & 0xff)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3368 __Pyx_GOTREF(__pyx_t_1);
3369 __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_v_loop); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3370 __pyx_t_8 = __Pyx_PyInt_to_py_PmMessage((((__pyx_v_buffer[__pyx_t_7]).message >> 8) & 0xFF)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3371 __Pyx_GOTREF(__pyx_t_8);
3372 __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_v_loop); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3373 __pyx_t_9 = __Pyx_PyInt_to_py_PmMessage((((__pyx_v_buffer[__pyx_t_7]).message >> 16) & 0xFF)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3374 __Pyx_GOTREF(__pyx_t_9);
3375 __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_v_loop); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3376 __pyx_t_10 = __Pyx_PyInt_to_py_PmMessage((((__pyx_v_buffer[__pyx_t_7]).message >> 24) & 0xFF)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3377 __Pyx_GOTREF(__pyx_t_10);
3378 __pyx_t_11 = PyList_New(4); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3379 __Pyx_GOTREF(((PyObject *)__pyx_t_11));
3380 PyList_SET_ITEM(__pyx_t_11, 0, __pyx_t_1);
3381 __Pyx_GIVEREF(__pyx_t_1);
3382 PyList_SET_ITEM(__pyx_t_11, 1, __pyx_t_8);
3383 __Pyx_GIVEREF(__pyx_t_8);
3384 PyList_SET_ITEM(__pyx_t_11, 2, __pyx_t_9);
3385 __Pyx_GIVEREF(__pyx_t_9);
3386 PyList_SET_ITEM(__pyx_t_11, 3, __pyx_t_10);
3387 __Pyx_GIVEREF(__pyx_t_10);
3388 __pyx_t_1 = 0;
3389 __pyx_t_8 = 0;
3390 __pyx_t_9 = 0;
3391 __pyx_t_10 = 0;
3392 __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_v_loop); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3393 __pyx_t_10 = __Pyx_PyInt_to_py_PmTimestamp((__pyx_v_buffer[__pyx_t_7]).timestamp); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3394 __Pyx_GOTREF(__pyx_t_10);
3395 __pyx_t_9 = PyList_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3396 __Pyx_GOTREF(((PyObject *)__pyx_t_9));
3397 PyList_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_t_11));
3398 __Pyx_GIVEREF(((PyObject *)__pyx_t_11));
3399 PyList_SET_ITEM(__pyx_t_9, 1, __pyx_t_10);
3400 __Pyx_GIVEREF(__pyx_t_10);
3401 __pyx_t_11 = 0;
3402 __pyx_t_10 = 0;
3403 __pyx_t_10 = __Pyx_PyObject_Append(__pyx_v_x, ((PyObject *)__pyx_t_9)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3404 __Pyx_GOTREF(__pyx_t_10);
3405 __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
3406 __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
3407 }
3408 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3409 goto __pyx_L8;
3410 }
3411 __pyx_L8:;
3412
3413 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":537
3414 * for loop in range(NumEvents):
3415 * x.append([[buffer[loop].message & 0xff, (buffer[loop].message >> 8) & 0xFF, (buffer[loop].message >> 16) & 0xFF, (buffer[loop].message >> 24) & 0xFF], buffer[loop].timestamp])
3416 * return x # <<<<<<<<<<<<<<
3417 */
3418 __Pyx_XDECREF(__pyx_r);
3419 __Pyx_INCREF(__pyx_v_x);
3420 __pyx_r = __pyx_v_x;
3421 goto __pyx_L0;
3422
3423 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
3424 goto __pyx_L0;
3425 __pyx_L1_error:;
3426 __Pyx_XDECREF(__pyx_t_1);
3427 __Pyx_XDECREF(__pyx_t_2);
3428 __Pyx_XDECREF(__pyx_t_8);
3429 __Pyx_XDECREF(__pyx_t_9);
3430 __Pyx_XDECREF(__pyx_t_10);
3431 __Pyx_XDECREF(__pyx_t_11);
3432 __Pyx_AddTraceback("_pyportmidi.Input.Read");
3433 __pyx_r = NULL;
3434 __pyx_L0:;
3435 __Pyx_DECREF(__pyx_v_x);
3436 __Pyx_DECREF(__pyx_v_NumEvents);
3437 __Pyx_DECREF(__pyx_v_loop);
3438 __Pyx_DECREF((PyObject *)__pyx_v_self);
3439 __Pyx_DECREF(__pyx_v_length);
3440 __Pyx_XGIVEREF(__pyx_r);
3441 __Pyx_RefNannyFinishContext();
3442 return __pyx_r;
3443 }
3444
__pyx_tp_new_11_pyportmidi_Output(PyTypeObject * t,PyObject * a,PyObject * k)3445 static PyObject *__pyx_tp_new_11_pyportmidi_Output(PyTypeObject *t, PyObject *a, PyObject *k) {
3446 PyObject *o = (*t->tp_alloc)(t, 0);
3447 if (!o) return 0;
3448 return o;
3449 }
3450
__pyx_tp_dealloc_11_pyportmidi_Output(PyObject * o)3451 static void __pyx_tp_dealloc_11_pyportmidi_Output(PyObject *o) {
3452 {
3453 PyObject *etype, *eval, *etb;
3454 PyErr_Fetch(&etype, &eval, &etb);
3455 ++Py_REFCNT(o);
3456 __pyx_pf_11_pyportmidi_6Output___dealloc__(o);
3457 if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
3458 --Py_REFCNT(o);
3459 PyErr_Restore(etype, eval, etb);
3460 }
3461 (*Py_TYPE(o)->tp_free)(o);
3462 }
3463
3464 static struct PyMethodDef __pyx_methods_11_pyportmidi_Output[] = {
3465 {__Pyx_NAMESTR("_check_open"), (PyCFunction)__pyx_pf_11_pyportmidi_6Output__check_open, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_11_pyportmidi_6Output__check_open)},
3466 {__Pyx_NAMESTR("Close"), (PyCFunction)__pyx_pf_11_pyportmidi_6Output_Close, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_11_pyportmidi_6Output_Close)},
3467 {__Pyx_NAMESTR("Abort"), (PyCFunction)__pyx_pf_11_pyportmidi_6Output_Abort, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_11_pyportmidi_6Output_Abort)},
3468 {__Pyx_NAMESTR("Write"), (PyCFunction)__pyx_pf_11_pyportmidi_6Output_Write, METH_O, __Pyx_DOCSTR(__pyx_doc_11_pyportmidi_6Output_Write)},
3469 {__Pyx_NAMESTR("WriteShort"), (PyCFunction)__pyx_pf_11_pyportmidi_6Output_WriteShort, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_11_pyportmidi_6Output_WriteShort)},
3470 {__Pyx_NAMESTR("WriteSysEx"), (PyCFunction)__pyx_pf_11_pyportmidi_6Output_WriteSysEx, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_11_pyportmidi_6Output_WriteSysEx)},
3471 {0, 0, 0, 0}
3472 };
3473
3474 static PyNumberMethods __pyx_tp_as_number_Output = {
3475 0, /*nb_add*/
3476 0, /*nb_subtract*/
3477 0, /*nb_multiply*/
3478 #if PY_MAJOR_VERSION < 3
3479 0, /*nb_divide*/
3480 #endif
3481 0, /*nb_remainder*/
3482 0, /*nb_divmod*/
3483 0, /*nb_power*/
3484 0, /*nb_negative*/
3485 0, /*nb_positive*/
3486 0, /*nb_absolute*/
3487 0, /*nb_nonzero*/
3488 0, /*nb_invert*/
3489 0, /*nb_lshift*/
3490 0, /*nb_rshift*/
3491 0, /*nb_and*/
3492 0, /*nb_xor*/
3493 0, /*nb_or*/
3494 #if PY_MAJOR_VERSION < 3
3495 0, /*nb_coerce*/
3496 #endif
3497 0, /*nb_int*/
3498 #if PY_MAJOR_VERSION >= 3
3499 0, /*reserved*/
3500 #else
3501 0, /*nb_long*/
3502 #endif
3503 0, /*nb_float*/
3504 #if PY_MAJOR_VERSION < 3
3505 0, /*nb_oct*/
3506 #endif
3507 #if PY_MAJOR_VERSION < 3
3508 0, /*nb_hex*/
3509 #endif
3510 0, /*nb_inplace_add*/
3511 0, /*nb_inplace_subtract*/
3512 0, /*nb_inplace_multiply*/
3513 #if PY_MAJOR_VERSION < 3
3514 0, /*nb_inplace_divide*/
3515 #endif
3516 0, /*nb_inplace_remainder*/
3517 0, /*nb_inplace_power*/
3518 0, /*nb_inplace_lshift*/
3519 0, /*nb_inplace_rshift*/
3520 0, /*nb_inplace_and*/
3521 0, /*nb_inplace_xor*/
3522 0, /*nb_inplace_or*/
3523 0, /*nb_floor_divide*/
3524 0, /*nb_true_divide*/
3525 0, /*nb_inplace_floor_divide*/
3526 0, /*nb_inplace_true_divide*/
3527 #if (PY_MAJOR_VERSION >= 3) || (Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX)
3528 0, /*nb_index*/
3529 #endif
3530 };
3531
3532 static PySequenceMethods __pyx_tp_as_sequence_Output = {
3533 0, /*sq_length*/
3534 0, /*sq_concat*/
3535 0, /*sq_repeat*/
3536 0, /*sq_item*/
3537 0, /*sq_slice*/
3538 0, /*sq_ass_item*/
3539 0, /*sq_ass_slice*/
3540 0, /*sq_contains*/
3541 0, /*sq_inplace_concat*/
3542 0, /*sq_inplace_repeat*/
3543 };
3544
3545 static PyMappingMethods __pyx_tp_as_mapping_Output = {
3546 0, /*mp_length*/
3547 0, /*mp_subscript*/
3548 0, /*mp_ass_subscript*/
3549 };
3550
3551 static PyBufferProcs __pyx_tp_as_buffer_Output = {
3552 #if PY_MAJOR_VERSION < 3
3553 0, /*bf_getreadbuffer*/
3554 #endif
3555 #if PY_MAJOR_VERSION < 3
3556 0, /*bf_getwritebuffer*/
3557 #endif
3558 #if PY_MAJOR_VERSION < 3
3559 0, /*bf_getsegcount*/
3560 #endif
3561 #if PY_MAJOR_VERSION < 3
3562 0, /*bf_getcharbuffer*/
3563 #endif
3564 #if PY_VERSION_HEX >= 0x02060000
3565 0, /*bf_getbuffer*/
3566 #endif
3567 #if PY_VERSION_HEX >= 0x02060000
3568 0, /*bf_releasebuffer*/
3569 #endif
3570 };
3571
3572 PyTypeObject __pyx_type_11_pyportmidi_Output = {
3573 PyVarObject_HEAD_INIT(0, 0)
3574 __Pyx_NAMESTR("_pyportmidi.Output"), /*tp_name*/
3575 sizeof(struct __pyx_obj_11_pyportmidi_Output), /*tp_basicsize*/
3576 0, /*tp_itemsize*/
3577 __pyx_tp_dealloc_11_pyportmidi_Output, /*tp_dealloc*/
3578 0, /*tp_print*/
3579 0, /*tp_getattr*/
3580 0, /*tp_setattr*/
3581 0, /*tp_compare*/
3582 0, /*tp_repr*/
3583 &__pyx_tp_as_number_Output, /*tp_as_number*/
3584 &__pyx_tp_as_sequence_Output, /*tp_as_sequence*/
3585 &__pyx_tp_as_mapping_Output, /*tp_as_mapping*/
3586 0, /*tp_hash*/
3587 0, /*tp_call*/
3588 0, /*tp_str*/
3589 0, /*tp_getattro*/
3590 0, /*tp_setattro*/
3591 &__pyx_tp_as_buffer_Output, /*tp_as_buffer*/
3592 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_NEWBUFFER, /*tp_flags*/
3593 __Pyx_DOCSTR("\nclass Output:\n define an output MIDI stream. Takes the form:\n x = pypm.Output(MidiOutputDevice, latency)\n latency is in ms.\n If latency = 0 then timestamps for output are ignored.\n "), /*tp_doc*/
3594 0, /*tp_traverse*/
3595 0, /*tp_clear*/
3596 0, /*tp_richcompare*/
3597 0, /*tp_weaklistoffset*/
3598 0, /*tp_iter*/
3599 0, /*tp_iternext*/
3600 __pyx_methods_11_pyportmidi_Output, /*tp_methods*/
3601 0, /*tp_members*/
3602 0, /*tp_getset*/
3603 0, /*tp_base*/
3604 0, /*tp_dict*/
3605 0, /*tp_descr_get*/
3606 0, /*tp_descr_set*/
3607 0, /*tp_dictoffset*/
3608 __pyx_pf_11_pyportmidi_6Output___init__, /*tp_init*/
3609 0, /*tp_alloc*/
3610 __pyx_tp_new_11_pyportmidi_Output, /*tp_new*/
3611 0, /*tp_free*/
3612 0, /*tp_is_gc*/
3613 0, /*tp_bases*/
3614 0, /*tp_mro*/
3615 0, /*tp_cache*/
3616 0, /*tp_subclasses*/
3617 0, /*tp_weaklist*/
3618 0, /*tp_del*/
3619 #if PY_VERSION_HEX >= 0x02060000
3620 0, /*tp_version_tag*/
3621 #endif
3622 };
3623
__pyx_tp_new_11_pyportmidi_Input(PyTypeObject * t,PyObject * a,PyObject * k)3624 static PyObject *__pyx_tp_new_11_pyportmidi_Input(PyTypeObject *t, PyObject *a, PyObject *k) {
3625 PyObject *o = (*t->tp_alloc)(t, 0);
3626 if (!o) return 0;
3627 return o;
3628 }
3629
__pyx_tp_dealloc_11_pyportmidi_Input(PyObject * o)3630 static void __pyx_tp_dealloc_11_pyportmidi_Input(PyObject *o) {
3631 {
3632 PyObject *etype, *eval, *etb;
3633 PyErr_Fetch(&etype, &eval, &etb);
3634 ++Py_REFCNT(o);
3635 __pyx_pf_11_pyportmidi_5Input___dealloc__(o);
3636 if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
3637 --Py_REFCNT(o);
3638 PyErr_Restore(etype, eval, etb);
3639 }
3640 (*Py_TYPE(o)->tp_free)(o);
3641 }
3642
3643 static struct PyMethodDef __pyx_methods_11_pyportmidi_Input[] = {
3644 {__Pyx_NAMESTR("_check_open"), (PyCFunction)__pyx_pf_11_pyportmidi_5Input__check_open, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_11_pyportmidi_5Input__check_open)},
3645 {__Pyx_NAMESTR("Close"), (PyCFunction)__pyx_pf_11_pyportmidi_5Input_Close, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_11_pyportmidi_5Input_Close)},
3646 {__Pyx_NAMESTR("SetFilter"), (PyCFunction)__pyx_pf_11_pyportmidi_5Input_SetFilter, METH_O, __Pyx_DOCSTR(__pyx_doc_11_pyportmidi_5Input_SetFilter)},
3647 {__Pyx_NAMESTR("SetChannelMask"), (PyCFunction)__pyx_pf_11_pyportmidi_5Input_SetChannelMask, METH_O, __Pyx_DOCSTR(__pyx_doc_11_pyportmidi_5Input_SetChannelMask)},
3648 {__Pyx_NAMESTR("Poll"), (PyCFunction)__pyx_pf_11_pyportmidi_5Input_Poll, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_11_pyportmidi_5Input_Poll)},
3649 {__Pyx_NAMESTR("Read"), (PyCFunction)__pyx_pf_11_pyportmidi_5Input_Read, METH_O, __Pyx_DOCSTR(__pyx_doc_11_pyportmidi_5Input_Read)},
3650 {0, 0, 0, 0}
3651 };
3652
3653 static PyNumberMethods __pyx_tp_as_number_Input = {
3654 0, /*nb_add*/
3655 0, /*nb_subtract*/
3656 0, /*nb_multiply*/
3657 #if PY_MAJOR_VERSION < 3
3658 0, /*nb_divide*/
3659 #endif
3660 0, /*nb_remainder*/
3661 0, /*nb_divmod*/
3662 0, /*nb_power*/
3663 0, /*nb_negative*/
3664 0, /*nb_positive*/
3665 0, /*nb_absolute*/
3666 0, /*nb_nonzero*/
3667 0, /*nb_invert*/
3668 0, /*nb_lshift*/
3669 0, /*nb_rshift*/
3670 0, /*nb_and*/
3671 0, /*nb_xor*/
3672 0, /*nb_or*/
3673 #if PY_MAJOR_VERSION < 3
3674 0, /*nb_coerce*/
3675 #endif
3676 0, /*nb_int*/
3677 #if PY_MAJOR_VERSION >= 3
3678 0, /*reserved*/
3679 #else
3680 0, /*nb_long*/
3681 #endif
3682 0, /*nb_float*/
3683 #if PY_MAJOR_VERSION < 3
3684 0, /*nb_oct*/
3685 #endif
3686 #if PY_MAJOR_VERSION < 3
3687 0, /*nb_hex*/
3688 #endif
3689 0, /*nb_inplace_add*/
3690 0, /*nb_inplace_subtract*/
3691 0, /*nb_inplace_multiply*/
3692 #if PY_MAJOR_VERSION < 3
3693 0, /*nb_inplace_divide*/
3694 #endif
3695 0, /*nb_inplace_remainder*/
3696 0, /*nb_inplace_power*/
3697 0, /*nb_inplace_lshift*/
3698 0, /*nb_inplace_rshift*/
3699 0, /*nb_inplace_and*/
3700 0, /*nb_inplace_xor*/
3701 0, /*nb_inplace_or*/
3702 0, /*nb_floor_divide*/
3703 0, /*nb_true_divide*/
3704 0, /*nb_inplace_floor_divide*/
3705 0, /*nb_inplace_true_divide*/
3706 #if (PY_MAJOR_VERSION >= 3) || (Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX)
3707 0, /*nb_index*/
3708 #endif
3709 };
3710
3711 static PySequenceMethods __pyx_tp_as_sequence_Input = {
3712 0, /*sq_length*/
3713 0, /*sq_concat*/
3714 0, /*sq_repeat*/
3715 0, /*sq_item*/
3716 0, /*sq_slice*/
3717 0, /*sq_ass_item*/
3718 0, /*sq_ass_slice*/
3719 0, /*sq_contains*/
3720 0, /*sq_inplace_concat*/
3721 0, /*sq_inplace_repeat*/
3722 };
3723
3724 static PyMappingMethods __pyx_tp_as_mapping_Input = {
3725 0, /*mp_length*/
3726 0, /*mp_subscript*/
3727 0, /*mp_ass_subscript*/
3728 };
3729
3730 static PyBufferProcs __pyx_tp_as_buffer_Input = {
3731 #if PY_MAJOR_VERSION < 3
3732 0, /*bf_getreadbuffer*/
3733 #endif
3734 #if PY_MAJOR_VERSION < 3
3735 0, /*bf_getwritebuffer*/
3736 #endif
3737 #if PY_MAJOR_VERSION < 3
3738 0, /*bf_getsegcount*/
3739 #endif
3740 #if PY_MAJOR_VERSION < 3
3741 0, /*bf_getcharbuffer*/
3742 #endif
3743 #if PY_VERSION_HEX >= 0x02060000
3744 0, /*bf_getbuffer*/
3745 #endif
3746 #if PY_VERSION_HEX >= 0x02060000
3747 0, /*bf_releasebuffer*/
3748 #endif
3749 };
3750
3751 PyTypeObject __pyx_type_11_pyportmidi_Input = {
3752 PyVarObject_HEAD_INIT(0, 0)
3753 __Pyx_NAMESTR("_pyportmidi.Input"), /*tp_name*/
3754 sizeof(struct __pyx_obj_11_pyportmidi_Input), /*tp_basicsize*/
3755 0, /*tp_itemsize*/
3756 __pyx_tp_dealloc_11_pyportmidi_Input, /*tp_dealloc*/
3757 0, /*tp_print*/
3758 0, /*tp_getattr*/
3759 0, /*tp_setattr*/
3760 0, /*tp_compare*/
3761 0, /*tp_repr*/
3762 &__pyx_tp_as_number_Input, /*tp_as_number*/
3763 &__pyx_tp_as_sequence_Input, /*tp_as_sequence*/
3764 &__pyx_tp_as_mapping_Input, /*tp_as_mapping*/
3765 0, /*tp_hash*/
3766 0, /*tp_call*/
3767 0, /*tp_str*/
3768 0, /*tp_getattro*/
3769 0, /*tp_setattro*/
3770 &__pyx_tp_as_buffer_Input, /*tp_as_buffer*/
3771 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_NEWBUFFER, /*tp_flags*/
3772 __Pyx_DOCSTR("\nclass Input:\n define an input MIDI stream. Takes the form:\n x = pypm.Input(MidiInputDevice)\n "), /*tp_doc*/
3773 0, /*tp_traverse*/
3774 0, /*tp_clear*/
3775 0, /*tp_richcompare*/
3776 0, /*tp_weaklistoffset*/
3777 0, /*tp_iter*/
3778 0, /*tp_iternext*/
3779 __pyx_methods_11_pyportmidi_Input, /*tp_methods*/
3780 0, /*tp_members*/
3781 0, /*tp_getset*/
3782 0, /*tp_base*/
3783 0, /*tp_dict*/
3784 0, /*tp_descr_get*/
3785 0, /*tp_descr_set*/
3786 0, /*tp_dictoffset*/
3787 __pyx_pf_11_pyportmidi_5Input___init__, /*tp_init*/
3788 0, /*tp_alloc*/
3789 __pyx_tp_new_11_pyportmidi_Input, /*tp_new*/
3790 0, /*tp_free*/
3791 0, /*tp_is_gc*/
3792 0, /*tp_bases*/
3793 0, /*tp_mro*/
3794 0, /*tp_cache*/
3795 0, /*tp_subclasses*/
3796 0, /*tp_weaklist*/
3797 0, /*tp_del*/
3798 #if PY_VERSION_HEX >= 0x02060000
3799 0, /*tp_version_tag*/
3800 #endif
3801 };
3802
3803 static struct PyMethodDef __pyx_methods[] = {
3804 {__Pyx_NAMESTR("Initialize"), (PyCFunction)__pyx_pf_11_pyportmidi_Initialize, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_11_pyportmidi_Initialize)},
3805 {__Pyx_NAMESTR("Terminate"), (PyCFunction)__pyx_pf_11_pyportmidi_Terminate, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_11_pyportmidi_Terminate)},
3806 {__Pyx_NAMESTR("GetDefaultInputDeviceID"), (PyCFunction)__pyx_pf_11_pyportmidi_GetDefaultInputDeviceID, METH_NOARGS, __Pyx_DOCSTR(0)},
3807 {__Pyx_NAMESTR("GetDefaultOutputDeviceID"), (PyCFunction)__pyx_pf_11_pyportmidi_GetDefaultOutputDeviceID, METH_NOARGS, __Pyx_DOCSTR(0)},
3808 {__Pyx_NAMESTR("CountDevices"), (PyCFunction)__pyx_pf_11_pyportmidi_CountDevices, METH_NOARGS, __Pyx_DOCSTR(0)},
3809 {__Pyx_NAMESTR("GetDeviceInfo"), (PyCFunction)__pyx_pf_11_pyportmidi_GetDeviceInfo, METH_O, __Pyx_DOCSTR(__pyx_doc_11_pyportmidi_GetDeviceInfo)},
3810 {__Pyx_NAMESTR("Time"), (PyCFunction)__pyx_pf_11_pyportmidi_Time, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_11_pyportmidi_Time)},
3811 {__Pyx_NAMESTR("GetErrorText"), (PyCFunction)__pyx_pf_11_pyportmidi_GetErrorText, METH_O, __Pyx_DOCSTR(__pyx_doc_11_pyportmidi_GetErrorText)},
3812 {__Pyx_NAMESTR("Channel"), (PyCFunction)__pyx_pf_11_pyportmidi_Channel, METH_O, __Pyx_DOCSTR(__pyx_doc_11_pyportmidi_Channel)},
3813 {0, 0, 0, 0}
3814 };
3815
3816 static void __pyx_init_filenames(void); /*proto*/
3817
3818 #if PY_MAJOR_VERSION >= 3
3819 static struct PyModuleDef __pyx_moduledef = {
3820 PyModuleDef_HEAD_INIT,
3821 __Pyx_NAMESTR("_pyportmidi"),
3822 0, /* m_doc */
3823 -1, /* m_size */
3824 __pyx_methods /* m_methods */,
3825 NULL, /* m_reload */
3826 NULL, /* m_traverse */
3827 NULL, /* m_clear */
3828 NULL /* m_free */
3829 };
3830 #endif
3831
3832 static __Pyx_StringTabEntry __pyx_string_tab[] = {
3833 {&__pyx_kp_s_1, __pyx_k_1, sizeof(__pyx_k_1), 0, 0, 1, 0},
3834 {&__pyx_kp_s_10, __pyx_k_10, sizeof(__pyx_k_10), 0, 0, 1, 0},
3835 {&__pyx_kp_s_11, __pyx_k_11, sizeof(__pyx_k_11), 0, 0, 1, 0},
3836 {&__pyx_kp_s_12, __pyx_k_12, sizeof(__pyx_k_12), 0, 0, 1, 0},
3837 {&__pyx_kp_s_13, __pyx_k_13, sizeof(__pyx_k_13), 0, 0, 1, 0},
3838 {&__pyx_kp_s_14, __pyx_k_14, sizeof(__pyx_k_14), 0, 0, 1, 0},
3839 {&__pyx_kp_s_15, __pyx_k_15, sizeof(__pyx_k_15), 0, 0, 1, 0},
3840 {&__pyx_kp_s_16, __pyx_k_16, sizeof(__pyx_k_16), 0, 0, 1, 0},
3841 {&__pyx_kp_s_17, __pyx_k_17, sizeof(__pyx_k_17), 0, 0, 1, 0},
3842 {&__pyx_n_s_18, __pyx_k_18, sizeof(__pyx_k_18), 0, 0, 1, 1},
3843 {&__pyx_n_s_19, __pyx_k_19, sizeof(__pyx_k_19), 0, 0, 1, 1},
3844 {&__pyx_kp_s_2, __pyx_k_2, sizeof(__pyx_k_2), 0, 0, 1, 0},
3845 {&__pyx_kp_u_20, __pyx_k_20, sizeof(__pyx_k_20), 0, 1, 0, 0},
3846 {&__pyx_kp_u_21, __pyx_k_21, sizeof(__pyx_k_21), 0, 1, 0, 0},
3847 {&__pyx_kp_u_22, __pyx_k_22, sizeof(__pyx_k_22), 0, 1, 0, 0},
3848 {&__pyx_kp_u_23, __pyx_k_23, sizeof(__pyx_k_23), 0, 1, 0, 0},
3849 {&__pyx_kp_u_24, __pyx_k_24, sizeof(__pyx_k_24), 0, 1, 0, 0},
3850 {&__pyx_kp_u_25, __pyx_k_25, sizeof(__pyx_k_25), 0, 1, 0, 0},
3851 {&__pyx_kp_u_26, __pyx_k_26, sizeof(__pyx_k_26), 0, 1, 0, 0},
3852 {&__pyx_kp_u_27, __pyx_k_27, sizeof(__pyx_k_27), 0, 1, 0, 0},
3853 {&__pyx_kp_u_28, __pyx_k_28, sizeof(__pyx_k_28), 0, 1, 0, 0},
3854 {&__pyx_kp_u_29, __pyx_k_29, sizeof(__pyx_k_29), 0, 1, 0, 0},
3855 {&__pyx_kp_s_3, __pyx_k_3, sizeof(__pyx_k_3), 0, 0, 1, 0},
3856 {&__pyx_kp_u_30, __pyx_k_30, sizeof(__pyx_k_30), 0, 1, 0, 0},
3857 {&__pyx_kp_u_31, __pyx_k_31, sizeof(__pyx_k_31), 0, 1, 0, 0},
3858 {&__pyx_kp_u_32, __pyx_k_32, sizeof(__pyx_k_32), 0, 1, 0, 0},
3859 {&__pyx_kp_u_33, __pyx_k_33, sizeof(__pyx_k_33), 0, 1, 0, 0},
3860 {&__pyx_kp_u_34, __pyx_k_34, sizeof(__pyx_k_34), 0, 1, 0, 0},
3861 {&__pyx_kp_u_35, __pyx_k_35, sizeof(__pyx_k_35), 0, 1, 0, 0},
3862 {&__pyx_kp_u_36, __pyx_k_36, sizeof(__pyx_k_36), 0, 1, 0, 0},
3863 {&__pyx_kp_u_37, __pyx_k_37, sizeof(__pyx_k_37), 0, 1, 0, 0},
3864 {&__pyx_kp_s_4, __pyx_k_4, sizeof(__pyx_k_4), 0, 0, 1, 0},
3865 {&__pyx_kp_s_5, __pyx_k_5, sizeof(__pyx_k_5), 0, 0, 1, 0},
3866 {&__pyx_kp_s_6, __pyx_k_6, sizeof(__pyx_k_6), 0, 0, 1, 0},
3867 {&__pyx_kp_s_7, __pyx_k_7, sizeof(__pyx_k_7), 0, 0, 1, 0},
3868 {&__pyx_kp_s_8, __pyx_k_8, sizeof(__pyx_k_8), 0, 0, 1, 0},
3869 {&__pyx_kp_s_9, __pyx_k_9, sizeof(__pyx_k_9), 0, 0, 1, 0},
3870 {&__pyx_n_s__Abort, __pyx_k__Abort, sizeof(__pyx_k__Abort), 0, 0, 1, 1},
3871 {&__pyx_n_s__B, __pyx_k__B, sizeof(__pyx_k__B), 0, 0, 1, 1},
3872 {&__pyx_n_s__Channel, __pyx_k__Channel, sizeof(__pyx_k__Channel), 0, 0, 1, 1},
3873 {&__pyx_n_s__Close, __pyx_k__Close, sizeof(__pyx_k__Close), 0, 0, 1, 1},
3874 {&__pyx_n_s__Exception, __pyx_k__Exception, sizeof(__pyx_k__Exception), 0, 0, 1, 1},
3875 {&__pyx_n_s__FALSE, __pyx_k__FALSE, sizeof(__pyx_k__FALSE), 0, 0, 1, 1},
3876 {&__pyx_n_s__FILT_ACTIVE, __pyx_k__FILT_ACTIVE, sizeof(__pyx_k__FILT_ACTIVE), 0, 0, 1, 1},
3877 {&__pyx_n_s__FILT_AFTERTOUCH, __pyx_k__FILT_AFTERTOUCH, sizeof(__pyx_k__FILT_AFTERTOUCH), 0, 0, 1, 1},
3878 {&__pyx_n_s__FILT_CLOCK, __pyx_k__FILT_CLOCK, sizeof(__pyx_k__FILT_CLOCK), 0, 0, 1, 1},
3879 {&__pyx_n_s__FILT_CONTROL, __pyx_k__FILT_CONTROL, sizeof(__pyx_k__FILT_CONTROL), 0, 0, 1, 1},
3880 {&__pyx_n_s__FILT_F9, __pyx_k__FILT_F9, sizeof(__pyx_k__FILT_F9), 0, 0, 1, 1},
3881 {&__pyx_n_s__FILT_FD, __pyx_k__FILT_FD, sizeof(__pyx_k__FILT_FD), 0, 0, 1, 1},
3882 {&__pyx_n_s__FILT_MTC, __pyx_k__FILT_MTC, sizeof(__pyx_k__FILT_MTC), 0, 0, 1, 1},
3883 {&__pyx_n_s__FILT_NOTE, __pyx_k__FILT_NOTE, sizeof(__pyx_k__FILT_NOTE), 0, 0, 1, 1},
3884 {&__pyx_n_s__FILT_PITCHBEND, __pyx_k__FILT_PITCHBEND, sizeof(__pyx_k__FILT_PITCHBEND), 0, 0, 1, 1},
3885 {&__pyx_n_s__FILT_PLAY, __pyx_k__FILT_PLAY, sizeof(__pyx_k__FILT_PLAY), 0, 0, 1, 1},
3886 {&__pyx_n_s__FILT_PROGRAM, __pyx_k__FILT_PROGRAM, sizeof(__pyx_k__FILT_PROGRAM), 0, 0, 1, 1},
3887 {&__pyx_n_s__FILT_REALTIME, __pyx_k__FILT_REALTIME, sizeof(__pyx_k__FILT_REALTIME), 0, 0, 1, 1},
3888 {&__pyx_n_s__FILT_RESET, __pyx_k__FILT_RESET, sizeof(__pyx_k__FILT_RESET), 0, 0, 1, 1},
3889 {&__pyx_n_s__FILT_SONG_POSITION, __pyx_k__FILT_SONG_POSITION, sizeof(__pyx_k__FILT_SONG_POSITION), 0, 0, 1, 1},
3890 {&__pyx_n_s__FILT_SONG_SELECT, __pyx_k__FILT_SONG_SELECT, sizeof(__pyx_k__FILT_SONG_SELECT), 0, 0, 1, 1},
3891 {&__pyx_n_s__FILT_SYSEX, __pyx_k__FILT_SYSEX, sizeof(__pyx_k__FILT_SYSEX), 0, 0, 1, 1},
3892 {&__pyx_n_s__FILT_TICK, __pyx_k__FILT_TICK, sizeof(__pyx_k__FILT_TICK), 0, 0, 1, 1},
3893 {&__pyx_n_s__FILT_TUNE, __pyx_k__FILT_TUNE, sizeof(__pyx_k__FILT_TUNE), 0, 0, 1, 1},
3894 {&__pyx_n_s__FILT_UNDEFINED, __pyx_k__FILT_UNDEFINED, sizeof(__pyx_k__FILT_UNDEFINED), 0, 0, 1, 1},
3895 {&__pyx_n_s__GetDeviceInfo, __pyx_k__GetDeviceInfo, sizeof(__pyx_k__GetDeviceInfo), 0, 0, 1, 1},
3896 {&__pyx_n_s__GetErrorText, __pyx_k__GetErrorText, sizeof(__pyx_k__GetErrorText), 0, 0, 1, 1},
3897 {&__pyx_n_s__IndexError, __pyx_k__IndexError, sizeof(__pyx_k__IndexError), 0, 0, 1, 1},
3898 {&__pyx_n_s__Initialize, __pyx_k__Initialize, sizeof(__pyx_k__Initialize), 0, 0, 1, 1},
3899 {&__pyx_n_s__Input, __pyx_k__Input, sizeof(__pyx_k__Input), 0, 0, 1, 1},
3900 {&__pyx_n_s__InputDevice, __pyx_k__InputDevice, sizeof(__pyx_k__InputDevice), 0, 0, 1, 1},
3901 {&__pyx_n_s__Output, __pyx_k__Output, sizeof(__pyx_k__Output), 0, 0, 1, 1},
3902 {&__pyx_n_s__OutputDevice, __pyx_k__OutputDevice, sizeof(__pyx_k__OutputDevice), 0, 0, 1, 1},
3903 {&__pyx_n_s__Poll, __pyx_k__Poll, sizeof(__pyx_k__Poll), 0, 0, 1, 1},
3904 {&__pyx_n_s__Read, __pyx_k__Read, sizeof(__pyx_k__Read), 0, 0, 1, 1},
3905 {&__pyx_n_s__SetChannelMask, __pyx_k__SetChannelMask, sizeof(__pyx_k__SetChannelMask), 0, 0, 1, 1},
3906 {&__pyx_n_s__SetFilter, __pyx_k__SetFilter, sizeof(__pyx_k__SetFilter), 0, 0, 1, 1},
3907 {&__pyx_n_s__TRUE, __pyx_k__TRUE, sizeof(__pyx_k__TRUE), 0, 0, 1, 1},
3908 {&__pyx_n_s__Terminate, __pyx_k__Terminate, sizeof(__pyx_k__Terminate), 0, 0, 1, 1},
3909 {&__pyx_n_s__Time, __pyx_k__Time, sizeof(__pyx_k__Time), 0, 0, 1, 1},
3910 {&__pyx_n_s__Write, __pyx_k__Write, sizeof(__pyx_k__Write), 0, 0, 1, 1},
3911 {&__pyx_n_s__WriteShort, __pyx_k__WriteShort, sizeof(__pyx_k__WriteShort), 0, 0, 1, 1},
3912 {&__pyx_n_s__WriteSysEx, __pyx_k__WriteSysEx, sizeof(__pyx_k__WriteSysEx), 0, 0, 1, 1},
3913 {&__pyx_n_s____main__, __pyx_k____main__, sizeof(__pyx_k____main__), 0, 0, 1, 1},
3914 {&__pyx_n_s____test__, __pyx_k____test__, sizeof(__pyx_k____test__), 0, 0, 1, 1},
3915 {&__pyx_n_s____version__, __pyx_k____version__, sizeof(__pyx_k____version__), 0, 0, 1, 1},
3916 {&__pyx_n_s___aborted, __pyx_k___aborted, sizeof(__pyx_k___aborted), 0, 0, 1, 1},
3917 {&__pyx_n_s___check_open, __pyx_k___check_open, sizeof(__pyx_k___check_open), 0, 0, 1, 1},
3918 {&__pyx_n_s__array, __pyx_k__array, sizeof(__pyx_k__array), 0, 0, 1, 1},
3919 {&__pyx_n_s__buffersize, __pyx_k__buffersize, sizeof(__pyx_k__buffersize), 0, 0, 1, 1},
3920 {&__pyx_n_s__data1, __pyx_k__data1, sizeof(__pyx_k__data1), 0, 0, 1, 1},
3921 {&__pyx_n_s__data2, __pyx_k__data2, sizeof(__pyx_k__data2), 0, 0, 1, 1},
3922 {&__pyx_n_s__debug, __pyx_k__debug, sizeof(__pyx_k__debug), 0, 0, 1, 1},
3923 {&__pyx_n_s__i, __pyx_k__i, sizeof(__pyx_k__i), 0, 0, 1, 1},
3924 {&__pyx_n_s__input, __pyx_k__input, sizeof(__pyx_k__input), 0, 0, 1, 1},
3925 {&__pyx_n_s__interf, __pyx_k__interf, sizeof(__pyx_k__interf), 0, 0, 1, 1},
3926 {&__pyx_n_s__latency, __pyx_k__latency, sizeof(__pyx_k__latency), 0, 0, 1, 1},
3927 {&__pyx_n_s__message, __pyx_k__message, sizeof(__pyx_k__message), 0, 0, 1, 1},
3928 {&__pyx_n_s__midi, __pyx_k__midi, sizeof(__pyx_k__midi), 0, 0, 1, 1},
3929 {&__pyx_n_s__msg, __pyx_k__msg, sizeof(__pyx_k__msg), 0, 0, 1, 1},
3930 {&__pyx_n_s__name, __pyx_k__name, sizeof(__pyx_k__name), 0, 0, 1, 1},
3931 {&__pyx_n_s__opened, __pyx_k__opened, sizeof(__pyx_k__opened), 0, 0, 1, 1},
3932 {&__pyx_n_s__output, __pyx_k__output, sizeof(__pyx_k__output), 0, 0, 1, 1},
3933 {&__pyx_n_s__range, __pyx_k__range, sizeof(__pyx_k__range), 0, 0, 1, 1},
3934 {&__pyx_n_s__status, __pyx_k__status, sizeof(__pyx_k__status), 0, 0, 1, 1},
3935 {&__pyx_n_s__timestamp, __pyx_k__timestamp, sizeof(__pyx_k__timestamp), 0, 0, 1, 1},
3936 {&__pyx_n_s__tostring, __pyx_k__tostring, sizeof(__pyx_k__tostring), 0, 0, 1, 1},
3937 {&__pyx_n_s__when, __pyx_k__when, sizeof(__pyx_k__when), 0, 0, 1, 1},
3938 {0, 0, 0, 0, 0, 0, 0}
3939 };
__Pyx_InitCachedBuiltins(void)3940 static int __Pyx_InitCachedBuiltins(void) {
3941 __pyx_builtin_Exception = __Pyx_GetName(__pyx_b, __pyx_n_s__Exception); if (!__pyx_builtin_Exception) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3942 __pyx_builtin_IndexError = __Pyx_GetName(__pyx_b, __pyx_n_s__IndexError); if (!__pyx_builtin_IndexError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3943 __pyx_builtin_range = __Pyx_GetName(__pyx_b, __pyx_n_s__range); if (!__pyx_builtin_range) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
3944 return 0;
3945 __pyx_L1_error:;
3946 return -1;
3947 }
3948
__Pyx_InitGlobals(void)3949 static int __Pyx_InitGlobals(void) {
3950 if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3951 __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3952 __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3953 __pyx_int_8 = PyInt_FromLong(8); if (unlikely(!__pyx_int_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3954 __pyx_int_16 = PyInt_FromLong(16); if (unlikely(!__pyx_int_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3955 __pyx_int_0x1 = PyInt_FromLong(0x1); if (unlikely(!__pyx_int_0x1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3956 __pyx_int_0x2 = PyInt_FromLong(0x2); if (unlikely(!__pyx_int_0x2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3957 __pyx_int_0x4 = PyInt_FromLong(0x4); if (unlikely(!__pyx_int_0x4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3958 __pyx_int_0x8 = PyInt_FromLong(0x8); if (unlikely(!__pyx_int_0x8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3959 __pyx_int_0x10 = PyInt_FromLong(0x10); if (unlikely(!__pyx_int_0x10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3960 __pyx_int_0x20 = PyInt_FromLong(0x20); if (unlikely(!__pyx_int_0x20)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3961 __pyx_int_0x30 = PyInt_FromLong(0x30); if (unlikely(!__pyx_int_0x30)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3962 __pyx_int_0x40 = PyInt_FromLong(0x40); if (unlikely(!__pyx_int_0x40)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3963 __pyx_int_0x7F = PyInt_FromLong(0x7F); if (unlikely(!__pyx_int_0x7F)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3964 __pyx_int_0x80 = PyInt_FromLong(0x80); if (unlikely(!__pyx_int_0x80)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3965 __pyx_int_0xFF = PyInt_FromLong(0xFF); if (unlikely(!__pyx_int_0xFF)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3966 __pyx_int_1024 = PyInt_FromLong(1024); if (unlikely(!__pyx_int_1024)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3967 __pyx_int_4096 = PyInt_FromLong(4096); if (unlikely(!__pyx_int_4096)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3968 __pyx_int_0x100 = PyInt_FromLong(0x100); if (unlikely(!__pyx_int_0x100)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3969 __pyx_int_0x200 = PyInt_FromLong(0x200); if (unlikely(!__pyx_int_0x200)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3970 __pyx_int_0x300 = PyInt_FromLong(0x300); if (unlikely(!__pyx_int_0x300)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3971 __pyx_int_0x400 = PyInt_FromLong(0x400); if (unlikely(!__pyx_int_0x400)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3972 __pyx_int_0x800 = PyInt_FromLong(0x800); if (unlikely(!__pyx_int_0x800)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3973 __pyx_int_0x1000 = PyInt_FromLong(0x1000); if (unlikely(!__pyx_int_0x1000)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3974 __pyx_int_0x2000 = PyInt_FromLong(0x2000); if (unlikely(!__pyx_int_0x2000)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3975 __pyx_int_0x4000 = PyInt_FromLong(0x4000); if (unlikely(!__pyx_int_0x4000)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3976 __pyx_int_0x8000 = PyInt_FromLong(0x8000); if (unlikely(!__pyx_int_0x8000)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3977 __pyx_int_0xFF00 = PyInt_FromLong(0xFF00); if (unlikely(!__pyx_int_0xFF00)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3978 __pyx_int_0x10000 = PyInt_FromLong(0x10000); if (unlikely(!__pyx_int_0x10000)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3979 __pyx_int_0xFF0000 = PyInt_FromLong(0xFF0000); if (unlikely(!__pyx_int_0xFF0000)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
3980 return 0;
3981 __pyx_L1_error:;
3982 return -1;
3983 }
3984
3985 #if PY_MAJOR_VERSION < 3
3986 PyMODINIT_FUNC init_pyportmidi(void); /*proto*/
init_pyportmidi(void)3987 PyMODINIT_FUNC init_pyportmidi(void)
3988 #else
3989 PyMODINIT_FUNC PyInit__pyportmidi(void); /*proto*/
3990 PyMODINIT_FUNC PyInit__pyportmidi(void)
3991 #endif
3992 {
3993 PyObject *__pyx_t_1 = NULL;
3994 PyObject *__pyx_t_2 = NULL;
3995 PyObject *__pyx_t_3 = NULL;
3996 #if CYTHON_REFNANNY
3997 void* __pyx_refnanny = NULL;
3998 __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
3999 if (!__Pyx_RefNanny) {
4000 PyErr_Clear();
4001 __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
4002 if (!__Pyx_RefNanny)
4003 Py_FatalError("failed to import 'refnanny' module");
4004 }
4005 __pyx_refnanny = __Pyx_RefNanny->SetupContext("PyMODINIT_FUNC PyInit__pyportmidi(void)", __LINE__, __FILE__);
4006 #endif
4007 __pyx_init_filenames();
4008 __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4009 #if PY_MAJOR_VERSION < 3
4010 __pyx_empty_bytes = PyString_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4011 #else
4012 __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4013 #endif
4014 /*--- Library function declarations ---*/
4015 /*--- Threads initialization code ---*/
4016 #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
4017 #ifdef WITH_THREAD /* Python build with threading support? */
4018 PyEval_InitThreads();
4019 #endif
4020 #endif
4021 /*--- Module creation code ---*/
4022 #if PY_MAJOR_VERSION < 3
4023 __pyx_m = Py_InitModule4(__Pyx_NAMESTR("_pyportmidi"), __pyx_methods, 0, 0, PYTHON_API_VERSION);
4024 #else
4025 __pyx_m = PyModule_Create(&__pyx_moduledef);
4026 #endif
4027 if (!__pyx_m) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
4028 #if PY_MAJOR_VERSION < 3
4029 Py_INCREF(__pyx_m);
4030 #endif
4031 __pyx_b = PyImport_AddModule(__Pyx_NAMESTR(__Pyx_BUILTIN_MODULE_NAME));
4032 if (!__pyx_b) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
4033 if (__Pyx_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
4034 /*--- Initialize various global constants etc. ---*/
4035 if (unlikely(__Pyx_InitGlobals() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4036 if (__pyx_module_is_main__pyportmidi) {
4037 if (__Pyx_SetAttrString(__pyx_m, "__name__", __pyx_n_s____main__) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
4038 }
4039 /*--- Builtin init code ---*/
4040 if (unlikely(__Pyx_InitCachedBuiltins() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4041 /*--- Global init code ---*/
4042 /*--- Function export code ---*/
4043 /*--- Type init code ---*/
4044 if (PyType_Ready(&__pyx_type_11_pyportmidi_Output) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4045 if (__Pyx_SetAttrString(__pyx_m, "Output", (PyObject *)&__pyx_type_11_pyportmidi_Output) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4046 __pyx_ptype_11_pyportmidi_Output = &__pyx_type_11_pyportmidi_Output;
4047 if (PyType_Ready(&__pyx_type_11_pyportmidi_Input) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4048 if (__Pyx_SetAttrString(__pyx_m, "Input", (PyObject *)&__pyx_type_11_pyportmidi_Input) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4049 __pyx_ptype_11_pyportmidi_Input = &__pyx_type_11_pyportmidi_Input;
4050 /*--- Type import code ---*/
4051 /*--- Function import code ---*/
4052 /*--- Execution code ---*/
4053
4054 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":7
4055 * # harrison@media.mit.edu
4056 * # written in Pyrex
4057 * __version__="0.07" # <<<<<<<<<<<<<<
4058 *
4059 * import array
4060 */
4061 if (PyObject_SetAttr(__pyx_m, __pyx_n_s____version__, ((PyObject *)__pyx_kp_s_17)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4062
4063 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":9
4064 * __version__="0.07"
4065 *
4066 * import array # <<<<<<<<<<<<<<
4067 *
4068 * # CHANGES:
4069 */
4070 __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__array), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4071 __Pyx_GOTREF(__pyx_t_1);
4072 if (PyObject_SetAttr(__pyx_m, __pyx_n_s__array, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4073 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4074
4075 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":108
4076 * PtTimestamp Pt_Time()
4077 *
4078 * FILT_ACTIVE=0x1 # <<<<<<<<<<<<<<
4079 * FILT_SYSEX=0x2
4080 * FILT_CLOCK=0x4
4081 */
4082 if (PyObject_SetAttr(__pyx_m, __pyx_n_s__FILT_ACTIVE, __pyx_int_0x1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4083
4084 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":109
4085 *
4086 * FILT_ACTIVE=0x1
4087 * FILT_SYSEX=0x2 # <<<<<<<<<<<<<<
4088 * FILT_CLOCK=0x4
4089 * FILT_PLAY=0x8
4090 */
4091 if (PyObject_SetAttr(__pyx_m, __pyx_n_s__FILT_SYSEX, __pyx_int_0x2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4092
4093 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":110
4094 * FILT_ACTIVE=0x1
4095 * FILT_SYSEX=0x2
4096 * FILT_CLOCK=0x4 # <<<<<<<<<<<<<<
4097 * FILT_PLAY=0x8
4098 * FILT_F9=0x10
4099 */
4100 if (PyObject_SetAttr(__pyx_m, __pyx_n_s__FILT_CLOCK, __pyx_int_0x4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4101
4102 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":111
4103 * FILT_SYSEX=0x2
4104 * FILT_CLOCK=0x4
4105 * FILT_PLAY=0x8 # <<<<<<<<<<<<<<
4106 * FILT_F9=0x10
4107 * FILT_TICK=0x10
4108 */
4109 if (PyObject_SetAttr(__pyx_m, __pyx_n_s__FILT_PLAY, __pyx_int_0x8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4110
4111 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":112
4112 * FILT_CLOCK=0x4
4113 * FILT_PLAY=0x8
4114 * FILT_F9=0x10 # <<<<<<<<<<<<<<
4115 * FILT_TICK=0x10
4116 * FILT_FD=0x20
4117 */
4118 if (PyObject_SetAttr(__pyx_m, __pyx_n_s__FILT_F9, __pyx_int_0x10) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4119
4120 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":113
4121 * FILT_PLAY=0x8
4122 * FILT_F9=0x10
4123 * FILT_TICK=0x10 # <<<<<<<<<<<<<<
4124 * FILT_FD=0x20
4125 * FILT_UNDEFINED=0x30
4126 */
4127 if (PyObject_SetAttr(__pyx_m, __pyx_n_s__FILT_TICK, __pyx_int_0x10) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4128
4129 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":114
4130 * FILT_F9=0x10
4131 * FILT_TICK=0x10
4132 * FILT_FD=0x20 # <<<<<<<<<<<<<<
4133 * FILT_UNDEFINED=0x30
4134 * FILT_RESET=0x40
4135 */
4136 if (PyObject_SetAttr(__pyx_m, __pyx_n_s__FILT_FD, __pyx_int_0x20) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4137
4138 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":115
4139 * FILT_TICK=0x10
4140 * FILT_FD=0x20
4141 * FILT_UNDEFINED=0x30 # <<<<<<<<<<<<<<
4142 * FILT_RESET=0x40
4143 * FILT_REALTIME=0x7F
4144 */
4145 if (PyObject_SetAttr(__pyx_m, __pyx_n_s__FILT_UNDEFINED, __pyx_int_0x30) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4146
4147 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":116
4148 * FILT_FD=0x20
4149 * FILT_UNDEFINED=0x30
4150 * FILT_RESET=0x40 # <<<<<<<<<<<<<<
4151 * FILT_REALTIME=0x7F
4152 * FILT_NOTE=0x80
4153 */
4154 if (PyObject_SetAttr(__pyx_m, __pyx_n_s__FILT_RESET, __pyx_int_0x40) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4155
4156 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":117
4157 * FILT_UNDEFINED=0x30
4158 * FILT_RESET=0x40
4159 * FILT_REALTIME=0x7F # <<<<<<<<<<<<<<
4160 * FILT_NOTE=0x80
4161 * FILT_CHANNEL_AFTERTOUCH=0x100
4162 */
4163 if (PyObject_SetAttr(__pyx_m, __pyx_n_s__FILT_REALTIME, __pyx_int_0x7F) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4164
4165 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":118
4166 * FILT_RESET=0x40
4167 * FILT_REALTIME=0x7F
4168 * FILT_NOTE=0x80 # <<<<<<<<<<<<<<
4169 * FILT_CHANNEL_AFTERTOUCH=0x100
4170 * FILT_POLY_AFTERTOUCH=0x200
4171 */
4172 if (PyObject_SetAttr(__pyx_m, __pyx_n_s__FILT_NOTE, __pyx_int_0x80) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4173
4174 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":119
4175 * FILT_REALTIME=0x7F
4176 * FILT_NOTE=0x80
4177 * FILT_CHANNEL_AFTERTOUCH=0x100 # <<<<<<<<<<<<<<
4178 * FILT_POLY_AFTERTOUCH=0x200
4179 * FILT_AFTERTOUCH=0x300
4180 */
4181 if (PyObject_SetAttr(__pyx_m, __pyx_n_s_18, __pyx_int_0x100) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4182
4183 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":120
4184 * FILT_NOTE=0x80
4185 * FILT_CHANNEL_AFTERTOUCH=0x100
4186 * FILT_POLY_AFTERTOUCH=0x200 # <<<<<<<<<<<<<<
4187 * FILT_AFTERTOUCH=0x300
4188 * FILT_PROGRAM=0x400
4189 */
4190 if (PyObject_SetAttr(__pyx_m, __pyx_n_s_19, __pyx_int_0x200) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4191
4192 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":121
4193 * FILT_CHANNEL_AFTERTOUCH=0x100
4194 * FILT_POLY_AFTERTOUCH=0x200
4195 * FILT_AFTERTOUCH=0x300 # <<<<<<<<<<<<<<
4196 * FILT_PROGRAM=0x400
4197 * FILT_CONTROL=0x800
4198 */
4199 if (PyObject_SetAttr(__pyx_m, __pyx_n_s__FILT_AFTERTOUCH, __pyx_int_0x300) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4200
4201 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":122
4202 * FILT_POLY_AFTERTOUCH=0x200
4203 * FILT_AFTERTOUCH=0x300
4204 * FILT_PROGRAM=0x400 # <<<<<<<<<<<<<<
4205 * FILT_CONTROL=0x800
4206 * FILT_PITCHBEND=0x1000
4207 */
4208 if (PyObject_SetAttr(__pyx_m, __pyx_n_s__FILT_PROGRAM, __pyx_int_0x400) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4209
4210 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":123
4211 * FILT_AFTERTOUCH=0x300
4212 * FILT_PROGRAM=0x400
4213 * FILT_CONTROL=0x800 # <<<<<<<<<<<<<<
4214 * FILT_PITCHBEND=0x1000
4215 * FILT_MTC=0x2000
4216 */
4217 if (PyObject_SetAttr(__pyx_m, __pyx_n_s__FILT_CONTROL, __pyx_int_0x800) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4218
4219 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":124
4220 * FILT_PROGRAM=0x400
4221 * FILT_CONTROL=0x800
4222 * FILT_PITCHBEND=0x1000 # <<<<<<<<<<<<<<
4223 * FILT_MTC=0x2000
4224 * FILT_SONG_POSITION=0x4000
4225 */
4226 if (PyObject_SetAttr(__pyx_m, __pyx_n_s__FILT_PITCHBEND, __pyx_int_0x1000) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4227
4228 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":125
4229 * FILT_CONTROL=0x800
4230 * FILT_PITCHBEND=0x1000
4231 * FILT_MTC=0x2000 # <<<<<<<<<<<<<<
4232 * FILT_SONG_POSITION=0x4000
4233 * FILT_SONG_SELECT=0x8000
4234 */
4235 if (PyObject_SetAttr(__pyx_m, __pyx_n_s__FILT_MTC, __pyx_int_0x2000) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4236
4237 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":126
4238 * FILT_PITCHBEND=0x1000
4239 * FILT_MTC=0x2000
4240 * FILT_SONG_POSITION=0x4000 # <<<<<<<<<<<<<<
4241 * FILT_SONG_SELECT=0x8000
4242 * FILT_TUNE=0x10000
4243 */
4244 if (PyObject_SetAttr(__pyx_m, __pyx_n_s__FILT_SONG_POSITION, __pyx_int_0x4000) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4245
4246 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":127
4247 * FILT_MTC=0x2000
4248 * FILT_SONG_POSITION=0x4000
4249 * FILT_SONG_SELECT=0x8000 # <<<<<<<<<<<<<<
4250 * FILT_TUNE=0x10000
4251 * FALSE=0
4252 */
4253 if (PyObject_SetAttr(__pyx_m, __pyx_n_s__FILT_SONG_SELECT, __pyx_int_0x8000) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4254
4255 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":128
4256 * FILT_SONG_POSITION=0x4000
4257 * FILT_SONG_SELECT=0x8000
4258 * FILT_TUNE=0x10000 # <<<<<<<<<<<<<<
4259 * FALSE=0
4260 * TRUE=1
4261 */
4262 if (PyObject_SetAttr(__pyx_m, __pyx_n_s__FILT_TUNE, __pyx_int_0x10000) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4263
4264 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":129
4265 * FILT_SONG_SELECT=0x8000
4266 * FILT_TUNE=0x10000
4267 * FALSE=0 # <<<<<<<<<<<<<<
4268 * TRUE=1
4269 *
4270 */
4271 if (PyObject_SetAttr(__pyx_m, __pyx_n_s__FALSE, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4272
4273 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":130
4274 * FILT_TUNE=0x10000
4275 * FALSE=0
4276 * TRUE=1 # <<<<<<<<<<<<<<
4277 *
4278 * def Initialize():
4279 */
4280 if (PyObject_SetAttr(__pyx_m, __pyx_n_s__TRUE, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4281
4282 /* "/Users/rene/dev/portmedia/portmedia/portmidi/trunk/pm_python/pyportmidi/_pyportmidi.pyx":1
4283 * # pyPortMidi # <<<<<<<<<<<<<<
4284 * # Python bindings for PortMidi
4285 * # John Harrison
4286 */
4287 __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4288 __Pyx_GOTREF(((PyObject *)__pyx_t_1));
4289 __pyx_t_2 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Initialize); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4290 __Pyx_GOTREF(__pyx_t_2);
4291 __pyx_t_3 = __Pyx_GetAttrString(__pyx_t_2, "__doc__");
4292 __Pyx_GOTREF(__pyx_t_3);
4293 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4294 if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_u_20), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4295 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4296 __pyx_t_3 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Terminate); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4297 __Pyx_GOTREF(__pyx_t_3);
4298 __pyx_t_2 = __Pyx_GetAttrString(__pyx_t_3, "__doc__");
4299 __Pyx_GOTREF(__pyx_t_2);
4300 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4301 if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_u_21), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4302 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4303 __pyx_t_2 = PyObject_GetAttr(__pyx_m, __pyx_n_s__GetDeviceInfo); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4304 __Pyx_GOTREF(__pyx_t_2);
4305 __pyx_t_3 = __Pyx_GetAttrString(__pyx_t_2, "__doc__");
4306 __Pyx_GOTREF(__pyx_t_3);
4307 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4308 if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_u_22), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4309 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4310 __pyx_t_3 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Time); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4311 __Pyx_GOTREF(__pyx_t_3);
4312 __pyx_t_2 = __Pyx_GetAttrString(__pyx_t_3, "__doc__");
4313 __Pyx_GOTREF(__pyx_t_2);
4314 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4315 if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_u_23), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4316 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4317 __pyx_t_2 = PyObject_GetAttr(__pyx_m, __pyx_n_s__GetErrorText); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4318 __Pyx_GOTREF(__pyx_t_2);
4319 __pyx_t_3 = __Pyx_GetAttrString(__pyx_t_2, "__doc__");
4320 __Pyx_GOTREF(__pyx_t_3);
4321 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4322 if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_u_24), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4323 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4324 __pyx_t_3 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Channel); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4325 __Pyx_GOTREF(__pyx_t_3);
4326 __pyx_t_2 = __Pyx_GetAttrString(__pyx_t_3, "__doc__");
4327 __Pyx_GOTREF(__pyx_t_2);
4328 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4329 if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_u_25), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4330 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4331 __pyx_t_2 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Output); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4332 __Pyx_GOTREF(__pyx_t_2);
4333 __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s___check_open); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4334 __Pyx_GOTREF(__pyx_t_3);
4335 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4336 __pyx_t_2 = __Pyx_GetAttrString(__pyx_t_3, "__doc__");
4337 __Pyx_GOTREF(__pyx_t_2);
4338 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4339 if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_u_26), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4340 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4341 __pyx_t_2 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Output); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4342 __Pyx_GOTREF(__pyx_t_2);
4343 __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__Close); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4344 __Pyx_GOTREF(__pyx_t_3);
4345 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4346 __pyx_t_2 = __Pyx_GetAttrString(__pyx_t_3, "__doc__");
4347 __Pyx_GOTREF(__pyx_t_2);
4348 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4349 if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_u_27), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4350 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4351 __pyx_t_2 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Output); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4352 __Pyx_GOTREF(__pyx_t_2);
4353 __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__Abort); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4354 __Pyx_GOTREF(__pyx_t_3);
4355 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4356 __pyx_t_2 = __Pyx_GetAttrString(__pyx_t_3, "__doc__");
4357 __Pyx_GOTREF(__pyx_t_2);
4358 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4359 if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_u_28), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4360 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4361 __pyx_t_2 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Output); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4362 __Pyx_GOTREF(__pyx_t_2);
4363 __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__Write); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4364 __Pyx_GOTREF(__pyx_t_3);
4365 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4366 __pyx_t_2 = __Pyx_GetAttrString(__pyx_t_3, "__doc__");
4367 __Pyx_GOTREF(__pyx_t_2);
4368 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4369 if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_u_29), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4370 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4371 __pyx_t_2 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Output); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4372 __Pyx_GOTREF(__pyx_t_2);
4373 __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__WriteShort); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4374 __Pyx_GOTREF(__pyx_t_3);
4375 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4376 __pyx_t_2 = __Pyx_GetAttrString(__pyx_t_3, "__doc__");
4377 __Pyx_GOTREF(__pyx_t_2);
4378 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4379 if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_u_30), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4380 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4381 __pyx_t_2 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Output); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4382 __Pyx_GOTREF(__pyx_t_2);
4383 __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__WriteSysEx); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4384 __Pyx_GOTREF(__pyx_t_3);
4385 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4386 __pyx_t_2 = __Pyx_GetAttrString(__pyx_t_3, "__doc__");
4387 __Pyx_GOTREF(__pyx_t_2);
4388 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4389 if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_u_31), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4390 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4391 __pyx_t_2 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Input); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4392 __Pyx_GOTREF(__pyx_t_2);
4393 __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s___check_open); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4394 __Pyx_GOTREF(__pyx_t_3);
4395 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4396 __pyx_t_2 = __Pyx_GetAttrString(__pyx_t_3, "__doc__");
4397 __Pyx_GOTREF(__pyx_t_2);
4398 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4399 if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_u_32), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4400 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4401 __pyx_t_2 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Input); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4402 __Pyx_GOTREF(__pyx_t_2);
4403 __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__Close); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4404 __Pyx_GOTREF(__pyx_t_3);
4405 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4406 __pyx_t_2 = __Pyx_GetAttrString(__pyx_t_3, "__doc__");
4407 __Pyx_GOTREF(__pyx_t_2);
4408 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4409 if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_u_33), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4410 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4411 __pyx_t_2 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Input); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4412 __Pyx_GOTREF(__pyx_t_2);
4413 __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__SetFilter); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4414 __Pyx_GOTREF(__pyx_t_3);
4415 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4416 __pyx_t_2 = __Pyx_GetAttrString(__pyx_t_3, "__doc__");
4417 __Pyx_GOTREF(__pyx_t_2);
4418 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4419 if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_u_34), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4420 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4421 __pyx_t_2 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Input); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4422 __Pyx_GOTREF(__pyx_t_2);
4423 __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__SetChannelMask); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4424 __Pyx_GOTREF(__pyx_t_3);
4425 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4426 __pyx_t_2 = __Pyx_GetAttrString(__pyx_t_3, "__doc__");
4427 __Pyx_GOTREF(__pyx_t_2);
4428 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4429 if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_u_35), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4430 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4431 __pyx_t_2 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Input); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4432 __Pyx_GOTREF(__pyx_t_2);
4433 __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__Poll); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4434 __Pyx_GOTREF(__pyx_t_3);
4435 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4436 __pyx_t_2 = __Pyx_GetAttrString(__pyx_t_3, "__doc__");
4437 __Pyx_GOTREF(__pyx_t_2);
4438 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4439 if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_u_36), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4440 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4441 __pyx_t_2 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Input); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4442 __Pyx_GOTREF(__pyx_t_2);
4443 __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__Read); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4444 __Pyx_GOTREF(__pyx_t_3);
4445 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4446 __pyx_t_2 = __Pyx_GetAttrString(__pyx_t_3, "__doc__");
4447 __Pyx_GOTREF(__pyx_t_2);
4448 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4449 if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_u_37), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4450 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4451 if (PyObject_SetAttr(__pyx_m, __pyx_n_s____test__, ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
4452 __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
4453 goto __pyx_L0;
4454 __pyx_L1_error:;
4455 __Pyx_XDECREF(__pyx_t_1);
4456 __Pyx_XDECREF(__pyx_t_2);
4457 __Pyx_XDECREF(__pyx_t_3);
4458 if (__pyx_m) {
4459 __Pyx_AddTraceback("init _pyportmidi");
4460 Py_DECREF(__pyx_m); __pyx_m = 0;
4461 } else if (!PyErr_Occurred()) {
4462 PyErr_SetString(PyExc_ImportError, "init _pyportmidi");
4463 }
4464 __pyx_L0:;
4465 __Pyx_RefNannyFinishContext();
4466 #if PY_MAJOR_VERSION < 3
4467 return;
4468 #else
4469 return __pyx_m;
4470 #endif
4471 }
4472
4473 static const char *__pyx_filenames[] = {
4474 "_pyportmidi.pyx",
4475 };
4476
4477 /* Runtime support code */
4478
__pyx_init_filenames(void)4479 static void __pyx_init_filenames(void) {
4480 __pyx_f = __pyx_filenames;
4481 }
4482
__Pyx_RaiseDoubleKeywordsError(const char * func_name,PyObject * kw_name)4483 static void __Pyx_RaiseDoubleKeywordsError(
4484 const char* func_name,
4485 PyObject* kw_name)
4486 {
4487 PyErr_Format(PyExc_TypeError,
4488 #if PY_MAJOR_VERSION >= 3
4489 "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
4490 #else
4491 "%s() got multiple values for keyword argument '%s'", func_name,
4492 PyString_AS_STRING(kw_name));
4493 #endif
4494 }
4495
__Pyx_RaiseArgtupleInvalid(const char * func_name,int exact,Py_ssize_t num_min,Py_ssize_t num_max,Py_ssize_t num_found)4496 static void __Pyx_RaiseArgtupleInvalid(
4497 const char* func_name,
4498 int exact,
4499 Py_ssize_t num_min,
4500 Py_ssize_t num_max,
4501 Py_ssize_t num_found)
4502 {
4503 Py_ssize_t num_expected;
4504 const char *number, *more_or_less;
4505
4506 if (num_found < num_min) {
4507 num_expected = num_min;
4508 more_or_less = "at least";
4509 } else {
4510 num_expected = num_max;
4511 more_or_less = "at most";
4512 }
4513 if (exact) {
4514 more_or_less = "exactly";
4515 }
4516 number = (num_expected == 1) ? "" : "s";
4517 PyErr_Format(PyExc_TypeError,
4518 #if PY_VERSION_HEX < 0x02050000
4519 "%s() takes %s %d positional argument%s (%d given)",
4520 #else
4521 "%s() takes %s %zd positional argument%s (%zd given)",
4522 #endif
4523 func_name, more_or_less, num_expected, number, num_found);
4524 }
4525
__Pyx_ParseOptionalKeywords(PyObject * kwds,PyObject ** argnames[],PyObject * kwds2,PyObject * values[],Py_ssize_t num_pos_args,const char * function_name)4526 static int __Pyx_ParseOptionalKeywords(
4527 PyObject *kwds,
4528 PyObject **argnames[],
4529 PyObject *kwds2,
4530 PyObject *values[],
4531 Py_ssize_t num_pos_args,
4532 const char* function_name)
4533 {
4534 PyObject *key = 0, *value = 0;
4535 Py_ssize_t pos = 0;
4536 PyObject*** name;
4537 PyObject*** first_kw_arg = argnames + num_pos_args;
4538
4539 while (PyDict_Next(kwds, &pos, &key, &value)) {
4540 name = first_kw_arg;
4541 while (*name && (**name != key)) name++;
4542 if (*name) {
4543 values[name-argnames] = value;
4544 } else {
4545 #if PY_MAJOR_VERSION < 3
4546 if (unlikely(!PyString_CheckExact(key)) && unlikely(!PyString_Check(key))) {
4547 #else
4548 if (unlikely(!PyUnicode_CheckExact(key)) && unlikely(!PyUnicode_Check(key))) {
4549 #endif
4550 goto invalid_keyword_type;
4551 } else {
4552 for (name = first_kw_arg; *name; name++) {
4553 #if PY_MAJOR_VERSION >= 3
4554 if (PyUnicode_GET_SIZE(**name) == PyUnicode_GET_SIZE(key) &&
4555 PyUnicode_Compare(**name, key) == 0) break;
4556 #else
4557 if (PyString_GET_SIZE(**name) == PyString_GET_SIZE(key) &&
4558 _PyString_Eq(**name, key)) break;
4559 #endif
4560 }
4561 if (*name) {
4562 values[name-argnames] = value;
4563 } else {
4564 /* unexpected keyword found */
4565 for (name=argnames; name != first_kw_arg; name++) {
4566 if (**name == key) goto arg_passed_twice;
4567 #if PY_MAJOR_VERSION >= 3
4568 if (PyUnicode_GET_SIZE(**name) == PyUnicode_GET_SIZE(key) &&
4569 PyUnicode_Compare(**name, key) == 0) goto arg_passed_twice;
4570 #else
4571 if (PyString_GET_SIZE(**name) == PyString_GET_SIZE(key) &&
4572 _PyString_Eq(**name, key)) goto arg_passed_twice;
4573 #endif
4574 }
4575 if (kwds2) {
4576 if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
4577 } else {
4578 goto invalid_keyword;
4579 }
4580 }
4581 }
4582 }
4583 }
4584 return 0;
4585 arg_passed_twice:
4586 __Pyx_RaiseDoubleKeywordsError(function_name, **name);
4587 goto bad;
4588 invalid_keyword_type:
4589 PyErr_Format(PyExc_TypeError,
4590 "%s() keywords must be strings", function_name);
4591 goto bad;
4592 invalid_keyword:
4593 PyErr_Format(PyExc_TypeError,
4594 #if PY_MAJOR_VERSION < 3
4595 "%s() got an unexpected keyword argument '%s'",
4596 function_name, PyString_AsString(key));
4597 #else
4598 "%s() got an unexpected keyword argument '%U'",
4599 function_name, key);
4600 #endif
4601 bad:
4602 return -1;
4603 }
4604
4605
4606 static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list) {
4607 PyObject *__import__ = 0;
4608 PyObject *empty_list = 0;
4609 PyObject *module = 0;
4610 PyObject *global_dict = 0;
4611 PyObject *empty_dict = 0;
4612 PyObject *list;
4613 __import__ = __Pyx_GetAttrString(__pyx_b, "__import__");
4614 if (!__import__)
4615 goto bad;
4616 if (from_list)
4617 list = from_list;
4618 else {
4619 empty_list = PyList_New(0);
4620 if (!empty_list)
4621 goto bad;
4622 list = empty_list;
4623 }
4624 global_dict = PyModule_GetDict(__pyx_m);
4625 if (!global_dict)
4626 goto bad;
4627 empty_dict = PyDict_New();
4628 if (!empty_dict)
4629 goto bad;
4630 module = PyObject_CallFunctionObjArgs(__import__,
4631 name, global_dict, empty_dict, list, NULL);
4632 bad:
4633 Py_XDECREF(empty_list);
4634 Py_XDECREF(__import__);
4635 Py_XDECREF(empty_dict);
4636 return module;
4637 }
4638
4639 static CYTHON_INLINE PyObject *__Pyx_PyInt_to_py_PmDeviceID(PmDeviceID val) {
4640 const PmDeviceID neg_one = (PmDeviceID)-1, const_zero = 0;
4641 const int is_unsigned = neg_one > const_zero;
4642 if (sizeof(PmDeviceID) < sizeof(long)) {
4643 return PyInt_FromLong((long)val);
4644 } else if (sizeof(PmDeviceID) == sizeof(long)) {
4645 if (is_unsigned)
4646 return PyLong_FromUnsignedLong((unsigned long)val);
4647 else
4648 return PyInt_FromLong((long)val);
4649 } else { /* (sizeof(PmDeviceID) > sizeof(long)) */
4650 if (is_unsigned)
4651 return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG)val);
4652 else
4653 return PyLong_FromLongLong((PY_LONG_LONG)val);
4654 }
4655 }
4656
4657 static CYTHON_INLINE PmDeviceID __Pyx_PyInt_from_py_PmDeviceID(PyObject* x) {
4658 const PmDeviceID neg_one = (PmDeviceID)-1, const_zero = 0;
4659 const int is_unsigned = neg_one > const_zero;
4660 if (sizeof(PmDeviceID) == sizeof(char)) {
4661 if (is_unsigned)
4662 return (PmDeviceID)__Pyx_PyInt_AsUnsignedChar(x);
4663 else
4664 return (PmDeviceID)__Pyx_PyInt_AsSignedChar(x);
4665 } else if (sizeof(PmDeviceID) == sizeof(short)) {
4666 if (is_unsigned)
4667 return (PmDeviceID)__Pyx_PyInt_AsUnsignedShort(x);
4668 else
4669 return (PmDeviceID)__Pyx_PyInt_AsSignedShort(x);
4670 } else if (sizeof(PmDeviceID) == sizeof(int)) {
4671 if (is_unsigned)
4672 return (PmDeviceID)__Pyx_PyInt_AsUnsignedInt(x);
4673 else
4674 return (PmDeviceID)__Pyx_PyInt_AsSignedInt(x);
4675 } else if (sizeof(PmDeviceID) == sizeof(long)) {
4676 if (is_unsigned)
4677 return (PmDeviceID)__Pyx_PyInt_AsUnsignedLong(x);
4678 else
4679 return (PmDeviceID)__Pyx_PyInt_AsSignedLong(x);
4680 } else if (sizeof(PmDeviceID) == sizeof(PY_LONG_LONG)) {
4681 if (is_unsigned)
4682 return (PmDeviceID)__Pyx_PyInt_AsUnsignedLongLong(x);
4683 else
4684 return (PmDeviceID)__Pyx_PyInt_AsSignedLongLong(x);
4685 #if 0
4686 } else if (sizeof(PmDeviceID) > sizeof(short) &&
4687 sizeof(PmDeviceID) < sizeof(int)) { /* __int32 ILP64 ? */
4688 if (is_unsigned)
4689 return (PmDeviceID)__Pyx_PyInt_AsUnsignedInt(x);
4690 else
4691 return (PmDeviceID)__Pyx_PyInt_AsSignedInt(x);
4692 #endif
4693 }
4694 PyErr_SetString(PyExc_TypeError, "PmDeviceID");
4695 return (PmDeviceID)-1;
4696 }
4697
4698 static CYTHON_INLINE PyObject *__Pyx_PyInt_to_py_PtTimestamp(PtTimestamp val) {
4699 const PtTimestamp neg_one = (PtTimestamp)-1, const_zero = 0;
4700 const int is_unsigned = neg_one > const_zero;
4701 if (sizeof(PtTimestamp) < sizeof(long)) {
4702 return PyInt_FromLong((long)val);
4703 } else if (sizeof(PtTimestamp) == sizeof(long)) {
4704 if (is_unsigned)
4705 return PyLong_FromUnsignedLong((unsigned long)val);
4706 else
4707 return PyInt_FromLong((long)val);
4708 } else { /* (sizeof(PtTimestamp) > sizeof(long)) */
4709 if (is_unsigned)
4710 return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG)val);
4711 else
4712 return PyLong_FromLongLong((PY_LONG_LONG)val);
4713 }
4714 }
4715
4716 #if PY_MAJOR_VERSION < 3
4717 static PyObject *__Pyx_GetStdout(void) {
4718 PyObject *f = PySys_GetObject((char *)"stdout");
4719 if (!f) {
4720 PyErr_SetString(PyExc_RuntimeError, "lost sys.stdout");
4721 }
4722 return f;
4723 }
4724
4725 static int __Pyx_Print(PyObject *arg_tuple, int newline) {
4726 PyObject *f;
4727 PyObject* v;
4728 int i;
4729
4730 if (!(f = __Pyx_GetStdout()))
4731 return -1;
4732 for (i=0; i < PyTuple_GET_SIZE(arg_tuple); i++) {
4733 if (PyFile_SoftSpace(f, 1)) {
4734 if (PyFile_WriteString(" ", f) < 0)
4735 return -1;
4736 }
4737 v = PyTuple_GET_ITEM(arg_tuple, i);
4738 if (PyFile_WriteObject(v, f, Py_PRINT_RAW) < 0)
4739 return -1;
4740 if (PyString_Check(v)) {
4741 char *s = PyString_AsString(v);
4742 Py_ssize_t len = PyString_Size(v);
4743 if (len > 0 &&
4744 isspace(Py_CHARMASK(s[len-1])) &&
4745 s[len-1] != ' ')
4746 PyFile_SoftSpace(f, 0);
4747 }
4748 }
4749 if (newline) {
4750 if (PyFile_WriteString("\n", f) < 0)
4751 return -1;
4752 PyFile_SoftSpace(f, 0);
4753 }
4754 return 0;
4755 }
4756
4757 #else /* Python 3 has a print function */
4758
4759 static int __Pyx_Print(PyObject *arg_tuple, int newline) {
4760 PyObject* kwargs = 0;
4761 PyObject* result = 0;
4762 PyObject* end_string;
4763 if (!__pyx_print) {
4764 __pyx_print = __Pyx_GetAttrString(__pyx_b, "print");
4765 if (!__pyx_print)
4766 return -1;
4767 }
4768 if (!newline) {
4769 if (!__pyx_print_kwargs) {
4770 __pyx_print_kwargs = PyDict_New();
4771 if (!__pyx_print_kwargs)
4772 return -1;
4773 end_string = PyUnicode_FromStringAndSize(" ", 1);
4774 if (!end_string)
4775 return -1;
4776 if (PyDict_SetItemString(__pyx_print_kwargs, "end", end_string) < 0) {
4777 Py_DECREF(end_string);
4778 return -1;
4779 }
4780 Py_DECREF(end_string);
4781 }
4782 kwargs = __pyx_print_kwargs;
4783 }
4784 result = PyObject_Call(__pyx_print, arg_tuple, kwargs);
4785 if (!result)
4786 return -1;
4787 Py_DECREF(result);
4788 return 0;
4789 }
4790
4791 #endif
4792
4793 #if PY_MAJOR_VERSION < 3
4794
4795 static int __Pyx_PrintOne(PyObject *o) {
4796 PyObject *f;
4797 if (!(f = __Pyx_GetStdout()))
4798 return -1;
4799 if (PyFile_SoftSpace(f, 0)) {
4800 if (PyFile_WriteString(" ", f) < 0)
4801 return -1;
4802 }
4803 if (PyFile_WriteObject(o, f, Py_PRINT_RAW) < 0)
4804 return -1;
4805 if (PyFile_WriteString("\n", f) < 0)
4806 return -1;
4807 return 0;
4808 /* the line below is just to avoid compiler
4809 * compiler warnings about unused functions */
4810 return __Pyx_Print(NULL, 0);
4811 }
4812
4813 #else /* Python 3 has a print function */
4814
4815 static int __Pyx_PrintOne(PyObject *o) {
4816 int res;
4817 PyObject* arg_tuple = PyTuple_New(1);
4818 if (unlikely(!arg_tuple))
4819 return -1;
4820 Py_INCREF(o);
4821 PyTuple_SET_ITEM(arg_tuple, 0, o);
4822 res = __Pyx_Print(arg_tuple, 1);
4823 Py_DECREF(arg_tuple);
4824 return res;
4825 }
4826
4827 #endif
4828
4829 static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) {
4830 PyObject *result;
4831 result = PyObject_GetAttr(dict, name);
4832 if (!result)
4833 PyErr_SetObject(PyExc_NameError, name);
4834 return result;
4835 }
4836
4837 static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb) {
4838 PyObject *tmp_type, *tmp_value, *tmp_tb;
4839 PyThreadState *tstate = PyThreadState_GET();
4840
4841 tmp_type = tstate->curexc_type;
4842 tmp_value = tstate->curexc_value;
4843 tmp_tb = tstate->curexc_traceback;
4844 tstate->curexc_type = type;
4845 tstate->curexc_value = value;
4846 tstate->curexc_traceback = tb;
4847 Py_XDECREF(tmp_type);
4848 Py_XDECREF(tmp_value);
4849 Py_XDECREF(tmp_tb);
4850 }
4851
4852 static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb) {
4853 PyThreadState *tstate = PyThreadState_GET();
4854 *type = tstate->curexc_type;
4855 *value = tstate->curexc_value;
4856 *tb = tstate->curexc_traceback;
4857
4858 tstate->curexc_type = 0;
4859 tstate->curexc_value = 0;
4860 tstate->curexc_traceback = 0;
4861 }
4862
4863
4864 #if PY_MAJOR_VERSION < 3
4865 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb) {
4866 Py_XINCREF(type);
4867 Py_XINCREF(value);
4868 Py_XINCREF(tb);
4869 /* First, check the traceback argument, replacing None with NULL. */
4870 if (tb == Py_None) {
4871 Py_DECREF(tb);
4872 tb = 0;
4873 }
4874 else if (tb != NULL && !PyTraceBack_Check(tb)) {
4875 PyErr_SetString(PyExc_TypeError,
4876 "raise: arg 3 must be a traceback or None");
4877 goto raise_error;
4878 }
4879 /* Next, replace a missing value with None */
4880 if (value == NULL) {
4881 value = Py_None;
4882 Py_INCREF(value);
4883 }
4884 #if PY_VERSION_HEX < 0x02050000
4885 if (!PyClass_Check(type))
4886 #else
4887 if (!PyType_Check(type))
4888 #endif
4889 {
4890 /* Raising an instance. The value should be a dummy. */
4891 if (value != Py_None) {
4892 PyErr_SetString(PyExc_TypeError,
4893 "instance exception may not have a separate value");
4894 goto raise_error;
4895 }
4896 /* Normalize to raise <class>, <instance> */
4897 Py_DECREF(value);
4898 value = type;
4899 #if PY_VERSION_HEX < 0x02050000
4900 if (PyInstance_Check(type)) {
4901 type = (PyObject*) ((PyInstanceObject*)type)->in_class;
4902 Py_INCREF(type);
4903 }
4904 else {
4905 type = 0;
4906 PyErr_SetString(PyExc_TypeError,
4907 "raise: exception must be an old-style class or instance");
4908 goto raise_error;
4909 }
4910 #else
4911 type = (PyObject*) Py_TYPE(type);
4912 Py_INCREF(type);
4913 if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
4914 PyErr_SetString(PyExc_TypeError,
4915 "raise: exception class must be a subclass of BaseException");
4916 goto raise_error;
4917 }
4918 #endif
4919 }
4920
4921 __Pyx_ErrRestore(type, value, tb);
4922 return;
4923 raise_error:
4924 Py_XDECREF(value);
4925 Py_XDECREF(type);
4926 Py_XDECREF(tb);
4927 return;
4928 }
4929
4930 #else /* Python 3+ */
4931
4932 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb) {
4933 if (tb == Py_None) {
4934 tb = 0;
4935 } else if (tb && !PyTraceBack_Check(tb)) {
4936 PyErr_SetString(PyExc_TypeError,
4937 "raise: arg 3 must be a traceback or None");
4938 goto bad;
4939 }
4940 if (value == Py_None)
4941 value = 0;
4942
4943 if (PyExceptionInstance_Check(type)) {
4944 if (value) {
4945 PyErr_SetString(PyExc_TypeError,
4946 "instance exception may not have a separate value");
4947 goto bad;
4948 }
4949 value = type;
4950 type = (PyObject*) Py_TYPE(value);
4951 } else if (!PyExceptionClass_Check(type)) {
4952 PyErr_SetString(PyExc_TypeError,
4953 "raise: exception class must be a subclass of BaseException");
4954 goto bad;
4955 }
4956
4957 PyErr_SetObject(type, value);
4958
4959 if (tb) {
4960 PyThreadState *tstate = PyThreadState_GET();
4961 PyObject* tmp_tb = tstate->curexc_traceback;
4962 if (tb != tmp_tb) {
4963 Py_INCREF(tb);
4964 tstate->curexc_traceback = tb;
4965 Py_XDECREF(tmp_tb);
4966 }
4967 }
4968
4969 bad:
4970 return;
4971 }
4972 #endif
4973
4974 static CYTHON_INLINE PyObject *__Pyx_PyInt_to_py_PmMessage(PmMessage val) {
4975 const PmMessage neg_one = (PmMessage)-1, const_zero = 0;
4976 const int is_unsigned = neg_one > const_zero;
4977 if (sizeof(PmMessage) < sizeof(long)) {
4978 return PyInt_FromLong((long)val);
4979 } else if (sizeof(PmMessage) == sizeof(long)) {
4980 if (is_unsigned)
4981 return PyLong_FromUnsignedLong((unsigned long)val);
4982 else
4983 return PyInt_FromLong((long)val);
4984 } else { /* (sizeof(PmMessage) > sizeof(long)) */
4985 if (is_unsigned)
4986 return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG)val);
4987 else
4988 return PyLong_FromLongLong((PY_LONG_LONG)val);
4989 }
4990 }
4991
4992 static CYTHON_INLINE PmMessage __Pyx_PyInt_from_py_PmMessage(PyObject* x) {
4993 const PmMessage neg_one = (PmMessage)-1, const_zero = 0;
4994 const int is_unsigned = neg_one > const_zero;
4995 if (sizeof(PmMessage) == sizeof(char)) {
4996 if (is_unsigned)
4997 return (PmMessage)__Pyx_PyInt_AsUnsignedChar(x);
4998 else
4999 return (PmMessage)__Pyx_PyInt_AsSignedChar(x);
5000 } else if (sizeof(PmMessage) == sizeof(short)) {
5001 if (is_unsigned)
5002 return (PmMessage)__Pyx_PyInt_AsUnsignedShort(x);
5003 else
5004 return (PmMessage)__Pyx_PyInt_AsSignedShort(x);
5005 } else if (sizeof(PmMessage) == sizeof(int)) {
5006 if (is_unsigned)
5007 return (PmMessage)__Pyx_PyInt_AsUnsignedInt(x);
5008 else
5009 return (PmMessage)__Pyx_PyInt_AsSignedInt(x);
5010 } else if (sizeof(PmMessage) == sizeof(long)) {
5011 if (is_unsigned)
5012 return (PmMessage)__Pyx_PyInt_AsUnsignedLong(x);
5013 else
5014 return (PmMessage)__Pyx_PyInt_AsSignedLong(x);
5015 } else if (sizeof(PmMessage) == sizeof(PY_LONG_LONG)) {
5016 if (is_unsigned)
5017 return (PmMessage)__Pyx_PyInt_AsUnsignedLongLong(x);
5018 else
5019 return (PmMessage)__Pyx_PyInt_AsSignedLongLong(x);
5020 #if 0
5021 } else if (sizeof(PmMessage) > sizeof(short) &&
5022 sizeof(PmMessage) < sizeof(int)) { /* __int32 ILP64 ? */
5023 if (is_unsigned)
5024 return (PmMessage)__Pyx_PyInt_AsUnsignedInt(x);
5025 else
5026 return (PmMessage)__Pyx_PyInt_AsSignedInt(x);
5027 #endif
5028 }
5029 PyErr_SetString(PyExc_TypeError, "PmMessage");
5030 return (PmMessage)-1;
5031 }
5032
5033 static CYTHON_INLINE PmTimestamp __Pyx_PyInt_from_py_PmTimestamp(PyObject* x) {
5034 const PmTimestamp neg_one = (PmTimestamp)-1, const_zero = 0;
5035 const int is_unsigned = neg_one > const_zero;
5036 if (sizeof(PmTimestamp) == sizeof(char)) {
5037 if (is_unsigned)
5038 return (PmTimestamp)__Pyx_PyInt_AsUnsignedChar(x);
5039 else
5040 return (PmTimestamp)__Pyx_PyInt_AsSignedChar(x);
5041 } else if (sizeof(PmTimestamp) == sizeof(short)) {
5042 if (is_unsigned)
5043 return (PmTimestamp)__Pyx_PyInt_AsUnsignedShort(x);
5044 else
5045 return (PmTimestamp)__Pyx_PyInt_AsSignedShort(x);
5046 } else if (sizeof(PmTimestamp) == sizeof(int)) {
5047 if (is_unsigned)
5048 return (PmTimestamp)__Pyx_PyInt_AsUnsignedInt(x);
5049 else
5050 return (PmTimestamp)__Pyx_PyInt_AsSignedInt(x);
5051 } else if (sizeof(PmTimestamp) == sizeof(long)) {
5052 if (is_unsigned)
5053 return (PmTimestamp)__Pyx_PyInt_AsUnsignedLong(x);
5054 else
5055 return (PmTimestamp)__Pyx_PyInt_AsSignedLong(x);
5056 } else if (sizeof(PmTimestamp) == sizeof(PY_LONG_LONG)) {
5057 if (is_unsigned)
5058 return (PmTimestamp)__Pyx_PyInt_AsUnsignedLongLong(x);
5059 else
5060 return (PmTimestamp)__Pyx_PyInt_AsSignedLongLong(x);
5061 #if 0
5062 } else if (sizeof(PmTimestamp) > sizeof(short) &&
5063 sizeof(PmTimestamp) < sizeof(int)) { /* __int32 ILP64 ? */
5064 if (is_unsigned)
5065 return (PmTimestamp)__Pyx_PyInt_AsUnsignedInt(x);
5066 else
5067 return (PmTimestamp)__Pyx_PyInt_AsSignedInt(x);
5068 #endif
5069 }
5070 PyErr_SetString(PyExc_TypeError, "PmTimestamp");
5071 return (PmTimestamp)-1;
5072 }
5073
5074 static CYTHON_INLINE PyObject *__Pyx_PyInt_to_py_PmTimestamp(PmTimestamp val) {
5075 const PmTimestamp neg_one = (PmTimestamp)-1, const_zero = 0;
5076 const int is_unsigned = neg_one > const_zero;
5077 if (sizeof(PmTimestamp) < sizeof(long)) {
5078 return PyInt_FromLong((long)val);
5079 } else if (sizeof(PmTimestamp) == sizeof(long)) {
5080 if (is_unsigned)
5081 return PyLong_FromUnsignedLong((unsigned long)val);
5082 else
5083 return PyInt_FromLong((long)val);
5084 } else { /* (sizeof(PmTimestamp) > sizeof(long)) */
5085 if (is_unsigned)
5086 return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG)val);
5087 else
5088 return PyLong_FromLongLong((PY_LONG_LONG)val);
5089 }
5090 }
5091
5092 static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject* x) {
5093 const unsigned char neg_one = (unsigned char)-1, const_zero = 0;
5094 const int is_unsigned = neg_one > const_zero;
5095 if (sizeof(unsigned char) < sizeof(long)) {
5096 long val = __Pyx_PyInt_AsLong(x);
5097 if (unlikely(val != (long)(unsigned char)val)) {
5098 if (!unlikely(val == -1 && PyErr_Occurred())) {
5099 PyErr_SetString(PyExc_OverflowError,
5100 (is_unsigned && unlikely(val < 0)) ?
5101 "can't convert negative value to unsigned char" :
5102 "value too large to convert to unsigned char");
5103 }
5104 return (unsigned char)-1;
5105 }
5106 return (unsigned char)val;
5107 }
5108 return (unsigned char)__Pyx_PyInt_AsUnsignedLong(x);
5109 }
5110
5111 static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject* x) {
5112 const unsigned short neg_one = (unsigned short)-1, const_zero = 0;
5113 const int is_unsigned = neg_one > const_zero;
5114 if (sizeof(unsigned short) < sizeof(long)) {
5115 long val = __Pyx_PyInt_AsLong(x);
5116 if (unlikely(val != (long)(unsigned short)val)) {
5117 if (!unlikely(val == -1 && PyErr_Occurred())) {
5118 PyErr_SetString(PyExc_OverflowError,
5119 (is_unsigned && unlikely(val < 0)) ?
5120 "can't convert negative value to unsigned short" :
5121 "value too large to convert to unsigned short");
5122 }
5123 return (unsigned short)-1;
5124 }
5125 return (unsigned short)val;
5126 }
5127 return (unsigned short)__Pyx_PyInt_AsUnsignedLong(x);
5128 }
5129
5130 static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject* x) {
5131 const unsigned int neg_one = (unsigned int)-1, const_zero = 0;
5132 const int is_unsigned = neg_one > const_zero;
5133 if (sizeof(unsigned int) < sizeof(long)) {
5134 long val = __Pyx_PyInt_AsLong(x);
5135 if (unlikely(val != (long)(unsigned int)val)) {
5136 if (!unlikely(val == -1 && PyErr_Occurred())) {
5137 PyErr_SetString(PyExc_OverflowError,
5138 (is_unsigned && unlikely(val < 0)) ?
5139 "can't convert negative value to unsigned int" :
5140 "value too large to convert to unsigned int");
5141 }
5142 return (unsigned int)-1;
5143 }
5144 return (unsigned int)val;
5145 }
5146 return (unsigned int)__Pyx_PyInt_AsUnsignedLong(x);
5147 }
5148
5149 static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject* x) {
5150 const char neg_one = (char)-1, const_zero = 0;
5151 const int is_unsigned = neg_one > const_zero;
5152 if (sizeof(char) < sizeof(long)) {
5153 long val = __Pyx_PyInt_AsLong(x);
5154 if (unlikely(val != (long)(char)val)) {
5155 if (!unlikely(val == -1 && PyErr_Occurred())) {
5156 PyErr_SetString(PyExc_OverflowError,
5157 (is_unsigned && unlikely(val < 0)) ?
5158 "can't convert negative value to char" :
5159 "value too large to convert to char");
5160 }
5161 return (char)-1;
5162 }
5163 return (char)val;
5164 }
5165 return (char)__Pyx_PyInt_AsLong(x);
5166 }
5167
5168 static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject* x) {
5169 const short neg_one = (short)-1, const_zero = 0;
5170 const int is_unsigned = neg_one > const_zero;
5171 if (sizeof(short) < sizeof(long)) {
5172 long val = __Pyx_PyInt_AsLong(x);
5173 if (unlikely(val != (long)(short)val)) {
5174 if (!unlikely(val == -1 && PyErr_Occurred())) {
5175 PyErr_SetString(PyExc_OverflowError,
5176 (is_unsigned && unlikely(val < 0)) ?
5177 "can't convert negative value to short" :
5178 "value too large to convert to short");
5179 }
5180 return (short)-1;
5181 }
5182 return (short)val;
5183 }
5184 return (short)__Pyx_PyInt_AsLong(x);
5185 }
5186
5187 static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject* x) {
5188 const int neg_one = (int)-1, const_zero = 0;
5189 const int is_unsigned = neg_one > const_zero;
5190 if (sizeof(int) < sizeof(long)) {
5191 long val = __Pyx_PyInt_AsLong(x);
5192 if (unlikely(val != (long)(int)val)) {
5193 if (!unlikely(val == -1 && PyErr_Occurred())) {
5194 PyErr_SetString(PyExc_OverflowError,
5195 (is_unsigned && unlikely(val < 0)) ?
5196 "can't convert negative value to int" :
5197 "value too large to convert to int");
5198 }
5199 return (int)-1;
5200 }
5201 return (int)val;
5202 }
5203 return (int)__Pyx_PyInt_AsLong(x);
5204 }
5205
5206 static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject* x) {
5207 const signed char neg_one = (signed char)-1, const_zero = 0;
5208 const int is_unsigned = neg_one > const_zero;
5209 if (sizeof(signed char) < sizeof(long)) {
5210 long val = __Pyx_PyInt_AsLong(x);
5211 if (unlikely(val != (long)(signed char)val)) {
5212 if (!unlikely(val == -1 && PyErr_Occurred())) {
5213 PyErr_SetString(PyExc_OverflowError,
5214 (is_unsigned && unlikely(val < 0)) ?
5215 "can't convert negative value to signed char" :
5216 "value too large to convert to signed char");
5217 }
5218 return (signed char)-1;
5219 }
5220 return (signed char)val;
5221 }
5222 return (signed char)__Pyx_PyInt_AsSignedLong(x);
5223 }
5224
5225 static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject* x) {
5226 const signed short neg_one = (signed short)-1, const_zero = 0;
5227 const int is_unsigned = neg_one > const_zero;
5228 if (sizeof(signed short) < sizeof(long)) {
5229 long val = __Pyx_PyInt_AsLong(x);
5230 if (unlikely(val != (long)(signed short)val)) {
5231 if (!unlikely(val == -1 && PyErr_Occurred())) {
5232 PyErr_SetString(PyExc_OverflowError,
5233 (is_unsigned && unlikely(val < 0)) ?
5234 "can't convert negative value to signed short" :
5235 "value too large to convert to signed short");
5236 }
5237 return (signed short)-1;
5238 }
5239 return (signed short)val;
5240 }
5241 return (signed short)__Pyx_PyInt_AsSignedLong(x);
5242 }
5243
5244 static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject* x) {
5245 const signed int neg_one = (signed int)-1, const_zero = 0;
5246 const int is_unsigned = neg_one > const_zero;
5247 if (sizeof(signed int) < sizeof(long)) {
5248 long val = __Pyx_PyInt_AsLong(x);
5249 if (unlikely(val != (long)(signed int)val)) {
5250 if (!unlikely(val == -1 && PyErr_Occurred())) {
5251 PyErr_SetString(PyExc_OverflowError,
5252 (is_unsigned && unlikely(val < 0)) ?
5253 "can't convert negative value to signed int" :
5254 "value too large to convert to signed int");
5255 }
5256 return (signed int)-1;
5257 }
5258 return (signed int)val;
5259 }
5260 return (signed int)__Pyx_PyInt_AsSignedLong(x);
5261 }
5262
5263 static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject* x) {
5264 const unsigned long neg_one = (unsigned long)-1, const_zero = 0;
5265 const int is_unsigned = neg_one > const_zero;
5266 #if PY_VERSION_HEX < 0x03000000
5267 if (likely(PyInt_Check(x))) {
5268 long val = PyInt_AS_LONG(x);
5269 if (is_unsigned && unlikely(val < 0)) {
5270 PyErr_SetString(PyExc_OverflowError,
5271 "can't convert negative value to unsigned long");
5272 return (unsigned long)-1;
5273 }
5274 return (unsigned long)val;
5275 } else
5276 #endif
5277 if (likely(PyLong_Check(x))) {
5278 if (is_unsigned) {
5279 if (unlikely(Py_SIZE(x) < 0)) {
5280 PyErr_SetString(PyExc_OverflowError,
5281 "can't convert negative value to unsigned long");
5282 return (unsigned long)-1;
5283 }
5284 return PyLong_AsUnsignedLong(x);
5285 } else {
5286 return PyLong_AsLong(x);
5287 }
5288 } else {
5289 unsigned long val;
5290 PyObject *tmp = __Pyx_PyNumber_Int(x);
5291 if (!tmp) return (unsigned long)-1;
5292 val = __Pyx_PyInt_AsUnsignedLong(tmp);
5293 Py_DECREF(tmp);
5294 return val;
5295 }
5296 }
5297
5298 static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject* x) {
5299 const unsigned PY_LONG_LONG neg_one = (unsigned PY_LONG_LONG)-1, const_zero = 0;
5300 const int is_unsigned = neg_one > const_zero;
5301 #if PY_VERSION_HEX < 0x03000000
5302 if (likely(PyInt_Check(x))) {
5303 long val = PyInt_AS_LONG(x);
5304 if (is_unsigned && unlikely(val < 0)) {
5305 PyErr_SetString(PyExc_OverflowError,
5306 "can't convert negative value to unsigned PY_LONG_LONG");
5307 return (unsigned PY_LONG_LONG)-1;
5308 }
5309 return (unsigned PY_LONG_LONG)val;
5310 } else
5311 #endif
5312 if (likely(PyLong_Check(x))) {
5313 if (is_unsigned) {
5314 if (unlikely(Py_SIZE(x) < 0)) {
5315 PyErr_SetString(PyExc_OverflowError,
5316 "can't convert negative value to unsigned PY_LONG_LONG");
5317 return (unsigned PY_LONG_LONG)-1;
5318 }
5319 return PyLong_AsUnsignedLongLong(x);
5320 } else {
5321 return PyLong_AsLongLong(x);
5322 }
5323 } else {
5324 unsigned PY_LONG_LONG val;
5325 PyObject *tmp = __Pyx_PyNumber_Int(x);
5326 if (!tmp) return (unsigned PY_LONG_LONG)-1;
5327 val = __Pyx_PyInt_AsUnsignedLongLong(tmp);
5328 Py_DECREF(tmp);
5329 return val;
5330 }
5331 }
5332
5333 static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject* x) {
5334 const long neg_one = (long)-1, const_zero = 0;
5335 const int is_unsigned = neg_one > const_zero;
5336 #if PY_VERSION_HEX < 0x03000000
5337 if (likely(PyInt_Check(x))) {
5338 long val = PyInt_AS_LONG(x);
5339 if (is_unsigned && unlikely(val < 0)) {
5340 PyErr_SetString(PyExc_OverflowError,
5341 "can't convert negative value to long");
5342 return (long)-1;
5343 }
5344 return (long)val;
5345 } else
5346 #endif
5347 if (likely(PyLong_Check(x))) {
5348 if (is_unsigned) {
5349 if (unlikely(Py_SIZE(x) < 0)) {
5350 PyErr_SetString(PyExc_OverflowError,
5351 "can't convert negative value to long");
5352 return (long)-1;
5353 }
5354 return PyLong_AsUnsignedLong(x);
5355 } else {
5356 return PyLong_AsLong(x);
5357 }
5358 } else {
5359 long val;
5360 PyObject *tmp = __Pyx_PyNumber_Int(x);
5361 if (!tmp) return (long)-1;
5362 val = __Pyx_PyInt_AsLong(tmp);
5363 Py_DECREF(tmp);
5364 return val;
5365 }
5366 }
5367
5368 static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject* x) {
5369 const PY_LONG_LONG neg_one = (PY_LONG_LONG)-1, const_zero = 0;
5370 const int is_unsigned = neg_one > const_zero;
5371 #if PY_VERSION_HEX < 0x03000000
5372 if (likely(PyInt_Check(x))) {
5373 long val = PyInt_AS_LONG(x);
5374 if (is_unsigned && unlikely(val < 0)) {
5375 PyErr_SetString(PyExc_OverflowError,
5376 "can't convert negative value to PY_LONG_LONG");
5377 return (PY_LONG_LONG)-1;
5378 }
5379 return (PY_LONG_LONG)val;
5380 } else
5381 #endif
5382 if (likely(PyLong_Check(x))) {
5383 if (is_unsigned) {
5384 if (unlikely(Py_SIZE(x) < 0)) {
5385 PyErr_SetString(PyExc_OverflowError,
5386 "can't convert negative value to PY_LONG_LONG");
5387 return (PY_LONG_LONG)-1;
5388 }
5389 return PyLong_AsUnsignedLongLong(x);
5390 } else {
5391 return PyLong_AsLongLong(x);
5392 }
5393 } else {
5394 PY_LONG_LONG val;
5395 PyObject *tmp = __Pyx_PyNumber_Int(x);
5396 if (!tmp) return (PY_LONG_LONG)-1;
5397 val = __Pyx_PyInt_AsLongLong(tmp);
5398 Py_DECREF(tmp);
5399 return val;
5400 }
5401 }
5402
5403 static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject* x) {
5404 const signed long neg_one = (signed long)-1, const_zero = 0;
5405 const int is_unsigned = neg_one > const_zero;
5406 #if PY_VERSION_HEX < 0x03000000
5407 if (likely(PyInt_Check(x))) {
5408 long val = PyInt_AS_LONG(x);
5409 if (is_unsigned && unlikely(val < 0)) {
5410 PyErr_SetString(PyExc_OverflowError,
5411 "can't convert negative value to signed long");
5412 return (signed long)-1;
5413 }
5414 return (signed long)val;
5415 } else
5416 #endif
5417 if (likely(PyLong_Check(x))) {
5418 if (is_unsigned) {
5419 if (unlikely(Py_SIZE(x) < 0)) {
5420 PyErr_SetString(PyExc_OverflowError,
5421 "can't convert negative value to signed long");
5422 return (signed long)-1;
5423 }
5424 return PyLong_AsUnsignedLong(x);
5425 } else {
5426 return PyLong_AsLong(x);
5427 }
5428 } else {
5429 signed long val;
5430 PyObject *tmp = __Pyx_PyNumber_Int(x);
5431 if (!tmp) return (signed long)-1;
5432 val = __Pyx_PyInt_AsSignedLong(tmp);
5433 Py_DECREF(tmp);
5434 return val;
5435 }
5436 }
5437
5438 static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject* x) {
5439 const signed PY_LONG_LONG neg_one = (signed PY_LONG_LONG)-1, const_zero = 0;
5440 const int is_unsigned = neg_one > const_zero;
5441 #if PY_VERSION_HEX < 0x03000000
5442 if (likely(PyInt_Check(x))) {
5443 long val = PyInt_AS_LONG(x);
5444 if (is_unsigned && unlikely(val < 0)) {
5445 PyErr_SetString(PyExc_OverflowError,
5446 "can't convert negative value to signed PY_LONG_LONG");
5447 return (signed PY_LONG_LONG)-1;
5448 }
5449 return (signed PY_LONG_LONG)val;
5450 } else
5451 #endif
5452 if (likely(PyLong_Check(x))) {
5453 if (is_unsigned) {
5454 if (unlikely(Py_SIZE(x) < 0)) {
5455 PyErr_SetString(PyExc_OverflowError,
5456 "can't convert negative value to signed PY_LONG_LONG");
5457 return (signed PY_LONG_LONG)-1;
5458 }
5459 return PyLong_AsUnsignedLongLong(x);
5460 } else {
5461 return PyLong_AsLongLong(x);
5462 }
5463 } else {
5464 signed PY_LONG_LONG val;
5465 PyObject *tmp = __Pyx_PyNumber_Int(x);
5466 if (!tmp) return (signed PY_LONG_LONG)-1;
5467 val = __Pyx_PyInt_AsSignedLongLong(tmp);
5468 Py_DECREF(tmp);
5469 return val;
5470 }
5471 }
5472
5473 #include "compile.h"
5474 #include "frameobject.h"
5475 #include "traceback.h"
5476
5477 static void __Pyx_AddTraceback(const char *funcname) {
5478 PyObject *py_srcfile = 0;
5479 PyObject *py_funcname = 0;
5480 PyObject *py_globals = 0;
5481 PyCodeObject *py_code = 0;
5482 PyFrameObject *py_frame = 0;
5483
5484 #if PY_MAJOR_VERSION < 3
5485 py_srcfile = PyString_FromString(__pyx_filename);
5486 #else
5487 py_srcfile = PyUnicode_FromString(__pyx_filename);
5488 #endif
5489 if (!py_srcfile) goto bad;
5490 if (__pyx_clineno) {
5491 #if PY_MAJOR_VERSION < 3
5492 py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, __pyx_clineno);
5493 #else
5494 py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, __pyx_clineno);
5495 #endif
5496 }
5497 else {
5498 #if PY_MAJOR_VERSION < 3
5499 py_funcname = PyString_FromString(funcname);
5500 #else
5501 py_funcname = PyUnicode_FromString(funcname);
5502 #endif
5503 }
5504 if (!py_funcname) goto bad;
5505 py_globals = PyModule_GetDict(__pyx_m);
5506 if (!py_globals) goto bad;
5507 py_code = PyCode_New(
5508 0, /*int argcount,*/
5509 #if PY_MAJOR_VERSION >= 3
5510 0, /*int kwonlyargcount,*/
5511 #endif
5512 0, /*int nlocals,*/
5513 0, /*int stacksize,*/
5514 0, /*int flags,*/
5515 __pyx_empty_bytes, /*PyObject *code,*/
5516 __pyx_empty_tuple, /*PyObject *consts,*/
5517 __pyx_empty_tuple, /*PyObject *names,*/
5518 __pyx_empty_tuple, /*PyObject *varnames,*/
5519 __pyx_empty_tuple, /*PyObject *freevars,*/
5520 __pyx_empty_tuple, /*PyObject *cellvars,*/
5521 py_srcfile, /*PyObject *filename,*/
5522 py_funcname, /*PyObject *name,*/
5523 __pyx_lineno, /*int firstlineno,*/
5524 __pyx_empty_bytes /*PyObject *lnotab*/
5525 );
5526 if (!py_code) goto bad;
5527 py_frame = PyFrame_New(
5528 PyThreadState_GET(), /*PyThreadState *tstate,*/
5529 py_code, /*PyCodeObject *code,*/
5530 py_globals, /*PyObject *globals,*/
5531 0 /*PyObject *locals*/
5532 );
5533 if (!py_frame) goto bad;
5534 py_frame->f_lineno = __pyx_lineno;
5535 PyTraceBack_Here(py_frame);
5536 bad:
5537 Py_XDECREF(py_srcfile);
5538 Py_XDECREF(py_funcname);
5539 Py_XDECREF(py_code);
5540 Py_XDECREF(py_frame);
5541 }
5542
5543 static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
5544 while (t->p) {
5545 #if PY_MAJOR_VERSION < 3
5546 if (t->is_unicode) {
5547 *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
5548 } else if (t->intern) {
5549 *t->p = PyString_InternFromString(t->s);
5550 } else {
5551 *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
5552 }
5553 #else /* Python 3+ has unicode identifiers */
5554 if (t->is_unicode | t->is_str) {
5555 if (t->intern) {
5556 *t->p = PyUnicode_InternFromString(t->s);
5557 } else if (t->encoding) {
5558 *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL);
5559 } else {
5560 *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1);
5561 }
5562 } else {
5563 *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1);
5564 }
5565 #endif
5566 if (!*t->p)
5567 return -1;
5568 ++t;
5569 }
5570 return 0;
5571 }
5572
5573 /* Type Conversion Functions */
5574
5575 static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
5576 if (x == Py_True) return 1;
5577 else if ((x == Py_False) | (x == Py_None)) return 0;
5578 else return PyObject_IsTrue(x);
5579 }
5580
5581 static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x) {
5582 PyNumberMethods *m;
5583 const char *name = NULL;
5584 PyObject *res = NULL;
5585 #if PY_VERSION_HEX < 0x03000000
5586 if (PyInt_Check(x) || PyLong_Check(x))
5587 #else
5588 if (PyLong_Check(x))
5589 #endif
5590 return Py_INCREF(x), x;
5591 m = Py_TYPE(x)->tp_as_number;
5592 #if PY_VERSION_HEX < 0x03000000
5593 if (m && m->nb_int) {
5594 name = "int";
5595 res = PyNumber_Int(x);
5596 }
5597 else if (m && m->nb_long) {
5598 name = "long";
5599 res = PyNumber_Long(x);
5600 }
5601 #else
5602 if (m && m->nb_int) {
5603 name = "int";
5604 res = PyNumber_Long(x);
5605 }
5606 #endif
5607 if (res) {
5608 #if PY_VERSION_HEX < 0x03000000
5609 if (!PyInt_Check(res) && !PyLong_Check(res)) {
5610 #else
5611 if (!PyLong_Check(res)) {
5612 #endif
5613 PyErr_Format(PyExc_TypeError,
5614 "__%s__ returned non-%s (type %.200s)",
5615 name, name, Py_TYPE(res)->tp_name);
5616 Py_DECREF(res);
5617 return NULL;
5618 }
5619 }
5620 else if (!PyErr_Occurred()) {
5621 PyErr_SetString(PyExc_TypeError,
5622 "an integer is required");
5623 }
5624 return res;
5625 }
5626
5627 static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
5628 Py_ssize_t ival;
5629 PyObject* x = PyNumber_Index(b);
5630 if (!x) return -1;
5631 ival = PyInt_AsSsize_t(x);
5632 Py_DECREF(x);
5633 return ival;
5634 }
5635
5636 static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
5637 #if PY_VERSION_HEX < 0x02050000
5638 if (ival <= LONG_MAX)
5639 return PyInt_FromLong((long)ival);
5640 else {
5641 unsigned char *bytes = (unsigned char *) &ival;
5642 int one = 1; int little = (int)*(unsigned char*)&one;
5643 return _PyLong_FromByteArray(bytes, sizeof(size_t), little, 0);
5644 }
5645 #else
5646 return PyInt_FromSize_t(ival);
5647 #endif
5648 }
5649
5650 static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject* x) {
5651 unsigned PY_LONG_LONG val = __Pyx_PyInt_AsUnsignedLongLong(x);
5652 if (unlikely(val == (unsigned PY_LONG_LONG)-1 && PyErr_Occurred())) {
5653 return (size_t)-1;
5654 } else if (unlikely(val != (unsigned PY_LONG_LONG)(size_t)val)) {
5655 PyErr_SetString(PyExc_OverflowError,
5656 "value too large to convert to size_t");
5657 return (size_t)-1;
5658 }
5659 return (size_t)val;
5660 }
5661
5662
5663 #endif /* Py_PYTHON_H */
5664