2015-12-02 06:07:31 +00:00
/* Generated by Cython 0.23.4 */
2015-06-28 09:38:55 +00:00
# define PY_SSIZE_T_CLEAN
# include "Python.h"
# ifndef Py_PYTHON_H
# error Python headers needed to compile C extensions, please install development version of Python.
# elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03020000)
# error Cython requires Python 2.6+ or Python 3.2+.
# else
2015-12-02 06:07:31 +00:00
# define CYTHON_ABI "0_23_4"
2015-06-28 09:38:55 +00:00
# include <stddef.h>
# ifndef offsetof
# define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
# endif
# if !defined(WIN32) && !defined(MS_WINDOWS)
# ifndef __stdcall
# define __stdcall
# endif
# ifndef __cdecl
# define __cdecl
# endif
# ifndef __fastcall
# define __fastcall
# endif
# endif
# ifndef DL_IMPORT
# define DL_IMPORT(t) t
# endif
# ifndef DL_EXPORT
# define DL_EXPORT(t) t
# endif
# ifndef PY_LONG_LONG
# define PY_LONG_LONG LONG_LONG
# endif
# ifndef Py_HUGE_VAL
# define Py_HUGE_VAL HUGE_VAL
# endif
# ifdef PYPY_VERSION
# define CYTHON_COMPILING_IN_PYPY 1
# define CYTHON_COMPILING_IN_CPYTHON 0
# else
# define CYTHON_COMPILING_IN_PYPY 0
# define CYTHON_COMPILING_IN_CPYTHON 1
# endif
2015-12-02 06:07:31 +00:00
# if !defined(CYTHON_USE_PYLONG_INTERNALS) && CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x02070000
# define CYTHON_USE_PYLONG_INTERNALS 1
# endif
2015-06-28 09:38:55 +00:00
# if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag)
# define Py_OptimizeFlag 0
# endif
# define __PYX_BUILD_PY_SSIZE_T "n"
# define CYTHON_FORMAT_SSIZE_T "z"
# if PY_MAJOR_VERSION < 3
# define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
2015-12-02 06:07:31 +00:00
# define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
2015-06-28 09:38:55 +00:00
PyCode_New ( a + k , l , s , f , code , c , n , v , fv , cell , fn , name , fline , lnos )
# define __Pyx_DefaultClassType PyClass_Type
# else
# define __Pyx_BUILTIN_MODULE_NAME "builtins"
2015-12-02 06:07:31 +00:00
# define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
2015-06-28 09:38:55 +00:00
PyCode_New ( a , k , l , s , f , code , c , n , v , fv , cell , fn , name , fline , lnos )
# define __Pyx_DefaultClassType PyType_Type
# endif
# ifndef Py_TPFLAGS_CHECKTYPES
# define Py_TPFLAGS_CHECKTYPES 0
# endif
# ifndef Py_TPFLAGS_HAVE_INDEX
# define Py_TPFLAGS_HAVE_INDEX 0
# endif
# ifndef Py_TPFLAGS_HAVE_NEWBUFFER
# define Py_TPFLAGS_HAVE_NEWBUFFER 0
# endif
# ifndef Py_TPFLAGS_HAVE_FINALIZE
# define Py_TPFLAGS_HAVE_FINALIZE 0
# endif
# if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
# define CYTHON_PEP393_ENABLED 1
2015-12-02 06:07:31 +00:00
# define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\
2015-06-28 09:38:55 +00:00
0 : _PyUnicode_Ready ( ( PyObject * ) ( op ) ) )
# define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u)
# define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
# define __Pyx_PyUnicode_KIND(u) PyUnicode_KIND(u)
# define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u)
# define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i)
# else
# define CYTHON_PEP393_ENABLED 0
# define __Pyx_PyUnicode_READY(op) (0)
# define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u)
# define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i]))
# define __Pyx_PyUnicode_KIND(u) (sizeof(Py_UNICODE))
# define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u))
# define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i]))
# endif
# if CYTHON_COMPILING_IN_PYPY
# define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b)
# define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b)
# else
# define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b)
2015-12-02 06:07:31 +00:00
# define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
2015-06-28 09:38:55 +00:00
PyNumber_Add ( a , b ) : __Pyx_PyUnicode_Concat ( a , b ) )
# endif
# if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains)
# define PyUnicode_Contains(u, s) PySequence_Contains(u, s)
# endif
# define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b))
# define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
# if PY_MAJOR_VERSION >= 3
# define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b)
# else
# define __Pyx_PyString_Format(a, b) PyString_Format(a, b)
# endif
# if PY_MAJOR_VERSION >= 3
# define PyBaseString_Type PyUnicode_Type
# define PyStringObject PyUnicodeObject
# define PyString_Type PyUnicode_Type
# define PyString_Check PyUnicode_Check
# define PyString_CheckExact PyUnicode_CheckExact
# endif
# if PY_MAJOR_VERSION >= 3
# define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj)
# define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj)
# else
# define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj))
# define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj))
# endif
# ifndef PySet_CheckExact
# define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type)
# endif
# define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
# if PY_MAJOR_VERSION >= 3
# define PyIntObject PyLongObject
# define PyInt_Type PyLong_Type
# define PyInt_Check(op) PyLong_Check(op)
# define PyInt_CheckExact(op) PyLong_CheckExact(op)
# define PyInt_FromString PyLong_FromString
# define PyInt_FromUnicode PyLong_FromUnicode
# define PyInt_FromLong PyLong_FromLong
# define PyInt_FromSize_t PyLong_FromSize_t
# define PyInt_FromSsize_t PyLong_FromSsize_t
# define PyInt_AsLong PyLong_AsLong
# define PyInt_AS_LONG PyLong_AS_LONG
# define PyInt_AsSsize_t PyLong_AsSsize_t
# define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask
# define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
# define PyNumber_Int PyNumber_Long
# endif
# if PY_MAJOR_VERSION >= 3
# define PyBoolObject PyLongObject
# endif
# if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY
# ifndef PyUnicode_InternFromString
# define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
# endif
# endif
# if PY_VERSION_HEX < 0x030200A4
typedef long Py_hash_t ;
# define __Pyx_PyInt_FromHash_t PyInt_FromLong
# define __Pyx_PyInt_AsHash_t PyInt_AsLong
# else
# define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
# define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t
# endif
# if PY_MAJOR_VERSION >= 3
# define __Pyx_PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func))
# else
# define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass)
# endif
2015-12-02 06:07:31 +00:00
# if PY_VERSION_HEX >= 0x030500B1
# define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
# define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async)
# elif CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
typedef struct {
unaryfunc am_await ;
unaryfunc am_aiter ;
unaryfunc am_anext ;
} __Pyx_PyAsyncMethodsStruct ;
# define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved))
# else
# define __Pyx_PyType_AsAsync(obj) NULL
2015-06-28 09:38:55 +00:00
# endif
# ifndef CYTHON_RESTRICT
# if defined(__GNUC__)
# define CYTHON_RESTRICT __restrict__
# elif defined(_MSC_VER) && _MSC_VER >= 1400
# define CYTHON_RESTRICT __restrict
# elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
# define CYTHON_RESTRICT restrict
# else
# define CYTHON_RESTRICT
# endif
# endif
2015-12-02 06:07:31 +00:00
# define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None)
# ifndef __cplusplus
# error "Cython files generated with the C++ option must be compiled with a C++ compiler."
# endif
# ifndef CYTHON_INLINE
# define CYTHON_INLINE inline
2015-06-28 09:38:55 +00:00
# endif
template < typename T >
2015-12-02 06:07:31 +00:00
void __Pyx_call_destructor ( T & x ) {
x . ~ T ( ) ;
2015-06-28 09:38:55 +00:00
}
template < typename T >
class __Pyx_FakeReference {
public :
__Pyx_FakeReference ( ) : ptr ( NULL ) { }
2015-12-02 06:07:31 +00:00
__Pyx_FakeReference ( const T & ref ) : ptr ( const_cast < T * > ( & ref ) ) { }
2015-06-28 09:38:55 +00:00
T * operator - > ( ) { return ptr ; }
operator T & ( ) { return * ptr ; }
private :
T * ptr ;
} ;
2015-12-02 06:07:31 +00:00
# if defined(WIN32) || defined(MS_WINDOWS)
# define _USE_MATH_DEFINES
# endif
# include <math.h>
# ifdef NAN
# define __PYX_NAN() ((float) NAN)
# else
static CYTHON_INLINE float __PYX_NAN ( ) {
float value ;
memset ( & value , 0xFF , sizeof ( value ) ) ;
return value ;
}
2015-06-28 09:38:55 +00:00
# endif
# if PY_MAJOR_VERSION >= 3
# define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y)
# define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y)
# else
# define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y)
# define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y)
# endif
# ifndef __PYX_EXTERN_C
# ifdef __cplusplus
# define __PYX_EXTERN_C extern "C"
# else
# define __PYX_EXTERN_C extern
# endif
# endif
2015-07-24 06:43:34 +00:00
# define __PYX_HAVE__rgbmatrix__core
# define __PYX_HAVE_API__rgbmatrix__core
2015-06-28 09:38:55 +00:00
# include "stdint.h"
2015-07-24 06:43:34 +00:00
# include "canvas.h"
2015-06-28 09:38:55 +00:00
# include "gpio.h"
# include "ios"
# include "new"
# include "stdexcept"
# include "typeinfo"
# include "led-matrix.h"
2015-07-24 06:43:34 +00:00
# include "graphics.h"
2015-06-28 09:38:55 +00:00
# ifdef _OPENMP
# include <omp.h>
# endif /* _OPENMP */
# ifdef PYREX_WITHOUT_ASSERTIONS
# define CYTHON_WITHOUT_ASSERTIONS
# endif
# ifndef CYTHON_UNUSED
# if defined(__GNUC__)
# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
# define CYTHON_UNUSED __attribute__ ((__unused__))
# else
# define CYTHON_UNUSED
# endif
# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
# define CYTHON_UNUSED __attribute__ ((__unused__))
# else
# define CYTHON_UNUSED
# endif
# endif
# ifndef CYTHON_NCP_UNUSED
# if CYTHON_COMPILING_IN_CPYTHON
# define CYTHON_NCP_UNUSED
# else
# define CYTHON_NCP_UNUSED CYTHON_UNUSED
# endif
# endif
typedef struct { PyObject * * p ; char * s ; const Py_ssize_t n ; const char * encoding ;
const char is_unicode ; const char is_str ; const char intern ; } __Pyx_StringTabEntry ;
# define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
# define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT 0
# define __PYX_DEFAULT_STRING_ENCODING ""
# define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
# define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
2015-12-02 06:07:31 +00:00
# define __Pyx_uchar_cast(c) ((unsigned char)c)
# define __Pyx_long_cast(x) ((long)x)
# define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\
( sizeof ( type ) < sizeof ( Py_ssize_t ) ) | | \
( sizeof ( type ) > sizeof ( Py_ssize_t ) & & \
likely ( v < ( type ) PY_SSIZE_T_MAX | | \
v = = ( type ) PY_SSIZE_T_MAX ) & & \
( ! is_signed | | likely ( v > ( type ) PY_SSIZE_T_MIN | | \
v = = ( type ) PY_SSIZE_T_MIN ) ) ) | | \
( sizeof ( type ) = = sizeof ( Py_ssize_t ) & & \
( is_signed | | likely ( v < ( type ) PY_SSIZE_T_MAX | | \
2015-06-28 09:38:55 +00:00
v = = ( type ) PY_SSIZE_T_MAX ) ) ) )
2015-12-02 06:07:31 +00:00
# if defined (__cplusplus) && __cplusplus >= 201103L
# include <cstdlib>
# define __Pyx_sst_abs(value) std::abs(value)
# elif SIZEOF_INT >= SIZEOF_SIZE_T
# define __Pyx_sst_abs(value) abs(value)
# elif SIZEOF_LONG >= SIZEOF_SIZE_T
# define __Pyx_sst_abs(value) labs(value)
# elif defined (_MSC_VER) && defined (_M_X64)
# define __Pyx_sst_abs(value) _abs64(value)
# elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
# define __Pyx_sst_abs(value) llabs(value)
# elif defined (__GNUC__)
# define __Pyx_sst_abs(value) __builtin_llabs(value)
# else
# define __Pyx_sst_abs(value) ((value<0) ? -value : value)
# endif
2015-06-28 09:38:55 +00:00
static CYTHON_INLINE char * __Pyx_PyObject_AsString ( PyObject * ) ;
static CYTHON_INLINE char * __Pyx_PyObject_AsStringAndSize ( PyObject * , Py_ssize_t * length ) ;
# define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s))
# define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
# define __Pyx_PyBytes_FromString PyBytes_FromString
# define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
static CYTHON_INLINE PyObject * __Pyx_PyUnicode_FromString ( const char * ) ;
# if PY_MAJOR_VERSION < 3
# define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString
# define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
# else
# define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString
# define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
# endif
# define __Pyx_PyObject_AsSString(s) ((signed char*) __Pyx_PyObject_AsString(s))
# define __Pyx_PyObject_AsUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s))
# define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s)
# define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s)
# define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s)
# define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s)
# define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s)
# if PY_MAJOR_VERSION < 3
static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen ( const Py_UNICODE * u )
{
const Py_UNICODE * u_end = u ;
while ( * u_end + + ) ;
return ( size_t ) ( u_end - u - 1 ) ;
}
# else
# define __Pyx_Py_UNICODE_strlen Py_UNICODE_strlen
# endif
# define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u))
# define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode
# define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode
2015-12-02 06:07:31 +00:00
# define __Pyx_NewRef(obj) (Py_INCREF(obj), obj)
# define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None)
# define __Pyx_PyBool_FromLong(b) ((b) ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False))
2015-06-28 09:38:55 +00:00
static CYTHON_INLINE int __Pyx_PyObject_IsTrue ( PyObject * ) ;
static CYTHON_INLINE PyObject * __Pyx_PyNumber_Int ( PyObject * x ) ;
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t ( PyObject * ) ;
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t ( size_t ) ;
# if CYTHON_COMPILING_IN_CPYTHON
# define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
# else
# define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
# endif
# define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
# if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
static int __Pyx_sys_getdefaultencoding_not_ascii ;
static int __Pyx_init_sys_getdefaultencoding_params ( void ) {
PyObject * sys ;
PyObject * default_encoding = NULL ;
PyObject * ascii_chars_u = NULL ;
PyObject * ascii_chars_b = NULL ;
const char * default_encoding_c ;
sys = PyImport_ImportModule ( " sys " ) ;
if ( ! sys ) goto bad ;
default_encoding = PyObject_CallMethod ( sys , ( char * ) " getdefaultencoding " , NULL ) ;
Py_DECREF ( sys ) ;
if ( ! default_encoding ) goto bad ;
default_encoding_c = PyBytes_AsString ( default_encoding ) ;
if ( ! default_encoding_c ) goto bad ;
if ( strcmp ( default_encoding_c , " ascii " ) = = 0 ) {
__Pyx_sys_getdefaultencoding_not_ascii = 0 ;
} else {
char ascii_chars [ 128 ] ;
int c ;
for ( c = 0 ; c < 128 ; c + + ) {
ascii_chars [ c ] = c ;
}
__Pyx_sys_getdefaultencoding_not_ascii = 1 ;
ascii_chars_u = PyUnicode_DecodeASCII ( ascii_chars , 128 , NULL ) ;
if ( ! ascii_chars_u ) goto bad ;
ascii_chars_b = PyUnicode_AsEncodedString ( ascii_chars_u , default_encoding_c , NULL ) ;
if ( ! ascii_chars_b | | ! PyBytes_Check ( ascii_chars_b ) | | memcmp ( ascii_chars , PyBytes_AS_STRING ( ascii_chars_b ) , 128 ) ! = 0 ) {
PyErr_Format (
PyExc_ValueError ,
" This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii. " ,
default_encoding_c ) ;
goto bad ;
}
Py_DECREF ( ascii_chars_u ) ;
Py_DECREF ( ascii_chars_b ) ;
}
Py_DECREF ( default_encoding ) ;
return 0 ;
bad :
Py_XDECREF ( default_encoding ) ;
Py_XDECREF ( ascii_chars_u ) ;
Py_XDECREF ( ascii_chars_b ) ;
return - 1 ;
}
# endif
# if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3
# define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
# else
# define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
# if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
static char * __PYX_DEFAULT_STRING_ENCODING ;
static int __Pyx_init_sys_getdefaultencoding_params ( void ) {
PyObject * sys ;
PyObject * default_encoding = NULL ;
char * default_encoding_c ;
sys = PyImport_ImportModule ( " sys " ) ;
if ( ! sys ) goto bad ;
default_encoding = PyObject_CallMethod ( sys , ( char * ) ( const char * ) " getdefaultencoding " , NULL ) ;
Py_DECREF ( sys ) ;
if ( ! default_encoding ) goto bad ;
default_encoding_c = PyBytes_AsString ( default_encoding ) ;
if ( ! default_encoding_c ) goto bad ;
__PYX_DEFAULT_STRING_ENCODING = ( char * ) malloc ( strlen ( default_encoding_c ) ) ;
if ( ! __PYX_DEFAULT_STRING_ENCODING ) goto bad ;
strcpy ( __PYX_DEFAULT_STRING_ENCODING , default_encoding_c ) ;
Py_DECREF ( default_encoding ) ;
return 0 ;
bad :
Py_XDECREF ( default_encoding ) ;
return - 1 ;
}
# endif
# endif
/* Test for GCC > 2.95 */
# if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
# define likely(x) __builtin_expect(!!(x), 1)
# define unlikely(x) __builtin_expect(!!(x), 0)
# else /* !__GNUC__ or GCC < 2.95 */
# define likely(x) (x)
# define unlikely(x) (x)
# endif /* __GNUC__ */
static PyObject * __pyx_m ;
static PyObject * __pyx_d ;
static PyObject * __pyx_b ;
static PyObject * __pyx_empty_tuple ;
static PyObject * __pyx_empty_bytes ;
static int __pyx_lineno ;
static int __pyx_clineno = 0 ;
static const char * __pyx_cfilenm = __FILE__ ;
static const char * __pyx_filename ;
static const char * __pyx_f [ ] = {
2015-07-24 06:43:34 +00:00
" rgbmatrix/core.pyx " ,
2015-06-28 09:38:55 +00:00
} ;
/*--- Type declarations ---*/
2015-07-24 06:43:34 +00:00
struct __pyx_obj_9rgbmatrix_4core_Canvas ;
struct __pyx_obj_9rgbmatrix_4core_FrameCanvas ;
struct __pyx_obj_9rgbmatrix_4core_RGBMatrix ;
2015-06-28 09:38:55 +00:00
2015-07-24 06:43:34 +00:00
/* "rgbmatrix/core.pxd":3
* cimport cppinc
2015-06-28 09:38:55 +00:00
*
2015-07-24 06:43:34 +00:00
* cdef class Canvas : # < < < < < < < < < < < < < <
* cdef cppinc . Canvas * __getCanvas ( self ) except +
2015-06-28 09:38:55 +00:00
*
*/
2015-07-24 06:43:34 +00:00
struct __pyx_obj_9rgbmatrix_4core_Canvas {
2015-06-28 09:38:55 +00:00
PyObject_HEAD
2015-07-24 06:43:34 +00:00
struct __pyx_vtabstruct_9rgbmatrix_4core_Canvas * __pyx_vtab ;
} ;
/* "rgbmatrix/core.pxd":6
* cdef cppinc . Canvas * __getCanvas ( self ) except +
*
* cdef class FrameCanvas ( Canvas ) : # < < < < < < < < < < < < < <
* cdef cppinc . FrameCanvas * __canvas
*
*/
struct __pyx_obj_9rgbmatrix_4core_FrameCanvas {
struct __pyx_obj_9rgbmatrix_4core_Canvas __pyx_base ;
2015-06-28 09:38:55 +00:00
rgb_matrix : : FrameCanvas * __pyx___canvas ;
} ;
2015-07-24 06:43:34 +00:00
/* "rgbmatrix/core.pxd":9
* cdef cppinc . FrameCanvas * __canvas
2015-06-28 09:38:55 +00:00
*
2015-07-24 06:43:34 +00:00
* cdef class RGBMatrix ( Canvas ) : # < < < < < < < < < < < < < <
* cdef cppinc . RGBMatrix * __matrix
* cdef cppinc . GPIO * __gpio
2015-06-28 09:38:55 +00:00
*/
2015-07-24 06:43:34 +00:00
struct __pyx_obj_9rgbmatrix_4core_RGBMatrix {
struct __pyx_obj_9rgbmatrix_4core_Canvas __pyx_base ;
2015-06-28 09:38:55 +00:00
rgb_matrix : : RGBMatrix * __pyx___matrix ;
rgb_matrix : : GPIO * __pyx___gpio ;
} ;
2016-08-28 23:25:45 +00:00
/* "rgbmatrix/core.pyx":7
* from PIL import Image
2015-06-28 09:38:55 +00:00
*
2015-07-24 06:43:34 +00:00
* cdef class Canvas : # < < < < < < < < < < < < < <
* cdef cppinc . Canvas * __getCanvas ( self ) except + :
* raise Exception ( " Not implemented " )
*/
struct __pyx_vtabstruct_9rgbmatrix_4core_Canvas {
rgb_matrix : : Canvas * ( * __pyx___getCanvas ) ( struct __pyx_obj_9rgbmatrix_4core_Canvas * ) ;
} ;
static struct __pyx_vtabstruct_9rgbmatrix_4core_Canvas * __pyx_vtabptr_9rgbmatrix_4core_Canvas ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":24
2016-08-28 23:25:45 +00:00
* self . SetPixel ( x + offset_x , y + offset_y , r , g , b )
2015-06-28 09:38:55 +00:00
*
2015-07-24 06:43:34 +00:00
* cdef class FrameCanvas ( Canvas ) : # < < < < < < < < < < < < < <
* def __dealloc__ ( self ) :
* if < void * > self . __canvas ! = NULL :
2015-06-28 09:38:55 +00:00
*/
2015-07-24 06:43:34 +00:00
struct __pyx_vtabstruct_9rgbmatrix_4core_FrameCanvas {
struct __pyx_vtabstruct_9rgbmatrix_4core_Canvas __pyx_base ;
rgb_matrix : : Canvas * ( * __pyx___getCanvas ) ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * ) ;
2015-06-28 09:38:55 +00:00
} ;
2015-07-24 06:43:34 +00:00
static struct __pyx_vtabstruct_9rgbmatrix_4core_FrameCanvas * __pyx_vtabptr_9rgbmatrix_4core_FrameCanvas ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":54
2015-07-24 06:43:34 +00:00
*
*
* cdef class RGBMatrix ( Canvas ) : # < < < < < < < < < < < < < <
* def __cinit__ ( self , int rows , int chains = 1 , int parallel = 1 ) :
* self . __gpio = new cppinc . GPIO ( )
*/
struct __pyx_vtabstruct_9rgbmatrix_4core_RGBMatrix {
struct __pyx_vtabstruct_9rgbmatrix_4core_Canvas __pyx_base ;
rgb_matrix : : Canvas * ( * __pyx___getCanvas ) ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * ) ;
} ;
static struct __pyx_vtabstruct_9rgbmatrix_4core_RGBMatrix * __pyx_vtabptr_9rgbmatrix_4core_RGBMatrix ;
2015-06-28 09:38:55 +00:00
/* --- Runtime support code (head) --- */
# ifndef CYTHON_REFNANNY
# define CYTHON_REFNANNY 0
# endif
# if CYTHON_REFNANNY
typedef struct {
void ( * INCREF ) ( void * , PyObject * , int ) ;
void ( * DECREF ) ( void * , PyObject * , int ) ;
void ( * GOTREF ) ( void * , PyObject * , int ) ;
void ( * GIVEREF ) ( void * , PyObject * , int ) ;
void * ( * SetupContext ) ( const char * , int , const char * ) ;
void ( * FinishContext ) ( void * * ) ;
} __Pyx_RefNannyAPIStruct ;
static __Pyx_RefNannyAPIStruct * __Pyx_RefNanny = NULL ;
static __Pyx_RefNannyAPIStruct * __Pyx_RefNannyImportAPI ( const char * modname ) ;
# define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
# ifdef WITH_THREAD
2015-12-02 06:07:31 +00:00
# define __Pyx_RefNannySetupContext(name, acquire_gil)\
if ( acquire_gil ) { \
PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure ( ) ; \
__pyx_refnanny = __Pyx_RefNanny - > SetupContext ( ( name ) , __LINE__ , __FILE__ ) ; \
PyGILState_Release ( __pyx_gilstate_save ) ; \
} else { \
__pyx_refnanny = __Pyx_RefNanny - > SetupContext ( ( name ) , __LINE__ , __FILE__ ) ; \
2015-06-28 09:38:55 +00:00
}
# else
2015-12-02 06:07:31 +00:00
# define __Pyx_RefNannySetupContext(name, acquire_gil)\
2015-06-28 09:38:55 +00:00
__pyx_refnanny = __Pyx_RefNanny - > SetupContext ( ( name ) , __LINE__ , __FILE__ )
# endif
2015-12-02 06:07:31 +00:00
# define __Pyx_RefNannyFinishContext()\
2015-06-28 09:38:55 +00:00
__Pyx_RefNanny - > FinishContext ( & __pyx_refnanny )
# define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
# define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
# define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
# define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
# define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0)
# define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0)
# define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0)
# define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0)
# else
# define __Pyx_RefNannyDeclarations
# define __Pyx_RefNannySetupContext(name, acquire_gil)
# define __Pyx_RefNannyFinishContext()
# define __Pyx_INCREF(r) Py_INCREF(r)
# define __Pyx_DECREF(r) Py_DECREF(r)
# define __Pyx_GOTREF(r)
# define __Pyx_GIVEREF(r)
# define __Pyx_XINCREF(r) Py_XINCREF(r)
# define __Pyx_XDECREF(r) Py_XDECREF(r)
# define __Pyx_XGOTREF(r)
# define __Pyx_XGIVEREF(r)
# endif
2015-12-02 06:07:31 +00:00
# define __Pyx_XDECREF_SET(r, v) do {\
PyObject * tmp = ( PyObject * ) r ; \
r = v ; __Pyx_XDECREF ( tmp ) ; \
2015-06-28 09:38:55 +00:00
} while ( 0 )
2015-12-02 06:07:31 +00:00
# define __Pyx_DECREF_SET(r, v) do {\
PyObject * tmp = ( PyObject * ) r ; \
r = v ; __Pyx_DECREF ( tmp ) ; \
2015-06-28 09:38:55 +00:00
} while ( 0 )
# define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
# define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)
# if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject * __Pyx_PyObject_GetAttrStr ( PyObject * obj , PyObject * attr_name ) {
PyTypeObject * tp = Py_TYPE ( obj ) ;
if ( likely ( tp - > tp_getattro ) )
return tp - > tp_getattro ( obj , attr_name ) ;
# if PY_MAJOR_VERSION < 3
if ( likely ( tp - > tp_getattr ) )
return tp - > tp_getattr ( obj , PyString_AS_STRING ( attr_name ) ) ;
# endif
return PyObject_GetAttr ( obj , attr_name ) ;
}
# else
# define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
# endif
static PyObject * __Pyx_GetBuiltinName ( PyObject * name ) ;
# if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject * __Pyx_PyObject_Call ( PyObject * func , PyObject * arg , PyObject * kw ) ;
# else
# define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
# endif
static CYTHON_INLINE void __Pyx_ErrRestore ( PyObject * type , PyObject * value , PyObject * tb ) ;
static CYTHON_INLINE void __Pyx_ErrFetch ( PyObject * * type , PyObject * * value , PyObject * * tb ) ;
static void __Pyx_Raise ( PyObject * type , PyObject * value , PyObject * tb , PyObject * cause ) ;
static void __Pyx_RaiseDoubleKeywordsError ( const char * func_name , PyObject * kw_name ) ;
2015-12-02 06:07:31 +00:00
static int __Pyx_ParseOptionalKeywords ( PyObject * kwds , PyObject * * argnames [ ] , \
PyObject * kwds2 , PyObject * values [ ] , Py_ssize_t num_pos_args , \
2015-06-28 09:38:55 +00:00
const char * function_name ) ;
2016-08-28 23:25:45 +00:00
static void __Pyx_RaiseArgtupleInvalid ( const char * func_name , int exact ,
Py_ssize_t num_min , Py_ssize_t num_max , Py_ssize_t num_found ) ;
2016-08-29 00:45:53 +00:00
# include <string.h>
static CYTHON_INLINE int __Pyx_PyBytes_Equals ( PyObject * s1 , PyObject * s2 , int equals ) ;
static CYTHON_INLINE int __Pyx_PyUnicode_Equals ( PyObject * s1 , PyObject * s2 , int equals ) ;
# if PY_MAJOR_VERSION >= 3
# define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals
# else
# define __Pyx_PyString_Equals __Pyx_PyBytes_Equals
# endif
2016-08-28 23:25:45 +00:00
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError ( Py_ssize_t expected ) ;
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError ( Py_ssize_t index ) ;
static CYTHON_INLINE int __Pyx_IterFinish ( void ) ;
static int __Pyx_IternextUnpackEndCheck ( PyObject * retval , Py_ssize_t expected ) ;
# if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject * __Pyx_PyObject_CallMethO ( PyObject * func , PyObject * arg ) ;
# endif
static CYTHON_INLINE PyObject * __Pyx_PyObject_CallOneArg ( PyObject * func , PyObject * arg ) ;
# if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject * __Pyx_PyObject_CallNoArg ( PyObject * func ) ;
# else
# define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL)
# endif
2015-06-28 09:38:55 +00:00
static CYTHON_INLINE int __Pyx_ArgTypeTest ( PyObject * obj , PyTypeObject * type , int none_allowed ,
const char * name , int exact ) ;
static int __Pyx_SetVtable ( PyObject * dict , void * vtable ) ;
2016-08-28 23:25:45 +00:00
static PyObject * __Pyx_Import ( PyObject * name , PyObject * from_list , int level ) ;
static PyObject * __Pyx_ImportFrom ( PyObject * module , PyObject * name ) ;
2015-06-28 09:38:55 +00:00
typedef struct {
int code_line ;
PyCodeObject * code_object ;
} __Pyx_CodeObjectCacheEntry ;
struct __Pyx_CodeObjectCache {
int count ;
int max_count ;
__Pyx_CodeObjectCacheEntry * entries ;
} ;
static struct __Pyx_CodeObjectCache __pyx_code_cache = { 0 , 0 , NULL } ;
static int __pyx_bisect_code_objects ( __Pyx_CodeObjectCacheEntry * entries , int count , int code_line ) ;
static PyCodeObject * __pyx_find_code_object ( int code_line ) ;
static void __pyx_insert_code_object ( int code_line , PyCodeObject * code_object ) ;
static void __Pyx_AddTraceback ( const char * funcname , int c_line ,
int py_line , const char * filename ) ;
static CYTHON_INLINE int __Pyx_PyInt_As_int ( PyObject * ) ;
2016-08-28 23:25:45 +00:00
static CYTHON_INLINE uint8_t __Pyx_PyInt_As_uint8_t ( PyObject * ) ;
2015-06-28 09:38:55 +00:00
static CYTHON_INLINE PyObject * __Pyx_PyInt_From_int ( int value ) ;
2016-08-28 23:25:45 +00:00
static CYTHON_INLINE PyObject * __Pyx_PyInt_From_long ( long value ) ;
2015-06-28 09:38:55 +00:00
static CYTHON_INLINE PyObject * __Pyx_PyInt_From_uint8_t ( uint8_t value ) ;
# ifndef __Pyx_CppExn2PyErr
# include <new>
# include <typeinfo>
# include <stdexcept>
# include <ios>
static void __Pyx_CppExn2PyErr ( ) {
try {
if ( PyErr_Occurred ( ) )
; // let the latest Python exn pass through and ignore the current one
else
throw ;
} catch ( const std : : bad_alloc & exn ) {
PyErr_SetString ( PyExc_MemoryError , exn . what ( ) ) ;
} catch ( const std : : bad_cast & exn ) {
PyErr_SetString ( PyExc_TypeError , exn . what ( ) ) ;
} catch ( const std : : domain_error & exn ) {
PyErr_SetString ( PyExc_ValueError , exn . what ( ) ) ;
} catch ( const std : : invalid_argument & exn ) {
PyErr_SetString ( PyExc_ValueError , exn . what ( ) ) ;
} catch ( const std : : ios_base : : failure & exn ) {
PyErr_SetString ( PyExc_IOError , exn . what ( ) ) ;
} catch ( const std : : out_of_range & exn ) {
PyErr_SetString ( PyExc_IndexError , exn . what ( ) ) ;
} catch ( const std : : overflow_error & exn ) {
PyErr_SetString ( PyExc_OverflowError , exn . what ( ) ) ;
} catch ( const std : : range_error & exn ) {
PyErr_SetString ( PyExc_ArithmeticError , exn . what ( ) ) ;
} catch ( const std : : underflow_error & exn ) {
PyErr_SetString ( PyExc_ArithmeticError , exn . what ( ) ) ;
} catch ( const std : : exception & exn ) {
PyErr_SetString ( PyExc_RuntimeError , exn . what ( ) ) ;
}
catch ( . . . )
{
PyErr_SetString ( PyExc_RuntimeError , " Unknown exception " ) ;
}
}
# endif
static CYTHON_INLINE long __Pyx_PyInt_As_long ( PyObject * ) ;
static int __Pyx_check_binary_version ( void ) ;
static int __Pyx_InitStrings ( __Pyx_StringTabEntry * t ) ;
2015-07-24 06:43:34 +00:00
static rgb_matrix : : Canvas * __pyx_f_9rgbmatrix_4core_6Canvas___getCanvas ( CYTHON_UNUSED struct __pyx_obj_9rgbmatrix_4core_Canvas * __pyx_v_self ) ; /* proto*/
rgb_matrix : : Canvas * __pyx_f_9rgbmatrix_4core_11FrameCanvas___getCanvas ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * __pyx_v_self ) ; /* proto*/
rgb_matrix : : Canvas * __pyx_f_9rgbmatrix_4core_11FrameCanvas___getCanvas__pyx_wrap_1 ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * __pyx_v_self ) ; /* proto*/
rgb_matrix : : Canvas * __pyx_f_9rgbmatrix_4core_9RGBMatrix___getCanvas ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self ) ; /* proto*/
rgb_matrix : : Canvas * __pyx_f_9rgbmatrix_4core_9RGBMatrix___getCanvas__pyx_wrap_1 ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self ) ; /* proto*/
2015-06-28 09:38:55 +00:00
/* Module declarations from 'libcpp' */
/* Module declarations from 'libc.stdint' */
2015-07-24 06:43:34 +00:00
/* Module declarations from 'rgbmatrix.cppinc' */
/* Module declarations from 'rgbmatrix.core' */
static PyTypeObject * __pyx_ptype_9rgbmatrix_4core_Canvas = 0 ;
static PyTypeObject * __pyx_ptype_9rgbmatrix_4core_FrameCanvas = 0 ;
static PyTypeObject * __pyx_ptype_9rgbmatrix_4core_RGBMatrix = 0 ;
static PyObject * __pyx_f_9rgbmatrix_4core___createFrameCanvas ( rgb_matrix : : FrameCanvas * ) ; /*proto*/
# define __Pyx_MODULE_NAME "rgbmatrix.core"
int __pyx_module_is_main_rgbmatrix__core = 0 ;
2015-06-28 09:38:55 +00:00
2015-07-24 06:43:34 +00:00
/* Implementation of 'rgbmatrix.core' */
2015-06-28 09:38:55 +00:00
static PyObject * __pyx_builtin_Exception ;
2016-08-28 23:25:45 +00:00
static PyObject * __pyx_builtin_range ;
2015-06-28 09:38:55 +00:00
static char __pyx_k_x [ ] = " x " ;
static char __pyx_k_y [ ] = " y " ;
2016-08-28 23:25:45 +00:00
static char __pyx_k_PIL [ ] = " PIL " ;
2016-08-29 00:45:53 +00:00
static char __pyx_k_RGB [ ] = " RGB " ;
2015-06-28 09:38:55 +00:00
static char __pyx_k_red [ ] = " red " ;
static char __pyx_k_blue [ ] = " blue " ;
2016-08-28 23:25:45 +00:00
static char __pyx_k_load [ ] = " load " ;
2015-06-28 09:38:55 +00:00
static char __pyx_k_main [ ] = " __main__ " ;
2016-08-29 00:45:53 +00:00
static char __pyx_k_mode [ ] = " mode " ;
2015-06-28 09:38:55 +00:00
static char __pyx_k_rows [ ] = " rows " ;
2016-08-28 23:25:45 +00:00
static char __pyx_k_size [ ] = " size " ;
2015-06-28 09:38:55 +00:00
static char __pyx_k_test [ ] = " __test__ " ;
2016-08-28 23:25:45 +00:00
static char __pyx_k_Image [ ] = " Image " ;
2015-06-28 09:38:55 +00:00
static char __pyx_k_green [ ] = " green " ;
2016-08-28 23:25:45 +00:00
static char __pyx_k_image [ ] = " image " ;
static char __pyx_k_range [ ] = " range " ;
static char __pyx_k_width [ ] = " width " ;
2015-06-28 09:38:55 +00:00
static char __pyx_k_chains [ ] = " chains " ;
2016-08-28 23:25:45 +00:00
static char __pyx_k_height [ ] = " height " ;
static char __pyx_k_import [ ] = " __import__ " ;
static char __pyx_k_SetPixel [ ] = " SetPixel " ;
static char __pyx_k_offset_x [ ] = " offset_x " ;
static char __pyx_k_offset_y [ ] = " offset_y " ;
2015-06-28 09:38:55 +00:00
static char __pyx_k_parallel [ ] = " parallel " ;
static char __pyx_k_Exception [ ] = " Exception " ;
static char __pyx_k_pyx_vtable [ ] = " __pyx_vtable__ " ;
2015-07-24 06:43:34 +00:00
static char __pyx_k_Not_implemented [ ] = " Not implemented " ;
2015-06-28 09:38:55 +00:00
static char __pyx_k_Error_initializing_GPIOs [ ] = " Error initializing GPIOs " ;
2015-07-24 06:43:34 +00:00
static char __pyx_k_Canvas_was_destroyed_or_not_init [ ] = " Canvas was destroyed or not initialized, you cannot use this object anymore " ;
2016-08-29 00:45:53 +00:00
static char __pyx_k_Currently_only_RGB_mode_is_suppo [ ] = " Currently, only RGB mode is supported for SetImage(). Please create images with mode 'RGB' or convert first with image = image.convert('RGB'). Pull requests to support more modes natively are also welcome :) " ;
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_kp_s_Canvas_was_destroyed_or_not_init ;
2016-08-29 00:45:53 +00:00
static PyObject * __pyx_kp_s_Currently_only_RGB_mode_is_suppo ;
2015-06-28 09:38:55 +00:00
static PyObject * __pyx_kp_s_Error_initializing_GPIOs ;
static PyObject * __pyx_n_s_Exception ;
2016-08-28 23:25:45 +00:00
static PyObject * __pyx_n_s_Image ;
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_kp_s_Not_implemented ;
2016-08-28 23:25:45 +00:00
static PyObject * __pyx_n_s_PIL ;
2016-08-29 00:45:53 +00:00
static PyObject * __pyx_n_s_RGB ;
2016-08-28 23:25:45 +00:00
static PyObject * __pyx_n_s_SetPixel ;
2015-06-28 09:38:55 +00:00
static PyObject * __pyx_n_s_blue ;
static PyObject * __pyx_n_s_chains ;
static PyObject * __pyx_n_s_green ;
2016-08-28 23:25:45 +00:00
static PyObject * __pyx_n_s_height ;
static PyObject * __pyx_n_s_image ;
static PyObject * __pyx_n_s_import ;
static PyObject * __pyx_n_s_load ;
2015-06-28 09:38:55 +00:00
static PyObject * __pyx_n_s_main ;
2016-08-29 00:45:53 +00:00
static PyObject * __pyx_n_s_mode ;
2016-08-28 23:25:45 +00:00
static PyObject * __pyx_n_s_offset_x ;
static PyObject * __pyx_n_s_offset_y ;
2015-06-28 09:38:55 +00:00
static PyObject * __pyx_n_s_parallel ;
static PyObject * __pyx_n_s_pyx_vtable ;
2016-08-28 23:25:45 +00:00
static PyObject * __pyx_n_s_range ;
2015-06-28 09:38:55 +00:00
static PyObject * __pyx_n_s_red ;
static PyObject * __pyx_n_s_rows ;
2016-08-28 23:25:45 +00:00
static PyObject * __pyx_n_s_size ;
2015-06-28 09:38:55 +00:00
static PyObject * __pyx_n_s_test ;
2016-08-28 23:25:45 +00:00
static PyObject * __pyx_n_s_width ;
2015-06-28 09:38:55 +00:00
static PyObject * __pyx_n_s_x ;
static PyObject * __pyx_n_s_y ;
2016-08-28 23:25:45 +00:00
static PyObject * __pyx_pf_9rgbmatrix_4core_6Canvas_SetImage ( struct __pyx_obj_9rgbmatrix_4core_Canvas * __pyx_v_self , PyObject * __pyx_v_image , int __pyx_v_offset_x , int __pyx_v_offset_y ) ; /* proto */
2015-12-02 06:07:31 +00:00
static void __pyx_pf_9rgbmatrix_4core_11FrameCanvas___dealloc__ ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * __pyx_v_self ) ; /* proto */
static PyObject * __pyx_pf_9rgbmatrix_4core_11FrameCanvas_2Fill ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * __pyx_v_self , uint8_t __pyx_v_red , uint8_t __pyx_v_green , uint8_t __pyx_v_blue ) ; /* proto */
static PyObject * __pyx_pf_9rgbmatrix_4core_11FrameCanvas_4Clear ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * __pyx_v_self ) ; /* proto */
static PyObject * __pyx_pf_9rgbmatrix_4core_11FrameCanvas_6SetPixel ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * __pyx_v_self , int __pyx_v_x , int __pyx_v_y , uint8_t __pyx_v_red , uint8_t __pyx_v_green , uint8_t __pyx_v_blue ) ; /* proto */
static PyObject * __pyx_pf_9rgbmatrix_4core_11FrameCanvas_5width___get__ ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * __pyx_v_self ) ; /* proto */
static PyObject * __pyx_pf_9rgbmatrix_4core_11FrameCanvas_6height___get__ ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * __pyx_v_self ) ; /* proto */
static PyObject * __pyx_pf_9rgbmatrix_4core_11FrameCanvas_7pwmBits___get__ ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * __pyx_v_self ) ; /* proto */
static int __pyx_pf_9rgbmatrix_4core_11FrameCanvas_7pwmBits_2__set__ ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * __pyx_v_self , PyObject * __pyx_v_pwmBits ) ; /* proto */
static int __pyx_pf_9rgbmatrix_4core_9RGBMatrix___cinit__ ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self , int __pyx_v_rows , int __pyx_v_chains , int __pyx_v_parallel ) ; /* proto */
static void __pyx_pf_9rgbmatrix_4core_9RGBMatrix_2__dealloc__ ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self ) ; /* proto */
static PyObject * __pyx_pf_9rgbmatrix_4core_9RGBMatrix_4Fill ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self , uint8_t __pyx_v_red , uint8_t __pyx_v_green , uint8_t __pyx_v_blue ) ; /* proto */
static PyObject * __pyx_pf_9rgbmatrix_4core_9RGBMatrix_6SetPixel ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self , int __pyx_v_x , int __pyx_v_y , uint8_t __pyx_v_red , uint8_t __pyx_v_green , uint8_t __pyx_v_blue ) ; /* proto */
static PyObject * __pyx_pf_9rgbmatrix_4core_9RGBMatrix_8Clear ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self ) ; /* proto */
static PyObject * __pyx_pf_9rgbmatrix_4core_9RGBMatrix_10CreateFrameCanvas ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self ) ; /* proto */
static PyObject * __pyx_pf_9rgbmatrix_4core_9RGBMatrix_12SwapOnVSync ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self , struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * __pyx_v_newFrame ) ; /* proto */
static PyObject * __pyx_pf_9rgbmatrix_4core_9RGBMatrix_16luminanceCorrect___get__ ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self ) ; /* proto */
static int __pyx_pf_9rgbmatrix_4core_9RGBMatrix_16luminanceCorrect_2__set__ ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self , PyObject * __pyx_v_luminanceCorrect ) ; /* proto */
static PyObject * __pyx_pf_9rgbmatrix_4core_9RGBMatrix_7pwmBits___get__ ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self ) ; /* proto */
static int __pyx_pf_9rgbmatrix_4core_9RGBMatrix_7pwmBits_2__set__ ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self , PyObject * __pyx_v_pwmBits ) ; /* proto */
static PyObject * __pyx_pf_9rgbmatrix_4core_9RGBMatrix_10brightness___get__ ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self ) ; /* proto */
static int __pyx_pf_9rgbmatrix_4core_9RGBMatrix_10brightness_2__set__ ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self , PyObject * __pyx_v_brightness ) ; /* proto */
static PyObject * __pyx_pf_9rgbmatrix_4core_9RGBMatrix_6height___get__ ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self ) ; /* proto */
static PyObject * __pyx_pf_9rgbmatrix_4core_9RGBMatrix_5width___get__ ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self ) ; /* proto */
static PyObject * __pyx_tp_new_9rgbmatrix_4core_Canvas ( PyTypeObject * t , PyObject * a , PyObject * k ) ; /*proto*/
static PyObject * __pyx_tp_new_9rgbmatrix_4core_FrameCanvas ( PyTypeObject * t , PyObject * a , PyObject * k ) ; /*proto*/
static PyObject * __pyx_tp_new_9rgbmatrix_4core_RGBMatrix ( PyTypeObject * t , PyObject * a , PyObject * k ) ; /*proto*/
2015-06-28 09:38:55 +00:00
static PyObject * __pyx_tuple_ ;
static PyObject * __pyx_tuple__2 ;
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_tuple__3 ;
static PyObject * __pyx_tuple__4 ;
2016-08-29 00:45:53 +00:00
static PyObject * __pyx_tuple__5 ;
2015-06-28 09:38:55 +00:00
2016-08-28 23:25:45 +00:00
/* "rgbmatrix/core.pyx":8
2015-06-28 09:38:55 +00:00
*
2015-07-24 06:43:34 +00:00
* cdef class Canvas :
* cdef cppinc . Canvas * __getCanvas ( self ) except + : # < < < < < < < < < < < < < <
* raise Exception ( " Not implemented " )
*
*/
static rgb_matrix : : Canvas * __pyx_f_9rgbmatrix_4core_6Canvas___getCanvas ( CYTHON_UNUSED struct __pyx_obj_9rgbmatrix_4core_Canvas * __pyx_v_self ) {
rgb_matrix : : Canvas * __pyx_r ;
__Pyx_RefNannyDeclarations
PyObject * __pyx_t_1 = NULL ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
__Pyx_RefNannySetupContext ( " __getCanvas " , 0 ) ;
2016-08-28 23:25:45 +00:00
/* "rgbmatrix/core.pyx":9
2015-07-24 06:43:34 +00:00
* cdef class Canvas :
* cdef cppinc . Canvas * __getCanvas ( self ) except + :
* raise Exception ( " Not implemented " ) # < < < < < < < < < < < < < <
*
2016-08-28 23:25:45 +00:00
* # First implementation of a SetImage ( ) . OPTIMIZE_ME : A more native
2015-07-24 06:43:34 +00:00
*/
2016-08-28 23:25:45 +00:00
__pyx_t_1 = __Pyx_PyObject_Call ( __pyx_builtin_Exception , __pyx_tuple_ , NULL ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 9 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-07-24 06:43:34 +00:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__Pyx_Raise ( __pyx_t_1 , 0 , 0 , 0 ) ;
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
2016-08-28 23:25:45 +00:00
{ __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 9 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-07-24 06:43:34 +00:00
2016-08-28 23:25:45 +00:00
/* "rgbmatrix/core.pyx":8
2015-07-24 06:43:34 +00:00
*
* cdef class Canvas :
* cdef cppinc . Canvas * __getCanvas ( self ) except + : # < < < < < < < < < < < < < <
* raise Exception ( " Not implemented " )
*
*/
/* function exit code */
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
__Pyx_AddTraceback ( " rgbmatrix.core.Canvas.__getCanvas " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
__pyx_r = 0 ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-08-28 23:25:45 +00:00
/* "rgbmatrix/core.pyx":14
* # implementation that directly reads the buffer and calls the underlying
* # C functions can certainly be faster .
* def SetImage ( self , image , int offset_x = 0 , int offset_y = 0 ) : # < < < < < < < < < < < < < <
2016-08-29 00:45:53 +00:00
* if ( image . mode ! = " RGB " ) :
* raise Exception ( " Currently, only RGB mode is supported for SetImage(). Please create images with mode 'RGB' or convert first with image = image.convert('RGB'). Pull requests to support more modes natively are also welcome :) " )
2016-08-28 23:25:45 +00:00
*/
/* Python wrapper */
static PyObject * __pyx_pw_9rgbmatrix_4core_6Canvas_1SetImage ( PyObject * __pyx_v_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) ; /*proto*/
static PyObject * __pyx_pw_9rgbmatrix_4core_6Canvas_1SetImage ( PyObject * __pyx_v_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) {
PyObject * __pyx_v_image = 0 ;
int __pyx_v_offset_x ;
int __pyx_v_offset_y ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " SetImage (wrapper) " , 0 ) ;
{
static PyObject * * __pyx_pyargnames [ ] = { & __pyx_n_s_image , & __pyx_n_s_offset_x , & __pyx_n_s_offset_y , 0 } ;
PyObject * values [ 3 ] = { 0 , 0 , 0 } ;
if ( unlikely ( __pyx_kwds ) ) {
Py_ssize_t kw_args ;
const Py_ssize_t pos_args = PyTuple_GET_SIZE ( __pyx_args ) ;
switch ( pos_args ) {
case 3 : values [ 2 ] = PyTuple_GET_ITEM ( __pyx_args , 2 ) ;
case 2 : values [ 1 ] = PyTuple_GET_ITEM ( __pyx_args , 1 ) ;
case 1 : values [ 0 ] = PyTuple_GET_ITEM ( __pyx_args , 0 ) ;
case 0 : break ;
default : goto __pyx_L5_argtuple_error ;
}
kw_args = PyDict_Size ( __pyx_kwds ) ;
switch ( pos_args ) {
case 0 :
if ( likely ( ( values [ 0 ] = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_image ) ) ! = 0 ) ) kw_args - - ;
else goto __pyx_L5_argtuple_error ;
case 1 :
if ( kw_args > 0 ) {
PyObject * value = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_offset_x ) ;
if ( value ) { values [ 1 ] = value ; kw_args - - ; }
}
case 2 :
if ( kw_args > 0 ) {
PyObject * value = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_offset_y ) ;
if ( value ) { values [ 2 ] = value ; kw_args - - ; }
}
}
if ( unlikely ( kw_args > 0 ) ) {
if ( unlikely ( __Pyx_ParseOptionalKeywords ( __pyx_kwds , __pyx_pyargnames , 0 , values , pos_args , " SetImage " ) < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 14 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
}
} else {
switch ( PyTuple_GET_SIZE ( __pyx_args ) ) {
case 3 : values [ 2 ] = PyTuple_GET_ITEM ( __pyx_args , 2 ) ;
case 2 : values [ 1 ] = PyTuple_GET_ITEM ( __pyx_args , 1 ) ;
case 1 : values [ 0 ] = PyTuple_GET_ITEM ( __pyx_args , 0 ) ;
break ;
default : goto __pyx_L5_argtuple_error ;
}
}
__pyx_v_image = values [ 0 ] ;
if ( values [ 1 ] ) {
__pyx_v_offset_x = __Pyx_PyInt_As_int ( values [ 1 ] ) ; if ( unlikely ( ( __pyx_v_offset_x = = ( int ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 14 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
} else {
__pyx_v_offset_x = ( ( int ) 0 ) ;
}
if ( values [ 2 ] ) {
__pyx_v_offset_y = __Pyx_PyInt_As_int ( values [ 2 ] ) ; if ( unlikely ( ( __pyx_v_offset_y = = ( int ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 14 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
} else {
__pyx_v_offset_y = ( ( int ) 0 ) ;
}
}
goto __pyx_L4_argument_unpacking_done ;
__pyx_L5_argtuple_error : ;
__Pyx_RaiseArgtupleInvalid ( " SetImage " , 0 , 1 , 3 , PyTuple_GET_SIZE ( __pyx_args ) ) ; { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 14 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
__pyx_L3_error : ;
__Pyx_AddTraceback ( " rgbmatrix.core.Canvas.SetImage " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
__Pyx_RefNannyFinishContext ( ) ;
return NULL ;
__pyx_L4_argument_unpacking_done : ;
__pyx_r = __pyx_pf_9rgbmatrix_4core_6Canvas_SetImage ( ( ( struct __pyx_obj_9rgbmatrix_4core_Canvas * ) __pyx_v_self ) , __pyx_v_image , __pyx_v_offset_x , __pyx_v_offset_y ) ;
/* function exit code */
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
static PyObject * __pyx_pf_9rgbmatrix_4core_6Canvas_SetImage ( struct __pyx_obj_9rgbmatrix_4core_Canvas * __pyx_v_self , PyObject * __pyx_v_image , int __pyx_v_offset_x , int __pyx_v_offset_y ) {
PyObject * __pyx_v_img_width = NULL ;
PyObject * __pyx_v_img_height = NULL ;
2016-08-29 00:45:53 +00:00
PyObject * __pyx_v_pixels = NULL ;
2016-08-28 23:25:45 +00:00
PyObject * __pyx_v_x = NULL ;
PyObject * __pyx_v_y = NULL ;
PyObject * __pyx_v_r = NULL ;
PyObject * __pyx_v_g = NULL ;
PyObject * __pyx_v_b = NULL ;
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
PyObject * __pyx_t_1 = NULL ;
2016-08-29 00:45:53 +00:00
int __pyx_t_2 ;
2016-08-28 23:25:45 +00:00
PyObject * __pyx_t_3 = NULL ;
PyObject * __pyx_t_4 = NULL ;
2016-08-29 00:45:53 +00:00
PyObject * __pyx_t_5 = NULL ;
PyObject * ( * __pyx_t_6 ) ( PyObject * ) ;
int __pyx_t_7 ;
2016-08-28 23:25:45 +00:00
long __pyx_t_8 ;
2016-08-29 00:45:53 +00:00
long __pyx_t_9 ;
PyObject * __pyx_t_10 = NULL ;
2016-08-28 23:25:45 +00:00
Py_ssize_t __pyx_t_11 ;
PyObject * ( * __pyx_t_12 ) ( PyObject * ) ;
PyObject * __pyx_t_13 = NULL ;
Py_ssize_t __pyx_t_14 ;
PyObject * ( * __pyx_t_15 ) ( PyObject * ) ;
PyObject * __pyx_t_16 = NULL ;
Py_ssize_t __pyx_t_17 ;
PyObject * __pyx_t_18 = NULL ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
__Pyx_RefNannySetupContext ( " SetImage " , 0 ) ;
/* "rgbmatrix/core.pyx":15
* # C functions can certainly be faster .
* def SetImage ( self , image , int offset_x = 0 , int offset_y = 0 ) :
2016-08-29 00:45:53 +00:00
* if ( image . mode ! = " RGB " ) : # < < < < < < < < < < < < < <
* raise Exception ( " Currently, only RGB mode is supported for SetImage(). Please create images with mode 'RGB' or convert first with image = image.convert('RGB'). Pull requests to support more modes natively are also welcome :) " )
* img_width , img_height = image . size
*/
__pyx_t_1 = __Pyx_PyObject_GetAttrStr ( __pyx_v_image , __pyx_n_s_mode ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 15 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_t_2 = ( __Pyx_PyString_Equals ( __pyx_t_1 , __pyx_n_s_RGB , Py_NE ) ) ; if ( unlikely ( __pyx_t_2 < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 15 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
if ( __pyx_t_2 ) {
/* "rgbmatrix/core.pyx":16
* def SetImage ( self , image , int offset_x = 0 , int offset_y = 0 ) :
* if ( image . mode ! = " RGB " ) :
* raise Exception ( " Currently, only RGB mode is supported for SetImage(). Please create images with mode 'RGB' or convert first with image = image.convert('RGB'). Pull requests to support more modes natively are also welcome :) " ) # < < < < < < < < < < < < < <
* img_width , img_height = image . size
* pixels = image . load ( )
*/
__pyx_t_1 = __Pyx_PyObject_Call ( __pyx_builtin_Exception , __pyx_tuple__2 , NULL ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 16 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_1 ) ;
__Pyx_Raise ( __pyx_t_1 , 0 , 0 , 0 ) ;
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
{ __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 16 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
/* "rgbmatrix/core.pyx":15
* # C functions can certainly be faster .
* def SetImage ( self , image , int offset_x = 0 , int offset_y = 0 ) :
* if ( image . mode ! = " RGB " ) : # < < < < < < < < < < < < < <
* raise Exception ( " Currently, only RGB mode is supported for SetImage(). Please create images with mode 'RGB' or convert first with image = image.convert('RGB'). Pull requests to support more modes natively are also welcome :) " )
* img_width , img_height = image . size
*/
}
/* "rgbmatrix/core.pyx":17
* if ( image . mode ! = " RGB " ) :
* raise Exception ( " Currently, only RGB mode is supported for SetImage(). Please create images with mode 'RGB' or convert first with image = image.convert('RGB'). Pull requests to support more modes natively are also welcome :) " )
2016-08-28 23:25:45 +00:00
* img_width , img_height = image . size # < < < < < < < < < < < < < <
2016-08-29 00:45:53 +00:00
* pixels = image . load ( )
2016-08-28 23:25:45 +00:00
* for x in range ( max ( 0 , - offset_x ) , min ( img_width , self . width - offset_x ) ) :
*/
2016-08-29 00:45:53 +00:00
__pyx_t_1 = __Pyx_PyObject_GetAttrStr ( __pyx_v_image , __pyx_n_s_size ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 17 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
if ( ( likely ( PyTuple_CheckExact ( __pyx_t_1 ) ) ) | | ( PyList_CheckExact ( __pyx_t_1 ) ) ) {
PyObject * sequence = __pyx_t_1 ;
# if CYTHON_COMPILING_IN_CPYTHON
Py_ssize_t size = Py_SIZE ( sequence ) ;
# else
Py_ssize_t size = PySequence_Size ( sequence ) ;
# endif
if ( unlikely ( size ! = 2 ) ) {
if ( size > 2 ) __Pyx_RaiseTooManyValuesError ( 2 ) ;
else if ( size > = 0 ) __Pyx_RaiseNeedMoreValuesError ( size ) ;
2016-08-29 00:45:53 +00:00
{ __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 17 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
}
# if CYTHON_COMPILING_IN_CPYTHON
if ( likely ( PyTuple_CheckExact ( sequence ) ) ) {
2016-08-29 00:45:53 +00:00
__pyx_t_3 = PyTuple_GET_ITEM ( sequence , 0 ) ;
__pyx_t_4 = PyTuple_GET_ITEM ( sequence , 1 ) ;
2016-08-28 23:25:45 +00:00
} else {
2016-08-29 00:45:53 +00:00
__pyx_t_3 = PyList_GET_ITEM ( sequence , 0 ) ;
__pyx_t_4 = PyList_GET_ITEM ( sequence , 1 ) ;
2016-08-28 23:25:45 +00:00
}
__Pyx_INCREF ( __pyx_t_3 ) ;
2016-08-29 00:45:53 +00:00
__Pyx_INCREF ( __pyx_t_4 ) ;
2016-08-28 23:25:45 +00:00
# else
2016-08-29 00:45:53 +00:00
__pyx_t_3 = PySequence_ITEM ( sequence , 0 ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 17 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
__Pyx_GOTREF ( __pyx_t_3 ) ;
2016-08-29 00:45:53 +00:00
__pyx_t_4 = PySequence_ITEM ( sequence , 1 ) ; if ( unlikely ( ! __pyx_t_4 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 17 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_4 ) ;
2016-08-28 23:25:45 +00:00
# endif
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
} else {
Py_ssize_t index = - 1 ;
2016-08-29 00:45:53 +00:00
__pyx_t_5 = PyObject_GetIter ( __pyx_t_1 ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 17 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_5 ) ;
2016-08-28 23:25:45 +00:00
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
2016-08-29 00:45:53 +00:00
__pyx_t_6 = Py_TYPE ( __pyx_t_5 ) - > tp_iternext ;
index = 0 ; __pyx_t_3 = __pyx_t_6 ( __pyx_t_5 ) ; if ( unlikely ( ! __pyx_t_3 ) ) goto __pyx_L4_unpacking_failed ;
2016-08-28 23:25:45 +00:00
__Pyx_GOTREF ( __pyx_t_3 ) ;
2016-08-29 00:45:53 +00:00
index = 1 ; __pyx_t_4 = __pyx_t_6 ( __pyx_t_5 ) ; if ( unlikely ( ! __pyx_t_4 ) ) goto __pyx_L4_unpacking_failed ;
__Pyx_GOTREF ( __pyx_t_4 ) ;
if ( __Pyx_IternextUnpackEndCheck ( __pyx_t_6 ( __pyx_t_5 ) , 2 ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 17 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__pyx_t_6 = NULL ;
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
goto __pyx_L5_unpacking_done ;
__pyx_L4_unpacking_failed : ;
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
__pyx_t_6 = NULL ;
2016-08-28 23:25:45 +00:00
if ( __Pyx_IterFinish ( ) = = 0 ) __Pyx_RaiseNeedMoreValuesError ( index ) ;
2016-08-29 00:45:53 +00:00
{ __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 17 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__pyx_L5_unpacking_done : ;
2016-08-28 23:25:45 +00:00
}
2016-08-29 00:45:53 +00:00
__pyx_v_img_width = __pyx_t_3 ;
2016-08-28 23:25:45 +00:00
__pyx_t_3 = 0 ;
2016-08-29 00:45:53 +00:00
__pyx_v_img_height = __pyx_t_4 ;
__pyx_t_4 = 0 ;
2016-08-28 23:25:45 +00:00
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":18
* raise Exception ( " Currently, only RGB mode is supported for SetImage(). Please create images with mode 'RGB' or convert first with image = image.convert('RGB'). Pull requests to support more modes natively are also welcome :) " )
2016-08-28 23:25:45 +00:00
* img_width , img_height = image . size
2016-08-29 00:45:53 +00:00
* pixels = image . load ( ) # < < < < < < < < < < < < < <
2016-08-28 23:25:45 +00:00
* for x in range ( max ( 0 , - offset_x ) , min ( img_width , self . width - offset_x ) ) :
* for y in range ( max ( 0 , - offset_y ) , min ( img_height , self . height - offset_y ) ) :
*/
2016-08-29 00:45:53 +00:00
__pyx_t_4 = __Pyx_PyObject_GetAttrStr ( __pyx_v_image , __pyx_n_s_load ) ; if ( unlikely ( ! __pyx_t_4 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 18 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_4 ) ;
__pyx_t_3 = NULL ;
if ( CYTHON_COMPILING_IN_CPYTHON & & likely ( PyMethod_Check ( __pyx_t_4 ) ) ) {
__pyx_t_3 = PyMethod_GET_SELF ( __pyx_t_4 ) ;
if ( likely ( __pyx_t_3 ) ) {
PyObject * function = PyMethod_GET_FUNCTION ( __pyx_t_4 ) ;
__Pyx_INCREF ( __pyx_t_3 ) ;
2016-08-28 23:25:45 +00:00
__Pyx_INCREF ( function ) ;
2016-08-29 00:45:53 +00:00
__Pyx_DECREF_SET ( __pyx_t_4 , function ) ;
2016-08-28 23:25:45 +00:00
}
}
2016-08-29 00:45:53 +00:00
if ( __pyx_t_3 ) {
__pyx_t_1 = __Pyx_PyObject_CallOneArg ( __pyx_t_4 , __pyx_t_3 ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 18 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2016-08-28 23:25:45 +00:00
} else {
2016-08-29 00:45:53 +00:00
__pyx_t_1 = __Pyx_PyObject_CallNoArg ( __pyx_t_4 ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 18 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
}
__Pyx_GOTREF ( __pyx_t_1 ) ;
2016-08-29 00:45:53 +00:00
__Pyx_DECREF ( __pyx_t_4 ) ; __pyx_t_4 = 0 ;
__pyx_v_pixels = __pyx_t_1 ;
2016-08-28 23:25:45 +00:00
__pyx_t_1 = 0 ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":19
2016-08-28 23:25:45 +00:00
* img_width , img_height = image . size
2016-08-29 00:45:53 +00:00
* pixels = image . load ( )
2016-08-28 23:25:45 +00:00
* for x in range ( max ( 0 , - offset_x ) , min ( img_width , self . width - offset_x ) ) : # < < < < < < < < < < < < < <
* for y in range ( max ( 0 , - offset_y ) , min ( img_height , self . height - offset_y ) ) :
2016-08-29 00:45:53 +00:00
* ( r , g , b ) = pixels [ x , y ]
2016-08-28 23:25:45 +00:00
*/
2016-08-29 00:45:53 +00:00
__pyx_t_7 = ( - __pyx_v_offset_x ) ;
__pyx_t_8 = 0 ;
if ( ( ( __pyx_t_7 > __pyx_t_8 ) ! = 0 ) ) {
__pyx_t_9 = __pyx_t_7 ;
2016-08-28 23:25:45 +00:00
} else {
2016-08-29 00:45:53 +00:00
__pyx_t_9 = __pyx_t_8 ;
2016-08-28 23:25:45 +00:00
}
2016-08-29 00:45:53 +00:00
__pyx_t_1 = __Pyx_PyInt_From_long ( __pyx_t_9 ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 19 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2016-08-29 00:45:53 +00:00
__pyx_t_4 = __Pyx_PyObject_GetAttrStr ( ( ( PyObject * ) __pyx_v_self ) , __pyx_n_s_width ) ; if ( unlikely ( ! __pyx_t_4 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 19 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
__Pyx_GOTREF ( __pyx_t_4 ) ;
2016-08-29 00:45:53 +00:00
__pyx_t_3 = __Pyx_PyInt_From_int ( __pyx_v_offset_x ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 19 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_3 ) ;
__pyx_t_5 = PyNumber_Subtract ( __pyx_t_4 , __pyx_t_3 ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 19 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_5 ) ;
__Pyx_DECREF ( __pyx_t_4 ) ; __pyx_t_4 = 0 ;
2016-08-28 23:25:45 +00:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
__Pyx_INCREF ( __pyx_v_img_width ) ;
2016-08-29 00:45:53 +00:00
__pyx_t_3 = __pyx_v_img_width ;
__pyx_t_10 = PyObject_RichCompare ( __pyx_t_5 , __pyx_t_3 , Py_LT ) ; __Pyx_XGOTREF ( __pyx_t_10 ) ; if ( unlikely ( ! __pyx_t_10 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 19 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__pyx_t_2 = __Pyx_PyObject_IsTrue ( __pyx_t_10 ) ; if ( unlikely ( __pyx_t_2 < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 19 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( __pyx_t_10 ) ; __pyx_t_10 = 0 ;
if ( __pyx_t_2 ) {
__Pyx_INCREF ( __pyx_t_5 ) ;
__pyx_t_4 = __pyx_t_5 ;
2016-08-28 23:25:45 +00:00
} else {
2016-08-29 00:45:53 +00:00
__Pyx_INCREF ( __pyx_t_3 ) ;
__pyx_t_4 = __pyx_t_3 ;
2016-08-28 23:25:45 +00:00
}
2016-08-29 00:45:53 +00:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
__pyx_t_5 = PyTuple_New ( 2 ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 19 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_5 ) ;
2016-08-28 23:25:45 +00:00
__Pyx_GIVEREF ( __pyx_t_1 ) ;
2016-08-29 00:45:53 +00:00
PyTuple_SET_ITEM ( __pyx_t_5 , 0 , __pyx_t_1 ) ;
__Pyx_INCREF ( __pyx_t_4 ) ;
__Pyx_GIVEREF ( __pyx_t_4 ) ;
PyTuple_SET_ITEM ( __pyx_t_5 , 1 , __pyx_t_4 ) ;
2016-08-28 23:25:45 +00:00
__pyx_t_1 = 0 ;
__Pyx_DECREF ( __pyx_t_4 ) ; __pyx_t_4 = 0 ;
2016-08-29 00:45:53 +00:00
__pyx_t_4 = __Pyx_PyObject_Call ( __pyx_builtin_range , __pyx_t_5 , NULL ) ; if ( unlikely ( ! __pyx_t_4 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 19 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_4 ) ;
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
if ( likely ( PyList_CheckExact ( __pyx_t_4 ) ) | | PyTuple_CheckExact ( __pyx_t_4 ) ) {
__pyx_t_5 = __pyx_t_4 ; __Pyx_INCREF ( __pyx_t_5 ) ; __pyx_t_11 = 0 ;
2016-08-28 23:25:45 +00:00
__pyx_t_12 = NULL ;
} else {
2016-08-29 00:45:53 +00:00
__pyx_t_11 = - 1 ; __pyx_t_5 = PyObject_GetIter ( __pyx_t_4 ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 19 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_5 ) ;
__pyx_t_12 = Py_TYPE ( __pyx_t_5 ) - > tp_iternext ; if ( unlikely ( ! __pyx_t_12 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 19 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
}
2016-08-29 00:45:53 +00:00
__Pyx_DECREF ( __pyx_t_4 ) ; __pyx_t_4 = 0 ;
2016-08-28 23:25:45 +00:00
for ( ; ; ) {
if ( likely ( ! __pyx_t_12 ) ) {
2016-08-29 00:45:53 +00:00
if ( likely ( PyList_CheckExact ( __pyx_t_5 ) ) ) {
if ( __pyx_t_11 > = PyList_GET_SIZE ( __pyx_t_5 ) ) break ;
2016-08-28 23:25:45 +00:00
# if CYTHON_COMPILING_IN_CPYTHON
2016-08-29 00:45:53 +00:00
__pyx_t_4 = PyList_GET_ITEM ( __pyx_t_5 , __pyx_t_11 ) ; __Pyx_INCREF ( __pyx_t_4 ) ; __pyx_t_11 + + ; if ( unlikely ( 0 < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 19 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
# else
2016-08-29 00:45:53 +00:00
__pyx_t_4 = PySequence_ITEM ( __pyx_t_5 , __pyx_t_11 ) ; __pyx_t_11 + + ; if ( unlikely ( ! __pyx_t_4 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 19 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_4 ) ;
2016-08-28 23:25:45 +00:00
# endif
} else {
2016-08-29 00:45:53 +00:00
if ( __pyx_t_11 > = PyTuple_GET_SIZE ( __pyx_t_5 ) ) break ;
2016-08-28 23:25:45 +00:00
# if CYTHON_COMPILING_IN_CPYTHON
2016-08-29 00:45:53 +00:00
__pyx_t_4 = PyTuple_GET_ITEM ( __pyx_t_5 , __pyx_t_11 ) ; __Pyx_INCREF ( __pyx_t_4 ) ; __pyx_t_11 + + ; if ( unlikely ( 0 < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 19 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
# else
2016-08-29 00:45:53 +00:00
__pyx_t_4 = PySequence_ITEM ( __pyx_t_5 , __pyx_t_11 ) ; __pyx_t_11 + + ; if ( unlikely ( ! __pyx_t_4 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 19 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_4 ) ;
2016-08-28 23:25:45 +00:00
# endif
}
} else {
2016-08-29 00:45:53 +00:00
__pyx_t_4 = __pyx_t_12 ( __pyx_t_5 ) ;
if ( unlikely ( ! __pyx_t_4 ) ) {
2016-08-28 23:25:45 +00:00
PyObject * exc_type = PyErr_Occurred ( ) ;
if ( exc_type ) {
if ( likely ( exc_type = = PyExc_StopIteration | | PyErr_GivenExceptionMatches ( exc_type , PyExc_StopIteration ) ) ) PyErr_Clear ( ) ;
2016-08-29 00:45:53 +00:00
else { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 19 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
}
break ;
}
2016-08-29 00:45:53 +00:00
__Pyx_GOTREF ( __pyx_t_4 ) ;
2016-08-28 23:25:45 +00:00
}
2016-08-29 00:45:53 +00:00
__Pyx_XDECREF_SET ( __pyx_v_x , __pyx_t_4 ) ;
__pyx_t_4 = 0 ;
2016-08-28 23:25:45 +00:00
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":20
* pixels = image . load ( )
2016-08-28 23:25:45 +00:00
* for x in range ( max ( 0 , - offset_x ) , min ( img_width , self . width - offset_x ) ) :
* for y in range ( max ( 0 , - offset_y ) , min ( img_height , self . height - offset_y ) ) : # < < < < < < < < < < < < < <
2016-08-29 00:45:53 +00:00
* ( r , g , b ) = pixels [ x , y ]
2016-08-28 23:25:45 +00:00
* self . SetPixel ( x + offset_x , y + offset_y , r , g , b )
*/
2016-08-29 00:45:53 +00:00
__pyx_t_7 = ( - __pyx_v_offset_y ) ;
__pyx_t_9 = 0 ;
if ( ( ( __pyx_t_7 > __pyx_t_9 ) ! = 0 ) ) {
__pyx_t_8 = __pyx_t_7 ;
2016-08-28 23:25:45 +00:00
} else {
2016-08-29 00:45:53 +00:00
__pyx_t_8 = __pyx_t_9 ;
2016-08-28 23:25:45 +00:00
}
2016-08-29 00:45:53 +00:00
__pyx_t_4 = __Pyx_PyInt_From_long ( __pyx_t_8 ) ; if ( unlikely ( ! __pyx_t_4 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 20 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_4 ) ;
__pyx_t_1 = __Pyx_PyObject_GetAttrStr ( ( ( PyObject * ) __pyx_v_self ) , __pyx_n_s_height ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 20 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2016-08-29 00:45:53 +00:00
__pyx_t_3 = __Pyx_PyInt_From_int ( __pyx_v_offset_y ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 20 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_3 ) ;
__pyx_t_10 = PyNumber_Subtract ( __pyx_t_1 , __pyx_t_3 ) ; if ( unlikely ( ! __pyx_t_10 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 20 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_10 ) ;
2016-08-28 23:25:45 +00:00
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
2016-08-29 00:45:53 +00:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2016-08-28 23:25:45 +00:00
__Pyx_INCREF ( __pyx_v_img_height ) ;
2016-08-29 00:45:53 +00:00
__pyx_t_3 = __pyx_v_img_height ;
__pyx_t_13 = PyObject_RichCompare ( __pyx_t_10 , __pyx_t_3 , Py_LT ) ; __Pyx_XGOTREF ( __pyx_t_13 ) ; if ( unlikely ( ! __pyx_t_13 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 20 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__pyx_t_2 = __Pyx_PyObject_IsTrue ( __pyx_t_13 ) ; if ( unlikely ( __pyx_t_2 < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 20 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
__Pyx_DECREF ( __pyx_t_13 ) ; __pyx_t_13 = 0 ;
2016-08-29 00:45:53 +00:00
if ( __pyx_t_2 ) {
__Pyx_INCREF ( __pyx_t_10 ) ;
__pyx_t_1 = __pyx_t_10 ;
2016-08-28 23:25:45 +00:00
} else {
2016-08-29 00:45:53 +00:00
__Pyx_INCREF ( __pyx_t_3 ) ;
__pyx_t_1 = __pyx_t_3 ;
2016-08-28 23:25:45 +00:00
}
2016-08-29 00:45:53 +00:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
__Pyx_DECREF ( __pyx_t_10 ) ; __pyx_t_10 = 0 ;
__pyx_t_10 = PyTuple_New ( 2 ) ; if ( unlikely ( ! __pyx_t_10 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 20 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_10 ) ;
__Pyx_GIVEREF ( __pyx_t_4 ) ;
PyTuple_SET_ITEM ( __pyx_t_10 , 0 , __pyx_t_4 ) ;
2016-08-28 23:25:45 +00:00
__Pyx_INCREF ( __pyx_t_1 ) ;
__Pyx_GIVEREF ( __pyx_t_1 ) ;
2016-08-29 00:45:53 +00:00
PyTuple_SET_ITEM ( __pyx_t_10 , 1 , __pyx_t_1 ) ;
__pyx_t_4 = 0 ;
2016-08-28 23:25:45 +00:00
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
2016-08-29 00:45:53 +00:00
__pyx_t_1 = __Pyx_PyObject_Call ( __pyx_builtin_range , __pyx_t_10 , NULL ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 20 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2016-08-29 00:45:53 +00:00
__Pyx_DECREF ( __pyx_t_10 ) ; __pyx_t_10 = 0 ;
2016-08-28 23:25:45 +00:00
if ( likely ( PyList_CheckExact ( __pyx_t_1 ) ) | | PyTuple_CheckExact ( __pyx_t_1 ) ) {
2016-08-29 00:45:53 +00:00
__pyx_t_10 = __pyx_t_1 ; __Pyx_INCREF ( __pyx_t_10 ) ; __pyx_t_14 = 0 ;
2016-08-28 23:25:45 +00:00
__pyx_t_15 = NULL ;
} else {
2016-08-29 00:45:53 +00:00
__pyx_t_14 = - 1 ; __pyx_t_10 = PyObject_GetIter ( __pyx_t_1 ) ; if ( unlikely ( ! __pyx_t_10 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 20 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_10 ) ;
__pyx_t_15 = Py_TYPE ( __pyx_t_10 ) - > tp_iternext ; if ( unlikely ( ! __pyx_t_15 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 20 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
}
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
for ( ; ; ) {
if ( likely ( ! __pyx_t_15 ) ) {
2016-08-29 00:45:53 +00:00
if ( likely ( PyList_CheckExact ( __pyx_t_10 ) ) ) {
if ( __pyx_t_14 > = PyList_GET_SIZE ( __pyx_t_10 ) ) break ;
2016-08-28 23:25:45 +00:00
# if CYTHON_COMPILING_IN_CPYTHON
2016-08-29 00:45:53 +00:00
__pyx_t_1 = PyList_GET_ITEM ( __pyx_t_10 , __pyx_t_14 ) ; __Pyx_INCREF ( __pyx_t_1 ) ; __pyx_t_14 + + ; if ( unlikely ( 0 < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 20 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
# else
2016-08-29 00:45:53 +00:00
__pyx_t_1 = PySequence_ITEM ( __pyx_t_10 , __pyx_t_14 ) ; __pyx_t_14 + + ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 20 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
# endif
} else {
2016-08-29 00:45:53 +00:00
if ( __pyx_t_14 > = PyTuple_GET_SIZE ( __pyx_t_10 ) ) break ;
2016-08-28 23:25:45 +00:00
# if CYTHON_COMPILING_IN_CPYTHON
2016-08-29 00:45:53 +00:00
__pyx_t_1 = PyTuple_GET_ITEM ( __pyx_t_10 , __pyx_t_14 ) ; __Pyx_INCREF ( __pyx_t_1 ) ; __pyx_t_14 + + ; if ( unlikely ( 0 < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 20 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
# else
2016-08-29 00:45:53 +00:00
__pyx_t_1 = PySequence_ITEM ( __pyx_t_10 , __pyx_t_14 ) ; __pyx_t_14 + + ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 20 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
# endif
}
} else {
2016-08-29 00:45:53 +00:00
__pyx_t_1 = __pyx_t_15 ( __pyx_t_10 ) ;
2016-08-28 23:25:45 +00:00
if ( unlikely ( ! __pyx_t_1 ) ) {
PyObject * exc_type = PyErr_Occurred ( ) ;
if ( exc_type ) {
if ( likely ( exc_type = = PyExc_StopIteration | | PyErr_GivenExceptionMatches ( exc_type , PyExc_StopIteration ) ) ) PyErr_Clear ( ) ;
2016-08-29 00:45:53 +00:00
else { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 20 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
}
break ;
}
__Pyx_GOTREF ( __pyx_t_1 ) ;
}
__Pyx_XDECREF_SET ( __pyx_v_y , __pyx_t_1 ) ;
__pyx_t_1 = 0 ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":21
2016-08-28 23:25:45 +00:00
* for x in range ( max ( 0 , - offset_x ) , min ( img_width , self . width - offset_x ) ) :
* for y in range ( max ( 0 , - offset_y ) , min ( img_height , self . height - offset_y ) ) :
2016-08-29 00:45:53 +00:00
* ( r , g , b ) = pixels [ x , y ] # < < < < < < < < < < < < < <
2016-08-28 23:25:45 +00:00
* self . SetPixel ( x + offset_x , y + offset_y , r , g , b )
*
*/
2016-08-29 00:45:53 +00:00
__pyx_t_1 = PyTuple_New ( 2 ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 21 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__Pyx_INCREF ( __pyx_v_x ) ;
__Pyx_GIVEREF ( __pyx_v_x ) ;
PyTuple_SET_ITEM ( __pyx_t_1 , 0 , __pyx_v_x ) ;
__Pyx_INCREF ( __pyx_v_y ) ;
__Pyx_GIVEREF ( __pyx_v_y ) ;
PyTuple_SET_ITEM ( __pyx_t_1 , 1 , __pyx_v_y ) ;
2016-08-29 00:45:53 +00:00
__pyx_t_4 = PyObject_GetItem ( __pyx_v_pixels , __pyx_t_1 ) ; if ( unlikely ( __pyx_t_4 = = NULL ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 21 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__Pyx_GOTREF ( __pyx_t_4 ) ;
2016-08-28 23:25:45 +00:00
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
2016-08-29 00:45:53 +00:00
if ( ( likely ( PyTuple_CheckExact ( __pyx_t_4 ) ) ) | | ( PyList_CheckExact ( __pyx_t_4 ) ) ) {
PyObject * sequence = __pyx_t_4 ;
2016-08-28 23:25:45 +00:00
# if CYTHON_COMPILING_IN_CPYTHON
Py_ssize_t size = Py_SIZE ( sequence ) ;
# else
Py_ssize_t size = PySequence_Size ( sequence ) ;
# endif
if ( unlikely ( size ! = 3 ) ) {
if ( size > 3 ) __Pyx_RaiseTooManyValuesError ( 3 ) ;
else if ( size > = 0 ) __Pyx_RaiseNeedMoreValuesError ( size ) ;
2016-08-29 00:45:53 +00:00
{ __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 21 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
}
# if CYTHON_COMPILING_IN_CPYTHON
if ( likely ( PyTuple_CheckExact ( sequence ) ) ) {
__pyx_t_1 = PyTuple_GET_ITEM ( sequence , 0 ) ;
2016-08-29 00:45:53 +00:00
__pyx_t_3 = PyTuple_GET_ITEM ( sequence , 1 ) ;
2016-08-28 23:25:45 +00:00
__pyx_t_13 = PyTuple_GET_ITEM ( sequence , 2 ) ;
} else {
__pyx_t_1 = PyList_GET_ITEM ( sequence , 0 ) ;
2016-08-29 00:45:53 +00:00
__pyx_t_3 = PyList_GET_ITEM ( sequence , 1 ) ;
2016-08-28 23:25:45 +00:00
__pyx_t_13 = PyList_GET_ITEM ( sequence , 2 ) ;
}
__Pyx_INCREF ( __pyx_t_1 ) ;
2016-08-29 00:45:53 +00:00
__Pyx_INCREF ( __pyx_t_3 ) ;
2016-08-28 23:25:45 +00:00
__Pyx_INCREF ( __pyx_t_13 ) ;
# else
2016-08-29 00:45:53 +00:00
__pyx_t_1 = PySequence_ITEM ( sequence , 0 ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 21 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2016-08-29 00:45:53 +00:00
__pyx_t_3 = PySequence_ITEM ( sequence , 1 ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 21 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_3 ) ;
__pyx_t_13 = PySequence_ITEM ( sequence , 2 ) ; if ( unlikely ( ! __pyx_t_13 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 21 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
__Pyx_GOTREF ( __pyx_t_13 ) ;
# endif
2016-08-29 00:45:53 +00:00
__Pyx_DECREF ( __pyx_t_4 ) ; __pyx_t_4 = 0 ;
2016-08-28 23:25:45 +00:00
} else {
Py_ssize_t index = - 1 ;
2016-08-29 00:45:53 +00:00
__pyx_t_16 = PyObject_GetIter ( __pyx_t_4 ) ; if ( unlikely ( ! __pyx_t_16 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 21 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
__Pyx_GOTREF ( __pyx_t_16 ) ;
2016-08-29 00:45:53 +00:00
__Pyx_DECREF ( __pyx_t_4 ) ; __pyx_t_4 = 0 ;
__pyx_t_6 = Py_TYPE ( __pyx_t_16 ) - > tp_iternext ;
index = 0 ; __pyx_t_1 = __pyx_t_6 ( __pyx_t_16 ) ; if ( unlikely ( ! __pyx_t_1 ) ) goto __pyx_L10_unpacking_failed ;
2016-08-28 23:25:45 +00:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2016-08-29 00:45:53 +00:00
index = 1 ; __pyx_t_3 = __pyx_t_6 ( __pyx_t_16 ) ; if ( unlikely ( ! __pyx_t_3 ) ) goto __pyx_L10_unpacking_failed ;
__Pyx_GOTREF ( __pyx_t_3 ) ;
index = 2 ; __pyx_t_13 = __pyx_t_6 ( __pyx_t_16 ) ; if ( unlikely ( ! __pyx_t_13 ) ) goto __pyx_L10_unpacking_failed ;
2016-08-28 23:25:45 +00:00
__Pyx_GOTREF ( __pyx_t_13 ) ;
2016-08-29 00:45:53 +00:00
if ( __Pyx_IternextUnpackEndCheck ( __pyx_t_6 ( __pyx_t_16 ) , 3 ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 21 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__pyx_t_6 = NULL ;
2016-08-28 23:25:45 +00:00
__Pyx_DECREF ( __pyx_t_16 ) ; __pyx_t_16 = 0 ;
2016-08-29 00:45:53 +00:00
goto __pyx_L11_unpacking_done ;
__pyx_L10_unpacking_failed : ;
2016-08-28 23:25:45 +00:00
__Pyx_DECREF ( __pyx_t_16 ) ; __pyx_t_16 = 0 ;
2016-08-29 00:45:53 +00:00
__pyx_t_6 = NULL ;
2016-08-28 23:25:45 +00:00
if ( __Pyx_IterFinish ( ) = = 0 ) __Pyx_RaiseNeedMoreValuesError ( index ) ;
2016-08-29 00:45:53 +00:00
{ __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 21 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__pyx_L11_unpacking_done : ;
2016-08-28 23:25:45 +00:00
}
__Pyx_XDECREF_SET ( __pyx_v_r , __pyx_t_1 ) ;
__pyx_t_1 = 0 ;
2016-08-29 00:45:53 +00:00
__Pyx_XDECREF_SET ( __pyx_v_g , __pyx_t_3 ) ;
__pyx_t_3 = 0 ;
2016-08-28 23:25:45 +00:00
__Pyx_XDECREF_SET ( __pyx_v_b , __pyx_t_13 ) ;
__pyx_t_13 = 0 ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":22
2016-08-28 23:25:45 +00:00
* for y in range ( max ( 0 , - offset_y ) , min ( img_height , self . height - offset_y ) ) :
2016-08-29 00:45:53 +00:00
* ( r , g , b ) = pixels [ x , y ]
2016-08-28 23:25:45 +00:00
* self . SetPixel ( x + offset_x , y + offset_y , r , g , b ) # < < < < < < < < < < < < < <
*
* cdef class FrameCanvas ( Canvas ) :
*/
2016-08-29 00:45:53 +00:00
__pyx_t_13 = __Pyx_PyObject_GetAttrStr ( ( ( PyObject * ) __pyx_v_self ) , __pyx_n_s_SetPixel ) ; if ( unlikely ( ! __pyx_t_13 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 22 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
__Pyx_GOTREF ( __pyx_t_13 ) ;
2016-08-29 00:45:53 +00:00
__pyx_t_3 = __Pyx_PyInt_From_int ( __pyx_v_offset_x ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 22 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_3 ) ;
__pyx_t_1 = PyNumber_Add ( __pyx_v_x , __pyx_t_3 ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 22 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2016-08-29 00:45:53 +00:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
__pyx_t_3 = __Pyx_PyInt_From_int ( __pyx_v_offset_y ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 22 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_3 ) ;
__pyx_t_16 = PyNumber_Add ( __pyx_v_y , __pyx_t_3 ) ; if ( unlikely ( ! __pyx_t_16 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 22 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
__Pyx_GOTREF ( __pyx_t_16 ) ;
2016-08-29 00:45:53 +00:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
__pyx_t_3 = NULL ;
2016-08-28 23:25:45 +00:00
__pyx_t_17 = 0 ;
if ( CYTHON_COMPILING_IN_CPYTHON & & likely ( PyMethod_Check ( __pyx_t_13 ) ) ) {
2016-08-29 00:45:53 +00:00
__pyx_t_3 = PyMethod_GET_SELF ( __pyx_t_13 ) ;
if ( likely ( __pyx_t_3 ) ) {
2016-08-28 23:25:45 +00:00
PyObject * function = PyMethod_GET_FUNCTION ( __pyx_t_13 ) ;
2016-08-29 00:45:53 +00:00
__Pyx_INCREF ( __pyx_t_3 ) ;
2016-08-28 23:25:45 +00:00
__Pyx_INCREF ( function ) ;
__Pyx_DECREF_SET ( __pyx_t_13 , function ) ;
__pyx_t_17 = 1 ;
}
}
2016-08-29 00:45:53 +00:00
__pyx_t_18 = PyTuple_New ( 5 + __pyx_t_17 ) ; if ( unlikely ( ! __pyx_t_18 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 22 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-28 23:25:45 +00:00
__Pyx_GOTREF ( __pyx_t_18 ) ;
2016-08-29 00:45:53 +00:00
if ( __pyx_t_3 ) {
__Pyx_GIVEREF ( __pyx_t_3 ) ; PyTuple_SET_ITEM ( __pyx_t_18 , 0 , __pyx_t_3 ) ; __pyx_t_3 = NULL ;
2016-08-28 23:25:45 +00:00
}
__Pyx_GIVEREF ( __pyx_t_1 ) ;
PyTuple_SET_ITEM ( __pyx_t_18 , 0 + __pyx_t_17 , __pyx_t_1 ) ;
__Pyx_GIVEREF ( __pyx_t_16 ) ;
PyTuple_SET_ITEM ( __pyx_t_18 , 1 + __pyx_t_17 , __pyx_t_16 ) ;
__Pyx_INCREF ( __pyx_v_r ) ;
__Pyx_GIVEREF ( __pyx_v_r ) ;
PyTuple_SET_ITEM ( __pyx_t_18 , 2 + __pyx_t_17 , __pyx_v_r ) ;
__Pyx_INCREF ( __pyx_v_g ) ;
__Pyx_GIVEREF ( __pyx_v_g ) ;
PyTuple_SET_ITEM ( __pyx_t_18 , 3 + __pyx_t_17 , __pyx_v_g ) ;
__Pyx_INCREF ( __pyx_v_b ) ;
__Pyx_GIVEREF ( __pyx_v_b ) ;
PyTuple_SET_ITEM ( __pyx_t_18 , 4 + __pyx_t_17 , __pyx_v_b ) ;
__pyx_t_1 = 0 ;
__pyx_t_16 = 0 ;
2016-08-29 00:45:53 +00:00
__pyx_t_4 = __Pyx_PyObject_Call ( __pyx_t_13 , __pyx_t_18 , NULL ) ; if ( unlikely ( ! __pyx_t_4 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 22 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_4 ) ;
2016-08-28 23:25:45 +00:00
__Pyx_DECREF ( __pyx_t_18 ) ; __pyx_t_18 = 0 ;
__Pyx_DECREF ( __pyx_t_13 ) ; __pyx_t_13 = 0 ;
2016-08-29 00:45:53 +00:00
__Pyx_DECREF ( __pyx_t_4 ) ; __pyx_t_4 = 0 ;
2016-08-28 23:25:45 +00:00
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":20
* pixels = image . load ( )
2016-08-28 23:25:45 +00:00
* for x in range ( max ( 0 , - offset_x ) , min ( img_width , self . width - offset_x ) ) :
* for y in range ( max ( 0 , - offset_y ) , min ( img_height , self . height - offset_y ) ) : # < < < < < < < < < < < < < <
2016-08-29 00:45:53 +00:00
* ( r , g , b ) = pixels [ x , y ]
2016-08-28 23:25:45 +00:00
* self . SetPixel ( x + offset_x , y + offset_y , r , g , b )
*/
}
2016-08-29 00:45:53 +00:00
__Pyx_DECREF ( __pyx_t_10 ) ; __pyx_t_10 = 0 ;
2016-08-28 23:25:45 +00:00
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":19
2016-08-28 23:25:45 +00:00
* img_width , img_height = image . size
2016-08-29 00:45:53 +00:00
* pixels = image . load ( )
2016-08-28 23:25:45 +00:00
* for x in range ( max ( 0 , - offset_x ) , min ( img_width , self . width - offset_x ) ) : # < < < < < < < < < < < < < <
* for y in range ( max ( 0 , - offset_y ) , min ( img_height , self . height - offset_y ) ) :
2016-08-29 00:45:53 +00:00
* ( r , g , b ) = pixels [ x , y ]
2016-08-28 23:25:45 +00:00
*/
}
2016-08-29 00:45:53 +00:00
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
2016-08-28 23:25:45 +00:00
/* "rgbmatrix/core.pyx":14
* # implementation that directly reads the buffer and calls the underlying
* # C functions can certainly be faster .
* def SetImage ( self , image , int offset_x = 0 , int offset_y = 0 ) : # < < < < < < < < < < < < < <
2016-08-29 00:45:53 +00:00
* if ( image . mode ! = " RGB " ) :
* raise Exception ( " Currently, only RGB mode is supported for SetImage(). Please create images with mode 'RGB' or convert first with image = image.convert('RGB'). Pull requests to support more modes natively are also welcome :) " )
2016-08-28 23:25:45 +00:00
*/
/* function exit code */
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
__Pyx_XDECREF ( __pyx_t_3 ) ;
__Pyx_XDECREF ( __pyx_t_4 ) ;
2016-08-29 00:45:53 +00:00
__Pyx_XDECREF ( __pyx_t_5 ) ;
__Pyx_XDECREF ( __pyx_t_10 ) ;
2016-08-28 23:25:45 +00:00
__Pyx_XDECREF ( __pyx_t_13 ) ;
__Pyx_XDECREF ( __pyx_t_16 ) ;
__Pyx_XDECREF ( __pyx_t_18 ) ;
__Pyx_AddTraceback ( " rgbmatrix.core.Canvas.SetImage " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XDECREF ( __pyx_v_img_width ) ;
__Pyx_XDECREF ( __pyx_v_img_height ) ;
2016-08-29 00:45:53 +00:00
__Pyx_XDECREF ( __pyx_v_pixels ) ;
2016-08-28 23:25:45 +00:00
__Pyx_XDECREF ( __pyx_v_x ) ;
__Pyx_XDECREF ( __pyx_v_y ) ;
__Pyx_XDECREF ( __pyx_v_r ) ;
__Pyx_XDECREF ( __pyx_v_g ) ;
__Pyx_XDECREF ( __pyx_v_b ) ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":25
2015-07-24 06:43:34 +00:00
*
* cdef class FrameCanvas ( Canvas ) :
2015-06-28 09:38:55 +00:00
* def __dealloc__ ( self ) : # < < < < < < < < < < < < < <
* if < void * > self . __canvas ! = NULL :
* self . __canvas = NULL
*/
/* Python wrapper */
2015-07-24 06:43:34 +00:00
static void __pyx_pw_9rgbmatrix_4core_11FrameCanvas_1__dealloc__ ( PyObject * __pyx_v_self ) ; /*proto*/
static void __pyx_pw_9rgbmatrix_4core_11FrameCanvas_1__dealloc__ ( PyObject * __pyx_v_self ) {
2015-06-28 09:38:55 +00:00
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " __dealloc__ (wrapper) " , 0 ) ;
2015-07-24 06:43:34 +00:00
__pyx_pf_9rgbmatrix_4core_11FrameCanvas___dealloc__ ( ( ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * ) __pyx_v_self ) ) ;
2015-06-28 09:38:55 +00:00
/* function exit code */
__Pyx_RefNannyFinishContext ( ) ;
}
2015-07-24 06:43:34 +00:00
static void __pyx_pf_9rgbmatrix_4core_11FrameCanvas___dealloc__ ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * __pyx_v_self ) {
2015-06-28 09:38:55 +00:00
__Pyx_RefNannyDeclarations
int __pyx_t_1 ;
__Pyx_RefNannySetupContext ( " __dealloc__ " , 0 ) ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":26
2015-07-24 06:43:34 +00:00
* cdef class FrameCanvas ( Canvas ) :
2015-06-28 09:38:55 +00:00
* def __dealloc__ ( self ) :
* if < void * > self . __canvas ! = NULL : # < < < < < < < < < < < < < <
* self . __canvas = NULL
*
*/
__pyx_t_1 = ( ( ( ( void * ) __pyx_v_self - > __pyx___canvas ) ! = NULL ) ! = 0 ) ;
if ( __pyx_t_1 ) {
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":27
2015-06-28 09:38:55 +00:00
* def __dealloc__ ( self ) :
* if < void * > self . __canvas ! = NULL :
* self . __canvas = NULL # < < < < < < < < < < < < < <
*
2015-07-24 06:43:34 +00:00
* cdef cppinc . Canvas * __getCanvas ( self ) except * :
2015-06-28 09:38:55 +00:00
*/
__pyx_v_self - > __pyx___canvas = NULL ;
2015-12-02 06:07:31 +00:00
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":26
2015-12-02 06:07:31 +00:00
* cdef class FrameCanvas ( Canvas ) :
* def __dealloc__ ( self ) :
* if < void * > self . __canvas ! = NULL : # < < < < < < < < < < < < < <
* self . __canvas = NULL
*
*/
2015-06-28 09:38:55 +00:00
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":25
2015-06-28 09:38:55 +00:00
*
2015-07-24 06:43:34 +00:00
* cdef class FrameCanvas ( Canvas ) :
2015-06-28 09:38:55 +00:00
* def __dealloc__ ( self ) : # < < < < < < < < < < < < < <
* if < void * > self . __canvas ! = NULL :
* self . __canvas = NULL
*/
/* function exit code */
__Pyx_RefNannyFinishContext ( ) ;
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":29
2015-07-24 06:43:34 +00:00
* self . __canvas = NULL
2015-06-28 09:38:55 +00:00
*
2015-07-24 06:43:34 +00:00
* cdef cppinc . Canvas * __getCanvas ( self ) except * : # < < < < < < < < < < < < < <
2015-06-28 09:38:55 +00:00
* if < void * > self . __canvas ! = NULL :
* return self . __canvas
*/
2015-07-24 06:43:34 +00:00
rgb_matrix : : Canvas * __pyx_f_9rgbmatrix_4core_11FrameCanvas___getCanvas ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * __pyx_v_self ) {
rgb_matrix : : Canvas * __pyx_r ;
2015-06-28 09:38:55 +00:00
__Pyx_RefNannyDeclarations
int __pyx_t_1 ;
PyObject * __pyx_t_2 = NULL ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
__Pyx_RefNannySetupContext ( " __getCanvas " , 0 ) ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":30
2015-06-28 09:38:55 +00:00
*
2015-07-24 06:43:34 +00:00
* cdef cppinc . Canvas * __getCanvas ( self ) except * :
2015-06-28 09:38:55 +00:00
* if < void * > self . __canvas ! = NULL : # < < < < < < < < < < < < < <
* return self . __canvas
2015-07-24 06:43:34 +00:00
* raise Exception ( " Canvas was destroyed or not initialized, you cannot use this object anymore " )
2015-06-28 09:38:55 +00:00
*/
__pyx_t_1 = ( ( ( ( void * ) __pyx_v_self - > __pyx___canvas ) ! = NULL ) ! = 0 ) ;
if ( __pyx_t_1 ) {
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":31
2015-07-24 06:43:34 +00:00
* cdef cppinc . Canvas * __getCanvas ( self ) except * :
2015-06-28 09:38:55 +00:00
* if < void * > self . __canvas ! = NULL :
* return self . __canvas # < < < < < < < < < < < < < <
2015-07-24 06:43:34 +00:00
* raise Exception ( " Canvas was destroyed or not initialized, you cannot use this object anymore " )
2015-06-28 09:38:55 +00:00
*
*/
__pyx_r = __pyx_v_self - > __pyx___canvas ;
goto __pyx_L0 ;
2015-12-02 06:07:31 +00:00
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":30
2015-12-02 06:07:31 +00:00
*
* cdef cppinc . Canvas * __getCanvas ( self ) except * :
* if < void * > self . __canvas ! = NULL : # < < < < < < < < < < < < < <
* return self . __canvas
* raise Exception ( " Canvas was destroyed or not initialized, you cannot use this object anymore " )
*/
2015-06-28 09:38:55 +00:00
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":32
2015-06-28 09:38:55 +00:00
* if < void * > self . __canvas ! = NULL :
* return self . __canvas
2015-07-24 06:43:34 +00:00
* raise Exception ( " Canvas was destroyed or not initialized, you cannot use this object anymore " ) # < < < < < < < < < < < < < <
2015-06-28 09:38:55 +00:00
*
* def Fill ( self , uint8_t red , uint8_t green , uint8_t blue ) :
*/
2016-08-29 00:45:53 +00:00
__pyx_t_2 = __Pyx_PyObject_Call ( __pyx_builtin_Exception , __pyx_tuple__3 , NULL ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 32 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-06-28 09:38:55 +00:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
__Pyx_Raise ( __pyx_t_2 , 0 , 0 , 0 ) ;
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
2016-08-29 00:45:53 +00:00
{ __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 32 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-06-28 09:38:55 +00:00
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":29
2015-07-24 06:43:34 +00:00
* self . __canvas = NULL
2015-06-28 09:38:55 +00:00
*
2015-07-24 06:43:34 +00:00
* cdef cppinc . Canvas * __getCanvas ( self ) except * : # < < < < < < < < < < < < < <
2015-06-28 09:38:55 +00:00
* if < void * > self . __canvas ! = NULL :
* return self . __canvas
*/
/* function exit code */
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_2 ) ;
2015-07-24 06:43:34 +00:00
__Pyx_AddTraceback ( " rgbmatrix.core.FrameCanvas.__getCanvas " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2015-06-28 09:38:55 +00:00
__pyx_r = 0 ;
__pyx_L0 : ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2015-07-24 06:43:34 +00:00
rgb_matrix : : Canvas * __pyx_f_9rgbmatrix_4core_11FrameCanvas___getCanvas__pyx_wrap_1 ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * __pyx_v_self ) {
return __pyx_f_9rgbmatrix_4core_11FrameCanvas___getCanvas ( __pyx_v_self ) ;
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":34
2015-07-24 06:43:34 +00:00
* raise Exception ( " Canvas was destroyed or not initialized, you cannot use this object anymore " )
2015-06-28 09:38:55 +00:00
*
* def Fill ( self , uint8_t red , uint8_t green , uint8_t blue ) : # < < < < < < < < < < < < < <
2015-07-24 06:43:34 +00:00
* ( < cppinc . FrameCanvas * > self . __getCanvas ( ) ) . Fill ( red , green , blue )
2015-06-28 09:38:55 +00:00
*
*/
/* Python wrapper */
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pw_9rgbmatrix_4core_11FrameCanvas_3Fill ( PyObject * __pyx_v_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) ; /*proto*/
static PyObject * __pyx_pw_9rgbmatrix_4core_11FrameCanvas_3Fill ( PyObject * __pyx_v_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) {
2015-06-28 09:38:55 +00:00
uint8_t __pyx_v_red ;
uint8_t __pyx_v_green ;
uint8_t __pyx_v_blue ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " Fill (wrapper) " , 0 ) ;
{
static PyObject * * __pyx_pyargnames [ ] = { & __pyx_n_s_red , & __pyx_n_s_green , & __pyx_n_s_blue , 0 } ;
PyObject * values [ 3 ] = { 0 , 0 , 0 } ;
if ( unlikely ( __pyx_kwds ) ) {
Py_ssize_t kw_args ;
const Py_ssize_t pos_args = PyTuple_GET_SIZE ( __pyx_args ) ;
switch ( pos_args ) {
case 3 : values [ 2 ] = PyTuple_GET_ITEM ( __pyx_args , 2 ) ;
case 2 : values [ 1 ] = PyTuple_GET_ITEM ( __pyx_args , 1 ) ;
case 1 : values [ 0 ] = PyTuple_GET_ITEM ( __pyx_args , 0 ) ;
case 0 : break ;
default : goto __pyx_L5_argtuple_error ;
}
kw_args = PyDict_Size ( __pyx_kwds ) ;
switch ( pos_args ) {
case 0 :
if ( likely ( ( values [ 0 ] = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_red ) ) ! = 0 ) ) kw_args - - ;
else goto __pyx_L5_argtuple_error ;
case 1 :
if ( likely ( ( values [ 1 ] = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_green ) ) ! = 0 ) ) kw_args - - ;
else {
2016-08-29 00:45:53 +00:00
__Pyx_RaiseArgtupleInvalid ( " Fill " , 1 , 3 , 3 , 1 ) ; { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 34 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
}
case 2 :
if ( likely ( ( values [ 2 ] = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_blue ) ) ! = 0 ) ) kw_args - - ;
else {
2016-08-29 00:45:53 +00:00
__Pyx_RaiseArgtupleInvalid ( " Fill " , 1 , 3 , 3 , 2 ) ; { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 34 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
}
}
if ( unlikely ( kw_args > 0 ) ) {
2016-08-29 00:45:53 +00:00
if ( unlikely ( __Pyx_ParseOptionalKeywords ( __pyx_kwds , __pyx_pyargnames , 0 , values , pos_args , " Fill " ) < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 34 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
}
} else if ( PyTuple_GET_SIZE ( __pyx_args ) ! = 3 ) {
goto __pyx_L5_argtuple_error ;
} else {
values [ 0 ] = PyTuple_GET_ITEM ( __pyx_args , 0 ) ;
values [ 1 ] = PyTuple_GET_ITEM ( __pyx_args , 1 ) ;
values [ 2 ] = PyTuple_GET_ITEM ( __pyx_args , 2 ) ;
}
2016-08-29 00:45:53 +00:00
__pyx_v_red = __Pyx_PyInt_As_uint8_t ( values [ 0 ] ) ; if ( unlikely ( ( __pyx_v_red = = ( uint8_t ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 34 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
__pyx_v_green = __Pyx_PyInt_As_uint8_t ( values [ 1 ] ) ; if ( unlikely ( ( __pyx_v_green = = ( uint8_t ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 34 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
__pyx_v_blue = __Pyx_PyInt_As_uint8_t ( values [ 2 ] ) ; if ( unlikely ( ( __pyx_v_blue = = ( uint8_t ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 34 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
}
goto __pyx_L4_argument_unpacking_done ;
__pyx_L5_argtuple_error : ;
2016-08-29 00:45:53 +00:00
__Pyx_RaiseArgtupleInvalid ( " Fill " , 1 , 3 , 3 , PyTuple_GET_SIZE ( __pyx_args ) ) ; { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 34 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
__pyx_L3_error : ;
2015-07-24 06:43:34 +00:00
__Pyx_AddTraceback ( " rgbmatrix.core.FrameCanvas.Fill " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2015-06-28 09:38:55 +00:00
__Pyx_RefNannyFinishContext ( ) ;
return NULL ;
__pyx_L4_argument_unpacking_done : ;
2015-07-24 06:43:34 +00:00
__pyx_r = __pyx_pf_9rgbmatrix_4core_11FrameCanvas_2Fill ( ( ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * ) __pyx_v_self ) , __pyx_v_red , __pyx_v_green , __pyx_v_blue ) ;
2015-06-28 09:38:55 +00:00
/* function exit code */
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pf_9rgbmatrix_4core_11FrameCanvas_2Fill ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * __pyx_v_self , uint8_t __pyx_v_red , uint8_t __pyx_v_green , uint8_t __pyx_v_blue ) {
2015-06-28 09:38:55 +00:00
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
2015-07-24 06:43:34 +00:00
rgb_matrix : : Canvas * __pyx_t_1 ;
2015-06-28 09:38:55 +00:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
__Pyx_RefNannySetupContext ( " Fill " , 0 ) ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":35
2015-06-28 09:38:55 +00:00
*
* def Fill ( self , uint8_t red , uint8_t green , uint8_t blue ) :
2015-07-24 06:43:34 +00:00
* ( < cppinc . FrameCanvas * > self . __getCanvas ( ) ) . Fill ( red , green , blue ) # < < < < < < < < < < < < < <
2015-06-28 09:38:55 +00:00
*
* def Clear ( self ) :
*/
2016-08-29 00:45:53 +00:00
__pyx_t_1 = ( ( struct __pyx_vtabstruct_9rgbmatrix_4core_FrameCanvas * ) __pyx_v_self - > __pyx_base . __pyx_vtab ) - > __pyx___getCanvas ( __pyx_v_self ) ; if ( unlikely ( PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 35 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-07-24 06:43:34 +00:00
( ( rgb_matrix : : FrameCanvas * ) __pyx_t_1 ) - > Fill ( __pyx_v_red , __pyx_v_green , __pyx_v_blue ) ;
2015-06-28 09:38:55 +00:00
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":34
2015-07-24 06:43:34 +00:00
* raise Exception ( " Canvas was destroyed or not initialized, you cannot use this object anymore " )
2015-06-28 09:38:55 +00:00
*
* def Fill ( self , uint8_t red , uint8_t green , uint8_t blue ) : # < < < < < < < < < < < < < <
2015-07-24 06:43:34 +00:00
* ( < cppinc . FrameCanvas * > self . __getCanvas ( ) ) . Fill ( red , green , blue )
2015-06-28 09:38:55 +00:00
*
*/
/* function exit code */
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
2015-07-24 06:43:34 +00:00
__Pyx_AddTraceback ( " rgbmatrix.core.FrameCanvas.Fill " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2015-06-28 09:38:55 +00:00
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":37
2015-07-24 06:43:34 +00:00
* ( < cppinc . FrameCanvas * > self . __getCanvas ( ) ) . Fill ( red , green , blue )
2015-06-28 09:38:55 +00:00
*
* def Clear ( self ) : # < < < < < < < < < < < < < <
2015-07-24 06:43:34 +00:00
* ( < cppinc . FrameCanvas * > self . __getCanvas ( ) ) . Clear ( )
2015-06-28 09:38:55 +00:00
*
*/
/* Python wrapper */
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pw_9rgbmatrix_4core_11FrameCanvas_5Clear ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) ; /*proto*/
static PyObject * __pyx_pw_9rgbmatrix_4core_11FrameCanvas_5Clear ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) {
2015-06-28 09:38:55 +00:00
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " Clear (wrapper) " , 0 ) ;
2015-07-24 06:43:34 +00:00
__pyx_r = __pyx_pf_9rgbmatrix_4core_11FrameCanvas_4Clear ( ( ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * ) __pyx_v_self ) ) ;
2015-06-28 09:38:55 +00:00
/* function exit code */
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pf_9rgbmatrix_4core_11FrameCanvas_4Clear ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * __pyx_v_self ) {
2015-06-28 09:38:55 +00:00
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
2015-07-24 06:43:34 +00:00
rgb_matrix : : Canvas * __pyx_t_1 ;
2015-06-28 09:38:55 +00:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
__Pyx_RefNannySetupContext ( " Clear " , 0 ) ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":38
2015-06-28 09:38:55 +00:00
*
* def Clear ( self ) :
2015-07-24 06:43:34 +00:00
* ( < cppinc . FrameCanvas * > self . __getCanvas ( ) ) . Clear ( ) # < < < < < < < < < < < < < <
2015-06-28 09:38:55 +00:00
*
* def SetPixel ( self , int x , int y , uint8_t red , uint8_t green , uint8_t blue ) :
*/
2016-08-29 00:45:53 +00:00
__pyx_t_1 = ( ( struct __pyx_vtabstruct_9rgbmatrix_4core_FrameCanvas * ) __pyx_v_self - > __pyx_base . __pyx_vtab ) - > __pyx___getCanvas ( __pyx_v_self ) ; if ( unlikely ( PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 38 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-07-24 06:43:34 +00:00
( ( rgb_matrix : : FrameCanvas * ) __pyx_t_1 ) - > Clear ( ) ;
2015-06-28 09:38:55 +00:00
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":37
2015-07-24 06:43:34 +00:00
* ( < cppinc . FrameCanvas * > self . __getCanvas ( ) ) . Fill ( red , green , blue )
2015-06-28 09:38:55 +00:00
*
* def Clear ( self ) : # < < < < < < < < < < < < < <
2015-07-24 06:43:34 +00:00
* ( < cppinc . FrameCanvas * > self . __getCanvas ( ) ) . Clear ( )
2015-06-28 09:38:55 +00:00
*
*/
/* function exit code */
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
2015-07-24 06:43:34 +00:00
__Pyx_AddTraceback ( " rgbmatrix.core.FrameCanvas.Clear " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2015-06-28 09:38:55 +00:00
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":40
2015-07-24 06:43:34 +00:00
* ( < cppinc . FrameCanvas * > self . __getCanvas ( ) ) . Clear ( )
2015-06-28 09:38:55 +00:00
*
* def SetPixel ( self , int x , int y , uint8_t red , uint8_t green , uint8_t blue ) : # < < < < < < < < < < < < < <
2015-07-24 06:43:34 +00:00
* ( < cppinc . FrameCanvas * > self . __getCanvas ( ) ) . SetPixel ( x , y , red , green , blue )
2015-06-28 09:38:55 +00:00
*
*/
/* Python wrapper */
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pw_9rgbmatrix_4core_11FrameCanvas_7SetPixel ( PyObject * __pyx_v_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) ; /*proto*/
static PyObject * __pyx_pw_9rgbmatrix_4core_11FrameCanvas_7SetPixel ( PyObject * __pyx_v_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) {
2015-06-28 09:38:55 +00:00
int __pyx_v_x ;
int __pyx_v_y ;
uint8_t __pyx_v_red ;
uint8_t __pyx_v_green ;
uint8_t __pyx_v_blue ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " SetPixel (wrapper) " , 0 ) ;
{
static PyObject * * __pyx_pyargnames [ ] = { & __pyx_n_s_x , & __pyx_n_s_y , & __pyx_n_s_red , & __pyx_n_s_green , & __pyx_n_s_blue , 0 } ;
PyObject * values [ 5 ] = { 0 , 0 , 0 , 0 , 0 } ;
if ( unlikely ( __pyx_kwds ) ) {
Py_ssize_t kw_args ;
const Py_ssize_t pos_args = PyTuple_GET_SIZE ( __pyx_args ) ;
switch ( pos_args ) {
case 5 : values [ 4 ] = PyTuple_GET_ITEM ( __pyx_args , 4 ) ;
case 4 : values [ 3 ] = PyTuple_GET_ITEM ( __pyx_args , 3 ) ;
case 3 : values [ 2 ] = PyTuple_GET_ITEM ( __pyx_args , 2 ) ;
case 2 : values [ 1 ] = PyTuple_GET_ITEM ( __pyx_args , 1 ) ;
case 1 : values [ 0 ] = PyTuple_GET_ITEM ( __pyx_args , 0 ) ;
case 0 : break ;
default : goto __pyx_L5_argtuple_error ;
}
kw_args = PyDict_Size ( __pyx_kwds ) ;
switch ( pos_args ) {
case 0 :
if ( likely ( ( values [ 0 ] = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_x ) ) ! = 0 ) ) kw_args - - ;
else goto __pyx_L5_argtuple_error ;
case 1 :
if ( likely ( ( values [ 1 ] = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_y ) ) ! = 0 ) ) kw_args - - ;
else {
2016-08-29 00:45:53 +00:00
__Pyx_RaiseArgtupleInvalid ( " SetPixel " , 1 , 5 , 5 , 1 ) ; { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 40 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
}
case 2 :
if ( likely ( ( values [ 2 ] = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_red ) ) ! = 0 ) ) kw_args - - ;
else {
2016-08-29 00:45:53 +00:00
__Pyx_RaiseArgtupleInvalid ( " SetPixel " , 1 , 5 , 5 , 2 ) ; { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 40 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
}
case 3 :
if ( likely ( ( values [ 3 ] = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_green ) ) ! = 0 ) ) kw_args - - ;
else {
2016-08-29 00:45:53 +00:00
__Pyx_RaiseArgtupleInvalid ( " SetPixel " , 1 , 5 , 5 , 3 ) ; { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 40 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
}
case 4 :
if ( likely ( ( values [ 4 ] = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_blue ) ) ! = 0 ) ) kw_args - - ;
else {
2016-08-29 00:45:53 +00:00
__Pyx_RaiseArgtupleInvalid ( " SetPixel " , 1 , 5 , 5 , 4 ) ; { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 40 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
}
}
if ( unlikely ( kw_args > 0 ) ) {
2016-08-29 00:45:53 +00:00
if ( unlikely ( __Pyx_ParseOptionalKeywords ( __pyx_kwds , __pyx_pyargnames , 0 , values , pos_args , " SetPixel " ) < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 40 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
}
} else if ( PyTuple_GET_SIZE ( __pyx_args ) ! = 5 ) {
goto __pyx_L5_argtuple_error ;
} else {
values [ 0 ] = PyTuple_GET_ITEM ( __pyx_args , 0 ) ;
values [ 1 ] = PyTuple_GET_ITEM ( __pyx_args , 1 ) ;
values [ 2 ] = PyTuple_GET_ITEM ( __pyx_args , 2 ) ;
values [ 3 ] = PyTuple_GET_ITEM ( __pyx_args , 3 ) ;
values [ 4 ] = PyTuple_GET_ITEM ( __pyx_args , 4 ) ;
}
2016-08-29 00:45:53 +00:00
__pyx_v_x = __Pyx_PyInt_As_int ( values [ 0 ] ) ; if ( unlikely ( ( __pyx_v_x = = ( int ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 40 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
__pyx_v_y = __Pyx_PyInt_As_int ( values [ 1 ] ) ; if ( unlikely ( ( __pyx_v_y = = ( int ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 40 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
__pyx_v_red = __Pyx_PyInt_As_uint8_t ( values [ 2 ] ) ; if ( unlikely ( ( __pyx_v_red = = ( uint8_t ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 40 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
__pyx_v_green = __Pyx_PyInt_As_uint8_t ( values [ 3 ] ) ; if ( unlikely ( ( __pyx_v_green = = ( uint8_t ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 40 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
__pyx_v_blue = __Pyx_PyInt_As_uint8_t ( values [ 4 ] ) ; if ( unlikely ( ( __pyx_v_blue = = ( uint8_t ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 40 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
}
goto __pyx_L4_argument_unpacking_done ;
__pyx_L5_argtuple_error : ;
2016-08-29 00:45:53 +00:00
__Pyx_RaiseArgtupleInvalid ( " SetPixel " , 1 , 5 , 5 , PyTuple_GET_SIZE ( __pyx_args ) ) ; { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 40 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
__pyx_L3_error : ;
2015-07-24 06:43:34 +00:00
__Pyx_AddTraceback ( " rgbmatrix.core.FrameCanvas.SetPixel " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2015-06-28 09:38:55 +00:00
__Pyx_RefNannyFinishContext ( ) ;
return NULL ;
__pyx_L4_argument_unpacking_done : ;
2015-07-24 06:43:34 +00:00
__pyx_r = __pyx_pf_9rgbmatrix_4core_11FrameCanvas_6SetPixel ( ( ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * ) __pyx_v_self ) , __pyx_v_x , __pyx_v_y , __pyx_v_red , __pyx_v_green , __pyx_v_blue ) ;
2015-06-28 09:38:55 +00:00
/* function exit code */
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pf_9rgbmatrix_4core_11FrameCanvas_6SetPixel ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * __pyx_v_self , int __pyx_v_x , int __pyx_v_y , uint8_t __pyx_v_red , uint8_t __pyx_v_green , uint8_t __pyx_v_blue ) {
2015-06-28 09:38:55 +00:00
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
2015-07-24 06:43:34 +00:00
rgb_matrix : : Canvas * __pyx_t_1 ;
2015-06-28 09:38:55 +00:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
__Pyx_RefNannySetupContext ( " SetPixel " , 0 ) ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":41
2015-06-28 09:38:55 +00:00
*
* def SetPixel ( self , int x , int y , uint8_t red , uint8_t green , uint8_t blue ) :
2015-07-24 06:43:34 +00:00
* ( < cppinc . FrameCanvas * > self . __getCanvas ( ) ) . SetPixel ( x , y , red , green , blue ) # < < < < < < < < < < < < < <
2015-06-28 09:38:55 +00:00
*
* property width :
*/
2016-08-29 00:45:53 +00:00
__pyx_t_1 = ( ( struct __pyx_vtabstruct_9rgbmatrix_4core_FrameCanvas * ) __pyx_v_self - > __pyx_base . __pyx_vtab ) - > __pyx___getCanvas ( __pyx_v_self ) ; if ( unlikely ( PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 41 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-07-24 06:43:34 +00:00
( ( rgb_matrix : : FrameCanvas * ) __pyx_t_1 ) - > SetPixel ( __pyx_v_x , __pyx_v_y , __pyx_v_red , __pyx_v_green , __pyx_v_blue ) ;
2015-06-28 09:38:55 +00:00
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":40
2015-07-24 06:43:34 +00:00
* ( < cppinc . FrameCanvas * > self . __getCanvas ( ) ) . Clear ( )
2015-06-28 09:38:55 +00:00
*
* def SetPixel ( self , int x , int y , uint8_t red , uint8_t green , uint8_t blue ) : # < < < < < < < < < < < < < <
2015-07-24 06:43:34 +00:00
* ( < cppinc . FrameCanvas * > self . __getCanvas ( ) ) . SetPixel ( x , y , red , green , blue )
2015-06-28 09:38:55 +00:00
*
*/
/* function exit code */
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
2015-07-24 06:43:34 +00:00
__Pyx_AddTraceback ( " rgbmatrix.core.FrameCanvas.SetPixel " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2015-06-28 09:38:55 +00:00
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":44
2015-06-28 09:38:55 +00:00
*
* property width :
2015-07-24 06:43:34 +00:00
* def __get__ ( self ) : return ( < cppinc . FrameCanvas * > self . __getCanvas ( ) ) . width ( ) # < < < < < < < < < < < < < <
2015-06-28 09:38:55 +00:00
*
* property height :
*/
/* Python wrapper */
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pw_9rgbmatrix_4core_11FrameCanvas_5width_1__get__ ( PyObject * __pyx_v_self ) ; /*proto*/
static PyObject * __pyx_pw_9rgbmatrix_4core_11FrameCanvas_5width_1__get__ ( PyObject * __pyx_v_self ) {
2015-06-28 09:38:55 +00:00
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " __get__ (wrapper) " , 0 ) ;
2015-07-24 06:43:34 +00:00
__pyx_r = __pyx_pf_9rgbmatrix_4core_11FrameCanvas_5width___get__ ( ( ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * ) __pyx_v_self ) ) ;
2015-06-28 09:38:55 +00:00
/* function exit code */
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pf_9rgbmatrix_4core_11FrameCanvas_5width___get__ ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * __pyx_v_self ) {
2015-06-28 09:38:55 +00:00
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
2015-07-24 06:43:34 +00:00
rgb_matrix : : Canvas * __pyx_t_1 ;
2015-06-28 09:38:55 +00:00
PyObject * __pyx_t_2 = NULL ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
__Pyx_RefNannySetupContext ( " __get__ " , 0 ) ;
__Pyx_XDECREF ( __pyx_r ) ;
2016-08-29 00:45:53 +00:00
__pyx_t_1 = ( ( struct __pyx_vtabstruct_9rgbmatrix_4core_FrameCanvas * ) __pyx_v_self - > __pyx_base . __pyx_vtab ) - > __pyx___getCanvas ( __pyx_v_self ) ; if ( unlikely ( PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 44 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__pyx_t_2 = __Pyx_PyInt_From_int ( ( ( rgb_matrix : : FrameCanvas * ) __pyx_t_1 ) - > width ( ) ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 44 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-06-28 09:38:55 +00:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
__pyx_r = __pyx_t_2 ;
__pyx_t_2 = 0 ;
goto __pyx_L0 ;
/* function exit code */
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_2 ) ;
2015-07-24 06:43:34 +00:00
__Pyx_AddTraceback ( " rgbmatrix.core.FrameCanvas.width.__get__ " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2015-06-28 09:38:55 +00:00
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":47
2015-06-28 09:38:55 +00:00
*
* property height :
2015-07-24 06:43:34 +00:00
* def __get__ ( self ) : return ( < cppinc . FrameCanvas * > self . __getCanvas ( ) ) . height ( ) # < < < < < < < < < < < < < <
2015-06-28 09:38:55 +00:00
*
* property pwmBits :
*/
/* Python wrapper */
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pw_9rgbmatrix_4core_11FrameCanvas_6height_1__get__ ( PyObject * __pyx_v_self ) ; /*proto*/
static PyObject * __pyx_pw_9rgbmatrix_4core_11FrameCanvas_6height_1__get__ ( PyObject * __pyx_v_self ) {
2015-06-28 09:38:55 +00:00
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " __get__ (wrapper) " , 0 ) ;
2015-07-24 06:43:34 +00:00
__pyx_r = __pyx_pf_9rgbmatrix_4core_11FrameCanvas_6height___get__ ( ( ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * ) __pyx_v_self ) ) ;
2015-06-28 09:38:55 +00:00
/* function exit code */
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pf_9rgbmatrix_4core_11FrameCanvas_6height___get__ ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * __pyx_v_self ) {
2015-06-28 09:38:55 +00:00
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
2015-07-24 06:43:34 +00:00
rgb_matrix : : Canvas * __pyx_t_1 ;
2015-06-28 09:38:55 +00:00
PyObject * __pyx_t_2 = NULL ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
__Pyx_RefNannySetupContext ( " __get__ " , 0 ) ;
__Pyx_XDECREF ( __pyx_r ) ;
2016-08-29 00:45:53 +00:00
__pyx_t_1 = ( ( struct __pyx_vtabstruct_9rgbmatrix_4core_FrameCanvas * ) __pyx_v_self - > __pyx_base . __pyx_vtab ) - > __pyx___getCanvas ( __pyx_v_self ) ; if ( unlikely ( PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 47 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__pyx_t_2 = __Pyx_PyInt_From_int ( ( ( rgb_matrix : : FrameCanvas * ) __pyx_t_1 ) - > height ( ) ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 47 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-06-28 09:38:55 +00:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
__pyx_r = __pyx_t_2 ;
__pyx_t_2 = 0 ;
goto __pyx_L0 ;
/* function exit code */
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_2 ) ;
2015-07-24 06:43:34 +00:00
__Pyx_AddTraceback ( " rgbmatrix.core.FrameCanvas.height.__get__ " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2015-06-28 09:38:55 +00:00
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":50
2015-06-28 09:38:55 +00:00
*
* property pwmBits :
2015-07-24 06:43:34 +00:00
* def __get__ ( self ) : return ( < cppinc . FrameCanvas * > self . __getCanvas ( ) ) . pwmbits ( ) # < < < < < < < < < < < < < <
* def __set__ ( self , pwmBits ) : ( < cppinc . FrameCanvas * > self . __getCanvas ( ) ) . SetPWMBits ( pwmBits )
2015-06-28 09:38:55 +00:00
*
*/
/* Python wrapper */
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pw_9rgbmatrix_4core_11FrameCanvas_7pwmBits_1__get__ ( PyObject * __pyx_v_self ) ; /*proto*/
static PyObject * __pyx_pw_9rgbmatrix_4core_11FrameCanvas_7pwmBits_1__get__ ( PyObject * __pyx_v_self ) {
2015-06-28 09:38:55 +00:00
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " __get__ (wrapper) " , 0 ) ;
2015-07-24 06:43:34 +00:00
__pyx_r = __pyx_pf_9rgbmatrix_4core_11FrameCanvas_7pwmBits___get__ ( ( ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * ) __pyx_v_self ) ) ;
2015-06-28 09:38:55 +00:00
/* function exit code */
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pf_9rgbmatrix_4core_11FrameCanvas_7pwmBits___get__ ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * __pyx_v_self ) {
2015-06-28 09:38:55 +00:00
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
2015-07-24 06:43:34 +00:00
rgb_matrix : : Canvas * __pyx_t_1 ;
2015-06-28 09:38:55 +00:00
PyObject * __pyx_t_2 = NULL ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
__Pyx_RefNannySetupContext ( " __get__ " , 0 ) ;
__Pyx_XDECREF ( __pyx_r ) ;
2016-08-29 00:45:53 +00:00
__pyx_t_1 = ( ( struct __pyx_vtabstruct_9rgbmatrix_4core_FrameCanvas * ) __pyx_v_self - > __pyx_base . __pyx_vtab ) - > __pyx___getCanvas ( __pyx_v_self ) ; if ( unlikely ( PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 50 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__pyx_t_2 = __Pyx_PyInt_From_uint8_t ( ( ( rgb_matrix : : FrameCanvas * ) __pyx_t_1 ) - > pwmbits ( ) ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 50 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-06-28 09:38:55 +00:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
__pyx_r = __pyx_t_2 ;
__pyx_t_2 = 0 ;
goto __pyx_L0 ;
/* function exit code */
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_2 ) ;
2015-07-24 06:43:34 +00:00
__Pyx_AddTraceback ( " rgbmatrix.core.FrameCanvas.pwmBits.__get__ " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2015-06-28 09:38:55 +00:00
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":51
2015-06-28 09:38:55 +00:00
* property pwmBits :
2015-07-24 06:43:34 +00:00
* def __get__ ( self ) : return ( < cppinc . FrameCanvas * > self . __getCanvas ( ) ) . pwmbits ( )
* def __set__ ( self , pwmBits ) : ( < cppinc . FrameCanvas * > self . __getCanvas ( ) ) . SetPWMBits ( pwmBits ) # < < < < < < < < < < < < < <
*
2015-06-28 09:38:55 +00:00
*
*/
/* Python wrapper */
2015-07-24 06:43:34 +00:00
static int __pyx_pw_9rgbmatrix_4core_11FrameCanvas_7pwmBits_3__set__ ( PyObject * __pyx_v_self , PyObject * __pyx_v_pwmBits ) ; /*proto*/
static int __pyx_pw_9rgbmatrix_4core_11FrameCanvas_7pwmBits_3__set__ ( PyObject * __pyx_v_self , PyObject * __pyx_v_pwmBits ) {
2015-06-28 09:38:55 +00:00
int __pyx_r ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " __set__ (wrapper) " , 0 ) ;
2015-07-24 06:43:34 +00:00
__pyx_r = __pyx_pf_9rgbmatrix_4core_11FrameCanvas_7pwmBits_2__set__ ( ( ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * ) __pyx_v_self ) , ( ( PyObject * ) __pyx_v_pwmBits ) ) ;
2015-06-28 09:38:55 +00:00
/* function exit code */
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2015-07-24 06:43:34 +00:00
static int __pyx_pf_9rgbmatrix_4core_11FrameCanvas_7pwmBits_2__set__ ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * __pyx_v_self , PyObject * __pyx_v_pwmBits ) {
2015-06-28 09:38:55 +00:00
int __pyx_r ;
__Pyx_RefNannyDeclarations
2015-07-24 06:43:34 +00:00
rgb_matrix : : Canvas * __pyx_t_1 ;
2015-06-28 09:38:55 +00:00
uint8_t __pyx_t_2 ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
__Pyx_RefNannySetupContext ( " __set__ " , 0 ) ;
2016-08-29 00:45:53 +00:00
__pyx_t_1 = ( ( struct __pyx_vtabstruct_9rgbmatrix_4core_FrameCanvas * ) __pyx_v_self - > __pyx_base . __pyx_vtab ) - > __pyx___getCanvas ( __pyx_v_self ) ; if ( unlikely ( PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 51 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__pyx_t_2 = __Pyx_PyInt_As_uint8_t ( __pyx_v_pwmBits ) ; if ( unlikely ( ( __pyx_t_2 = = ( uint8_t ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 51 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-07-24 06:43:34 +00:00
( ( rgb_matrix : : FrameCanvas * ) __pyx_t_1 ) - > SetPWMBits ( __pyx_t_2 ) ;
2015-06-28 09:38:55 +00:00
/* function exit code */
__pyx_r = 0 ;
goto __pyx_L0 ;
__pyx_L1_error : ;
2015-07-24 06:43:34 +00:00
__Pyx_AddTraceback ( " rgbmatrix.core.FrameCanvas.pwmBits.__set__ " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2015-06-28 09:38:55 +00:00
__pyx_r = - 1 ;
__pyx_L0 : ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":55
2015-06-28 09:38:55 +00:00
*
2015-07-24 06:43:34 +00:00
* cdef class RGBMatrix ( Canvas ) :
2015-06-28 09:38:55 +00:00
* def __cinit__ ( self , int rows , int chains = 1 , int parallel = 1 ) : # < < < < < < < < < < < < < <
2015-07-24 06:43:34 +00:00
* self . __gpio = new cppinc . GPIO ( )
2015-06-28 09:38:55 +00:00
* if not self . __gpio . Init ( ) :
*/
/* Python wrapper */
2015-07-24 06:43:34 +00:00
static int __pyx_pw_9rgbmatrix_4core_9RGBMatrix_1__cinit__ ( PyObject * __pyx_v_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) ; /*proto*/
static int __pyx_pw_9rgbmatrix_4core_9RGBMatrix_1__cinit__ ( PyObject * __pyx_v_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) {
2015-06-28 09:38:55 +00:00
int __pyx_v_rows ;
int __pyx_v_chains ;
int __pyx_v_parallel ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
int __pyx_r ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " __cinit__ (wrapper) " , 0 ) ;
{
static PyObject * * __pyx_pyargnames [ ] = { & __pyx_n_s_rows , & __pyx_n_s_chains , & __pyx_n_s_parallel , 0 } ;
PyObject * values [ 3 ] = { 0 , 0 , 0 } ;
if ( unlikely ( __pyx_kwds ) ) {
Py_ssize_t kw_args ;
const Py_ssize_t pos_args = PyTuple_GET_SIZE ( __pyx_args ) ;
switch ( pos_args ) {
case 3 : values [ 2 ] = PyTuple_GET_ITEM ( __pyx_args , 2 ) ;
case 2 : values [ 1 ] = PyTuple_GET_ITEM ( __pyx_args , 1 ) ;
case 1 : values [ 0 ] = PyTuple_GET_ITEM ( __pyx_args , 0 ) ;
case 0 : break ;
default : goto __pyx_L5_argtuple_error ;
}
kw_args = PyDict_Size ( __pyx_kwds ) ;
switch ( pos_args ) {
case 0 :
if ( likely ( ( values [ 0 ] = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_rows ) ) ! = 0 ) ) kw_args - - ;
else goto __pyx_L5_argtuple_error ;
case 1 :
if ( kw_args > 0 ) {
PyObject * value = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_chains ) ;
if ( value ) { values [ 1 ] = value ; kw_args - - ; }
}
case 2 :
if ( kw_args > 0 ) {
PyObject * value = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_parallel ) ;
if ( value ) { values [ 2 ] = value ; kw_args - - ; }
}
}
if ( unlikely ( kw_args > 0 ) ) {
2016-08-29 00:45:53 +00:00
if ( unlikely ( __Pyx_ParseOptionalKeywords ( __pyx_kwds , __pyx_pyargnames , 0 , values , pos_args , " __cinit__ " ) < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 55 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
}
} else {
switch ( PyTuple_GET_SIZE ( __pyx_args ) ) {
case 3 : values [ 2 ] = PyTuple_GET_ITEM ( __pyx_args , 2 ) ;
case 2 : values [ 1 ] = PyTuple_GET_ITEM ( __pyx_args , 1 ) ;
case 1 : values [ 0 ] = PyTuple_GET_ITEM ( __pyx_args , 0 ) ;
break ;
default : goto __pyx_L5_argtuple_error ;
}
}
2016-08-29 00:45:53 +00:00
__pyx_v_rows = __Pyx_PyInt_As_int ( values [ 0 ] ) ; if ( unlikely ( ( __pyx_v_rows = = ( int ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 55 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
if ( values [ 1 ] ) {
2016-08-29 00:45:53 +00:00
__pyx_v_chains = __Pyx_PyInt_As_int ( values [ 1 ] ) ; if ( unlikely ( ( __pyx_v_chains = = ( int ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 55 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
} else {
__pyx_v_chains = ( ( int ) 1 ) ;
}
if ( values [ 2 ] ) {
2016-08-29 00:45:53 +00:00
__pyx_v_parallel = __Pyx_PyInt_As_int ( values [ 2 ] ) ; if ( unlikely ( ( __pyx_v_parallel = = ( int ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 55 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
} else {
__pyx_v_parallel = ( ( int ) 1 ) ;
}
}
goto __pyx_L4_argument_unpacking_done ;
__pyx_L5_argtuple_error : ;
2016-08-29 00:45:53 +00:00
__Pyx_RaiseArgtupleInvalid ( " __cinit__ " , 0 , 1 , 3 , PyTuple_GET_SIZE ( __pyx_args ) ) ; { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 55 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
__pyx_L3_error : ;
2015-07-24 06:43:34 +00:00
__Pyx_AddTraceback ( " rgbmatrix.core.RGBMatrix.__cinit__ " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2015-06-28 09:38:55 +00:00
__Pyx_RefNannyFinishContext ( ) ;
return - 1 ;
__pyx_L4_argument_unpacking_done : ;
2015-07-24 06:43:34 +00:00
__pyx_r = __pyx_pf_9rgbmatrix_4core_9RGBMatrix___cinit__ ( ( ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * ) __pyx_v_self ) , __pyx_v_rows , __pyx_v_chains , __pyx_v_parallel ) ;
2015-06-28 09:38:55 +00:00
/* function exit code */
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2015-07-24 06:43:34 +00:00
static int __pyx_pf_9rgbmatrix_4core_9RGBMatrix___cinit__ ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self , int __pyx_v_rows , int __pyx_v_chains , int __pyx_v_parallel ) {
2015-06-28 09:38:55 +00:00
int __pyx_r ;
__Pyx_RefNannyDeclarations
rgb_matrix : : GPIO * __pyx_t_1 ;
int __pyx_t_2 ;
PyObject * __pyx_t_3 = NULL ;
rgb_matrix : : RGBMatrix * __pyx_t_4 ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
__Pyx_RefNannySetupContext ( " __cinit__ " , 0 ) ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":56
2015-07-24 06:43:34 +00:00
* cdef class RGBMatrix ( Canvas ) :
2015-06-28 09:38:55 +00:00
* def __cinit__ ( self , int rows , int chains = 1 , int parallel = 1 ) :
2015-07-24 06:43:34 +00:00
* self . __gpio = new cppinc . GPIO ( ) # < < < < < < < < < < < < < <
2015-06-28 09:38:55 +00:00
* if not self . __gpio . Init ( ) :
2016-08-28 18:58:00 +00:00
* raise Exception ( " Error initializing GPIOs " ) # will segfault ? !
2015-06-28 09:38:55 +00:00
*/
try {
__pyx_t_1 = new rgb_matrix : : GPIO ( ) ;
} catch ( . . . ) {
__Pyx_CppExn2PyErr ( ) ;
2016-08-29 00:45:53 +00:00
{ __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 56 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-06-28 09:38:55 +00:00
}
__pyx_v_self - > __pyx___gpio = __pyx_t_1 ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":57
2015-06-28 09:38:55 +00:00
* def __cinit__ ( self , int rows , int chains = 1 , int parallel = 1 ) :
2015-07-24 06:43:34 +00:00
* self . __gpio = new cppinc . GPIO ( )
2015-06-28 09:38:55 +00:00
* if not self . __gpio . Init ( ) : # < < < < < < < < < < < < < <
2016-08-28 18:58:00 +00:00
* raise Exception ( " Error initializing GPIOs " ) # will segfault ? !
* self . __matrix = new cppinc . RGBMatrix ( self . __gpio , rows , chains , parallel )
2015-06-28 09:38:55 +00:00
*/
__pyx_t_2 = ( ( ! ( __pyx_v_self - > __pyx___gpio - > Init ( ) ! = 0 ) ) ! = 0 ) ;
if ( __pyx_t_2 ) {
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":58
2015-07-24 06:43:34 +00:00
* self . __gpio = new cppinc . GPIO ( )
2015-06-28 09:38:55 +00:00
* if not self . __gpio . Init ( ) :
2016-08-28 18:58:00 +00:00
* raise Exception ( " Error initializing GPIOs " ) # will segfault ? ! # < < < < < < < < < < < < < <
2015-07-24 06:43:34 +00:00
* self . __matrix = new cppinc . RGBMatrix ( self . __gpio , rows , chains , parallel )
2016-08-28 18:58:00 +00:00
*
2015-06-28 09:38:55 +00:00
*/
2016-08-29 00:45:53 +00:00
__pyx_t_3 = __Pyx_PyObject_Call ( __pyx_builtin_Exception , __pyx_tuple__4 , NULL ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 58 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-06-28 09:38:55 +00:00
__Pyx_GOTREF ( __pyx_t_3 ) ;
__Pyx_Raise ( __pyx_t_3 , 0 , 0 , 0 ) ;
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2016-08-29 00:45:53 +00:00
{ __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 58 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-12-02 06:07:31 +00:00
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":57
2015-12-02 06:07:31 +00:00
* def __cinit__ ( self , int rows , int chains = 1 , int parallel = 1 ) :
* self . __gpio = new cppinc . GPIO ( )
* if not self . __gpio . Init ( ) : # < < < < < < < < < < < < < <
2016-08-28 18:58:00 +00:00
* raise Exception ( " Error initializing GPIOs " ) # will segfault ? !
* self . __matrix = new cppinc . RGBMatrix ( self . __gpio , rows , chains , parallel )
2015-12-02 06:07:31 +00:00
*/
2015-06-28 09:38:55 +00:00
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":59
2016-08-28 18:58:00 +00:00
* if not self . __gpio . Init ( ) :
* raise Exception ( " Error initializing GPIOs " ) # will segfault ? !
2015-07-24 06:43:34 +00:00
* self . __matrix = new cppinc . RGBMatrix ( self . __gpio , rows , chains , parallel ) # < < < < < < < < < < < < < <
2015-06-28 09:38:55 +00:00
*
* def __dealloc__ ( self ) :
*/
try {
__pyx_t_4 = new rgb_matrix : : RGBMatrix ( __pyx_v_self - > __pyx___gpio , __pyx_v_rows , __pyx_v_chains , __pyx_v_parallel ) ;
} catch ( . . . ) {
__Pyx_CppExn2PyErr ( ) ;
2016-08-29 00:45:53 +00:00
{ __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 59 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-06-28 09:38:55 +00:00
}
__pyx_v_self - > __pyx___matrix = __pyx_t_4 ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":55
2015-06-28 09:38:55 +00:00
*
2015-07-24 06:43:34 +00:00
* cdef class RGBMatrix ( Canvas ) :
2015-06-28 09:38:55 +00:00
* def __cinit__ ( self , int rows , int chains = 1 , int parallel = 1 ) : # < < < < < < < < < < < < < <
2015-07-24 06:43:34 +00:00
* self . __gpio = new cppinc . GPIO ( )
2015-06-28 09:38:55 +00:00
* if not self . __gpio . Init ( ) :
*/
/* function exit code */
__pyx_r = 0 ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_3 ) ;
2015-07-24 06:43:34 +00:00
__Pyx_AddTraceback ( " rgbmatrix.core.RGBMatrix.__cinit__ " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2015-06-28 09:38:55 +00:00
__pyx_r = - 1 ;
__pyx_L0 : ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":61
2015-07-24 06:43:34 +00:00
* self . __matrix = new cppinc . RGBMatrix ( self . __gpio , rows , chains , parallel )
2015-06-28 09:38:55 +00:00
*
* def __dealloc__ ( self ) : # < < < < < < < < < < < < < <
* self . __matrix . Clear ( )
* del self . __matrix
*/
/* Python wrapper */
2015-07-24 06:43:34 +00:00
static void __pyx_pw_9rgbmatrix_4core_9RGBMatrix_3__dealloc__ ( PyObject * __pyx_v_self ) ; /*proto*/
static void __pyx_pw_9rgbmatrix_4core_9RGBMatrix_3__dealloc__ ( PyObject * __pyx_v_self ) {
2015-06-28 09:38:55 +00:00
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " __dealloc__ (wrapper) " , 0 ) ;
2015-07-24 06:43:34 +00:00
__pyx_pf_9rgbmatrix_4core_9RGBMatrix_2__dealloc__ ( ( ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * ) __pyx_v_self ) ) ;
2015-06-28 09:38:55 +00:00
/* function exit code */
__Pyx_RefNannyFinishContext ( ) ;
}
2015-07-24 06:43:34 +00:00
static void __pyx_pf_9rgbmatrix_4core_9RGBMatrix_2__dealloc__ ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self ) {
2015-06-28 09:38:55 +00:00
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " __dealloc__ " , 0 ) ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":62
2015-06-28 09:38:55 +00:00
*
* def __dealloc__ ( self ) :
* self . __matrix . Clear ( ) # < < < < < < < < < < < < < <
* del self . __matrix
* del self . __gpio
*/
__pyx_v_self - > __pyx___matrix - > Clear ( ) ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":63
2015-06-28 09:38:55 +00:00
* def __dealloc__ ( self ) :
* self . __matrix . Clear ( )
* del self . __matrix # < < < < < < < < < < < < < <
* del self . __gpio
*
*/
delete __pyx_v_self - > __pyx___matrix ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":64
2015-06-28 09:38:55 +00:00
* self . __matrix . Clear ( )
* del self . __matrix
* del self . __gpio # < < < < < < < < < < < < < <
*
2015-07-24 06:43:34 +00:00
* cdef cppinc . Canvas * __getCanvas ( self ) except * :
2015-06-28 09:38:55 +00:00
*/
delete __pyx_v_self - > __pyx___gpio ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":61
2015-07-24 06:43:34 +00:00
* self . __matrix = new cppinc . RGBMatrix ( self . __gpio , rows , chains , parallel )
2015-06-28 09:38:55 +00:00
*
* def __dealloc__ ( self ) : # < < < < < < < < < < < < < <
* self . __matrix . Clear ( )
* del self . __matrix
*/
/* function exit code */
__Pyx_RefNannyFinishContext ( ) ;
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":66
2015-06-28 09:38:55 +00:00
* del self . __gpio
*
2015-07-24 06:43:34 +00:00
* cdef cppinc . Canvas * __getCanvas ( self ) except * : # < < < < < < < < < < < < < <
* if < void * > self . __matrix ! = NULL :
* return self . __matrix
*/
rgb_matrix : : Canvas * __pyx_f_9rgbmatrix_4core_9RGBMatrix___getCanvas ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self ) {
rgb_matrix : : Canvas * __pyx_r ;
__Pyx_RefNannyDeclarations
int __pyx_t_1 ;
PyObject * __pyx_t_2 = NULL ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
__Pyx_RefNannySetupContext ( " __getCanvas " , 0 ) ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":67
2015-07-24 06:43:34 +00:00
*
* cdef cppinc . Canvas * __getCanvas ( self ) except * :
* if < void * > self . __matrix ! = NULL : # < < < < < < < < < < < < < <
* return self . __matrix
* raise Exception ( " Canvas was destroyed or not initialized, you cannot use this object anymore " )
*/
__pyx_t_1 = ( ( ( ( void * ) __pyx_v_self - > __pyx___matrix ) ! = NULL ) ! = 0 ) ;
if ( __pyx_t_1 ) {
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":68
2015-07-24 06:43:34 +00:00
* cdef cppinc . Canvas * __getCanvas ( self ) except * :
* if < void * > self . __matrix ! = NULL :
* return self . __matrix # < < < < < < < < < < < < < <
* raise Exception ( " Canvas was destroyed or not initialized, you cannot use this object anymore " )
*
*/
__pyx_r = __pyx_v_self - > __pyx___matrix ;
goto __pyx_L0 ;
2015-12-02 06:07:31 +00:00
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":67
2015-12-02 06:07:31 +00:00
*
* cdef cppinc . Canvas * __getCanvas ( self ) except * :
* if < void * > self . __matrix ! = NULL : # < < < < < < < < < < < < < <
* return self . __matrix
* raise Exception ( " Canvas was destroyed or not initialized, you cannot use this object anymore " )
*/
2015-07-24 06:43:34 +00:00
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":69
2015-07-24 06:43:34 +00:00
* if < void * > self . __matrix ! = NULL :
* return self . __matrix
* raise Exception ( " Canvas was destroyed or not initialized, you cannot use this object anymore " ) # < < < < < < < < < < < < < <
*
* def Fill ( self , uint8_t red , uint8_t green , uint8_t blue ) :
*/
2016-08-29 00:45:53 +00:00
__pyx_t_2 = __Pyx_PyObject_Call ( __pyx_builtin_Exception , __pyx_tuple__5 , NULL ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 69 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-07-24 06:43:34 +00:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
__Pyx_Raise ( __pyx_t_2 , 0 , 0 , 0 ) ;
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
2016-08-29 00:45:53 +00:00
{ __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 69 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-07-24 06:43:34 +00:00
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":66
2015-07-24 06:43:34 +00:00
* del self . __gpio
*
* cdef cppinc . Canvas * __getCanvas ( self ) except * : # < < < < < < < < < < < < < <
* if < void * > self . __matrix ! = NULL :
* return self . __matrix
*/
/* function exit code */
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_2 ) ;
__Pyx_AddTraceback ( " rgbmatrix.core.RGBMatrix.__getCanvas " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
__pyx_r = 0 ;
__pyx_L0 : ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
rgb_matrix : : Canvas * __pyx_f_9rgbmatrix_4core_9RGBMatrix___getCanvas__pyx_wrap_1 ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self ) {
return __pyx_f_9rgbmatrix_4core_9RGBMatrix___getCanvas ( __pyx_v_self ) ;
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":71
2015-07-24 06:43:34 +00:00
* raise Exception ( " Canvas was destroyed or not initialized, you cannot use this object anymore " )
*
2015-06-28 09:38:55 +00:00
* def Fill ( self , uint8_t red , uint8_t green , uint8_t blue ) : # < < < < < < < < < < < < < <
* self . __matrix . Fill ( red , green , blue )
*
*/
/* Python wrapper */
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pw_9rgbmatrix_4core_9RGBMatrix_5Fill ( PyObject * __pyx_v_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) ; /*proto*/
static PyObject * __pyx_pw_9rgbmatrix_4core_9RGBMatrix_5Fill ( PyObject * __pyx_v_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) {
2015-06-28 09:38:55 +00:00
uint8_t __pyx_v_red ;
uint8_t __pyx_v_green ;
uint8_t __pyx_v_blue ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " Fill (wrapper) " , 0 ) ;
{
static PyObject * * __pyx_pyargnames [ ] = { & __pyx_n_s_red , & __pyx_n_s_green , & __pyx_n_s_blue , 0 } ;
PyObject * values [ 3 ] = { 0 , 0 , 0 } ;
if ( unlikely ( __pyx_kwds ) ) {
Py_ssize_t kw_args ;
const Py_ssize_t pos_args = PyTuple_GET_SIZE ( __pyx_args ) ;
switch ( pos_args ) {
case 3 : values [ 2 ] = PyTuple_GET_ITEM ( __pyx_args , 2 ) ;
case 2 : values [ 1 ] = PyTuple_GET_ITEM ( __pyx_args , 1 ) ;
case 1 : values [ 0 ] = PyTuple_GET_ITEM ( __pyx_args , 0 ) ;
case 0 : break ;
default : goto __pyx_L5_argtuple_error ;
}
kw_args = PyDict_Size ( __pyx_kwds ) ;
switch ( pos_args ) {
case 0 :
if ( likely ( ( values [ 0 ] = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_red ) ) ! = 0 ) ) kw_args - - ;
else goto __pyx_L5_argtuple_error ;
case 1 :
if ( likely ( ( values [ 1 ] = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_green ) ) ! = 0 ) ) kw_args - - ;
else {
2016-08-29 00:45:53 +00:00
__Pyx_RaiseArgtupleInvalid ( " Fill " , 1 , 3 , 3 , 1 ) ; { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 71 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
}
case 2 :
if ( likely ( ( values [ 2 ] = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_blue ) ) ! = 0 ) ) kw_args - - ;
else {
2016-08-29 00:45:53 +00:00
__Pyx_RaiseArgtupleInvalid ( " Fill " , 1 , 3 , 3 , 2 ) ; { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 71 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
}
}
if ( unlikely ( kw_args > 0 ) ) {
2016-08-29 00:45:53 +00:00
if ( unlikely ( __Pyx_ParseOptionalKeywords ( __pyx_kwds , __pyx_pyargnames , 0 , values , pos_args , " Fill " ) < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 71 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
}
} else if ( PyTuple_GET_SIZE ( __pyx_args ) ! = 3 ) {
goto __pyx_L5_argtuple_error ;
} else {
values [ 0 ] = PyTuple_GET_ITEM ( __pyx_args , 0 ) ;
values [ 1 ] = PyTuple_GET_ITEM ( __pyx_args , 1 ) ;
values [ 2 ] = PyTuple_GET_ITEM ( __pyx_args , 2 ) ;
}
2016-08-29 00:45:53 +00:00
__pyx_v_red = __Pyx_PyInt_As_uint8_t ( values [ 0 ] ) ; if ( unlikely ( ( __pyx_v_red = = ( uint8_t ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 71 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
__pyx_v_green = __Pyx_PyInt_As_uint8_t ( values [ 1 ] ) ; if ( unlikely ( ( __pyx_v_green = = ( uint8_t ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 71 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
__pyx_v_blue = __Pyx_PyInt_As_uint8_t ( values [ 2 ] ) ; if ( unlikely ( ( __pyx_v_blue = = ( uint8_t ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 71 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
}
goto __pyx_L4_argument_unpacking_done ;
__pyx_L5_argtuple_error : ;
2016-08-29 00:45:53 +00:00
__Pyx_RaiseArgtupleInvalid ( " Fill " , 1 , 3 , 3 , PyTuple_GET_SIZE ( __pyx_args ) ) ; { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 71 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
__pyx_L3_error : ;
2015-07-24 06:43:34 +00:00
__Pyx_AddTraceback ( " rgbmatrix.core.RGBMatrix.Fill " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2015-06-28 09:38:55 +00:00
__Pyx_RefNannyFinishContext ( ) ;
return NULL ;
__pyx_L4_argument_unpacking_done : ;
2015-07-24 06:43:34 +00:00
__pyx_r = __pyx_pf_9rgbmatrix_4core_9RGBMatrix_4Fill ( ( ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * ) __pyx_v_self ) , __pyx_v_red , __pyx_v_green , __pyx_v_blue ) ;
2015-06-28 09:38:55 +00:00
/* function exit code */
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pf_9rgbmatrix_4core_9RGBMatrix_4Fill ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self , uint8_t __pyx_v_red , uint8_t __pyx_v_green , uint8_t __pyx_v_blue ) {
2015-06-28 09:38:55 +00:00
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " Fill " , 0 ) ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":72
2015-06-28 09:38:55 +00:00
*
* def Fill ( self , uint8_t red , uint8_t green , uint8_t blue ) :
* self . __matrix . Fill ( red , green , blue ) # < < < < < < < < < < < < < <
*
* def SetPixel ( self , int x , int y , uint8_t red , uint8_t green , uint8_t blue ) :
*/
__pyx_v_self - > __pyx___matrix - > Fill ( __pyx_v_red , __pyx_v_green , __pyx_v_blue ) ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":71
2015-07-24 06:43:34 +00:00
* raise Exception ( " Canvas was destroyed or not initialized, you cannot use this object anymore " )
2015-06-28 09:38:55 +00:00
*
* def Fill ( self , uint8_t red , uint8_t green , uint8_t blue ) : # < < < < < < < < < < < < < <
* self . __matrix . Fill ( red , green , blue )
*
*/
/* function exit code */
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":74
2015-06-28 09:38:55 +00:00
* self . __matrix . Fill ( red , green , blue )
*
* def SetPixel ( self , int x , int y , uint8_t red , uint8_t green , uint8_t blue ) : # < < < < < < < < < < < < < <
* self . __matrix . SetPixel ( x , y , red , green , blue )
*
*/
/* Python wrapper */
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pw_9rgbmatrix_4core_9RGBMatrix_7SetPixel ( PyObject * __pyx_v_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) ; /*proto*/
static PyObject * __pyx_pw_9rgbmatrix_4core_9RGBMatrix_7SetPixel ( PyObject * __pyx_v_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) {
2015-06-28 09:38:55 +00:00
int __pyx_v_x ;
int __pyx_v_y ;
uint8_t __pyx_v_red ;
uint8_t __pyx_v_green ;
uint8_t __pyx_v_blue ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " SetPixel (wrapper) " , 0 ) ;
{
static PyObject * * __pyx_pyargnames [ ] = { & __pyx_n_s_x , & __pyx_n_s_y , & __pyx_n_s_red , & __pyx_n_s_green , & __pyx_n_s_blue , 0 } ;
PyObject * values [ 5 ] = { 0 , 0 , 0 , 0 , 0 } ;
if ( unlikely ( __pyx_kwds ) ) {
Py_ssize_t kw_args ;
const Py_ssize_t pos_args = PyTuple_GET_SIZE ( __pyx_args ) ;
switch ( pos_args ) {
case 5 : values [ 4 ] = PyTuple_GET_ITEM ( __pyx_args , 4 ) ;
case 4 : values [ 3 ] = PyTuple_GET_ITEM ( __pyx_args , 3 ) ;
case 3 : values [ 2 ] = PyTuple_GET_ITEM ( __pyx_args , 2 ) ;
case 2 : values [ 1 ] = PyTuple_GET_ITEM ( __pyx_args , 1 ) ;
case 1 : values [ 0 ] = PyTuple_GET_ITEM ( __pyx_args , 0 ) ;
case 0 : break ;
default : goto __pyx_L5_argtuple_error ;
}
kw_args = PyDict_Size ( __pyx_kwds ) ;
switch ( pos_args ) {
case 0 :
if ( likely ( ( values [ 0 ] = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_x ) ) ! = 0 ) ) kw_args - - ;
else goto __pyx_L5_argtuple_error ;
case 1 :
if ( likely ( ( values [ 1 ] = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_y ) ) ! = 0 ) ) kw_args - - ;
else {
2016-08-29 00:45:53 +00:00
__Pyx_RaiseArgtupleInvalid ( " SetPixel " , 1 , 5 , 5 , 1 ) ; { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 74 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
}
case 2 :
if ( likely ( ( values [ 2 ] = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_red ) ) ! = 0 ) ) kw_args - - ;
else {
2016-08-29 00:45:53 +00:00
__Pyx_RaiseArgtupleInvalid ( " SetPixel " , 1 , 5 , 5 , 2 ) ; { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 74 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
}
case 3 :
if ( likely ( ( values [ 3 ] = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_green ) ) ! = 0 ) ) kw_args - - ;
else {
2016-08-29 00:45:53 +00:00
__Pyx_RaiseArgtupleInvalid ( " SetPixel " , 1 , 5 , 5 , 3 ) ; { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 74 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
}
case 4 :
if ( likely ( ( values [ 4 ] = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_blue ) ) ! = 0 ) ) kw_args - - ;
else {
2016-08-29 00:45:53 +00:00
__Pyx_RaiseArgtupleInvalid ( " SetPixel " , 1 , 5 , 5 , 4 ) ; { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 74 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
}
}
if ( unlikely ( kw_args > 0 ) ) {
2016-08-29 00:45:53 +00:00
if ( unlikely ( __Pyx_ParseOptionalKeywords ( __pyx_kwds , __pyx_pyargnames , 0 , values , pos_args , " SetPixel " ) < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 74 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
}
} else if ( PyTuple_GET_SIZE ( __pyx_args ) ! = 5 ) {
goto __pyx_L5_argtuple_error ;
} else {
values [ 0 ] = PyTuple_GET_ITEM ( __pyx_args , 0 ) ;
values [ 1 ] = PyTuple_GET_ITEM ( __pyx_args , 1 ) ;
values [ 2 ] = PyTuple_GET_ITEM ( __pyx_args , 2 ) ;
values [ 3 ] = PyTuple_GET_ITEM ( __pyx_args , 3 ) ;
values [ 4 ] = PyTuple_GET_ITEM ( __pyx_args , 4 ) ;
}
2016-08-29 00:45:53 +00:00
__pyx_v_x = __Pyx_PyInt_As_int ( values [ 0 ] ) ; if ( unlikely ( ( __pyx_v_x = = ( int ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 74 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
__pyx_v_y = __Pyx_PyInt_As_int ( values [ 1 ] ) ; if ( unlikely ( ( __pyx_v_y = = ( int ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 74 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
__pyx_v_red = __Pyx_PyInt_As_uint8_t ( values [ 2 ] ) ; if ( unlikely ( ( __pyx_v_red = = ( uint8_t ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 74 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
__pyx_v_green = __Pyx_PyInt_As_uint8_t ( values [ 3 ] ) ; if ( unlikely ( ( __pyx_v_green = = ( uint8_t ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 74 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
__pyx_v_blue = __Pyx_PyInt_As_uint8_t ( values [ 4 ] ) ; if ( unlikely ( ( __pyx_v_blue = = ( uint8_t ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 74 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
}
goto __pyx_L4_argument_unpacking_done ;
__pyx_L5_argtuple_error : ;
2016-08-29 00:45:53 +00:00
__Pyx_RaiseArgtupleInvalid ( " SetPixel " , 1 , 5 , 5 , PyTuple_GET_SIZE ( __pyx_args ) ) ; { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 74 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2015-06-28 09:38:55 +00:00
__pyx_L3_error : ;
2015-07-24 06:43:34 +00:00
__Pyx_AddTraceback ( " rgbmatrix.core.RGBMatrix.SetPixel " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2015-06-28 09:38:55 +00:00
__Pyx_RefNannyFinishContext ( ) ;
return NULL ;
__pyx_L4_argument_unpacking_done : ;
2015-07-24 06:43:34 +00:00
__pyx_r = __pyx_pf_9rgbmatrix_4core_9RGBMatrix_6SetPixel ( ( ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * ) __pyx_v_self ) , __pyx_v_x , __pyx_v_y , __pyx_v_red , __pyx_v_green , __pyx_v_blue ) ;
2015-06-28 09:38:55 +00:00
/* function exit code */
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pf_9rgbmatrix_4core_9RGBMatrix_6SetPixel ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self , int __pyx_v_x , int __pyx_v_y , uint8_t __pyx_v_red , uint8_t __pyx_v_green , uint8_t __pyx_v_blue ) {
2015-06-28 09:38:55 +00:00
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " SetPixel " , 0 ) ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":75
2015-06-28 09:38:55 +00:00
*
* def SetPixel ( self , int x , int y , uint8_t red , uint8_t green , uint8_t blue ) :
* self . __matrix . SetPixel ( x , y , red , green , blue ) # < < < < < < < < < < < < < <
*
* def Clear ( self ) :
*/
__pyx_v_self - > __pyx___matrix - > SetPixel ( __pyx_v_x , __pyx_v_y , __pyx_v_red , __pyx_v_green , __pyx_v_blue ) ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":74
2015-06-28 09:38:55 +00:00
* self . __matrix . Fill ( red , green , blue )
*
* def SetPixel ( self , int x , int y , uint8_t red , uint8_t green , uint8_t blue ) : # < < < < < < < < < < < < < <
* self . __matrix . SetPixel ( x , y , red , green , blue )
*
*/
/* function exit code */
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":77
2015-06-28 09:38:55 +00:00
* self . __matrix . SetPixel ( x , y , red , green , blue )
*
* def Clear ( self ) : # < < < < < < < < < < < < < <
* self . __matrix . Clear ( )
*
*/
/* Python wrapper */
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pw_9rgbmatrix_4core_9RGBMatrix_9Clear ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) ; /*proto*/
static PyObject * __pyx_pw_9rgbmatrix_4core_9RGBMatrix_9Clear ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) {
2015-06-28 09:38:55 +00:00
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " Clear (wrapper) " , 0 ) ;
2015-07-24 06:43:34 +00:00
__pyx_r = __pyx_pf_9rgbmatrix_4core_9RGBMatrix_8Clear ( ( ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * ) __pyx_v_self ) ) ;
2015-06-28 09:38:55 +00:00
/* function exit code */
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pf_9rgbmatrix_4core_9RGBMatrix_8Clear ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self ) {
2015-06-28 09:38:55 +00:00
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " Clear " , 0 ) ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":78
2015-06-28 09:38:55 +00:00
*
* def Clear ( self ) :
* self . __matrix . Clear ( ) # < < < < < < < < < < < < < <
*
* def CreateFrameCanvas ( self ) :
*/
__pyx_v_self - > __pyx___matrix - > Clear ( ) ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":77
2015-06-28 09:38:55 +00:00
* self . __matrix . SetPixel ( x , y , red , green , blue )
*
* def Clear ( self ) : # < < < < < < < < < < < < < <
* self . __matrix . Clear ( )
*
*/
/* function exit code */
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":80
2015-06-28 09:38:55 +00:00
* self . __matrix . Clear ( )
*
* def CreateFrameCanvas ( self ) : # < < < < < < < < < < < < < <
2015-07-24 06:43:34 +00:00
* return __createFrameCanvas ( self . __matrix . CreateFrameCanvas ( ) )
2015-06-28 09:38:55 +00:00
*
*/
/* Python wrapper */
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pw_9rgbmatrix_4core_9RGBMatrix_11CreateFrameCanvas ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) ; /*proto*/
static PyObject * __pyx_pw_9rgbmatrix_4core_9RGBMatrix_11CreateFrameCanvas ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) {
2015-06-28 09:38:55 +00:00
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " CreateFrameCanvas (wrapper) " , 0 ) ;
2015-07-24 06:43:34 +00:00
__pyx_r = __pyx_pf_9rgbmatrix_4core_9RGBMatrix_10CreateFrameCanvas ( ( ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * ) __pyx_v_self ) ) ;
2015-06-28 09:38:55 +00:00
/* function exit code */
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pf_9rgbmatrix_4core_9RGBMatrix_10CreateFrameCanvas ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self ) {
2015-06-28 09:38:55 +00:00
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
PyObject * __pyx_t_1 = NULL ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
__Pyx_RefNannySetupContext ( " CreateFrameCanvas " , 0 ) ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":81
2015-06-28 09:38:55 +00:00
*
* def CreateFrameCanvas ( self ) :
2015-07-24 06:43:34 +00:00
* return __createFrameCanvas ( self . __matrix . CreateFrameCanvas ( ) ) # < < < < < < < < < < < < < <
2015-06-28 09:38:55 +00:00
*
* def SwapOnVSync ( self , FrameCanvas newFrame ) :
*/
__Pyx_XDECREF ( __pyx_r ) ;
2016-08-29 00:45:53 +00:00
__pyx_t_1 = __pyx_f_9rgbmatrix_4core___createFrameCanvas ( __pyx_v_self - > __pyx___matrix - > CreateFrameCanvas ( ) ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 81 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-06-28 09:38:55 +00:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":80
2015-06-28 09:38:55 +00:00
* self . __matrix . Clear ( )
*
* def CreateFrameCanvas ( self ) : # < < < < < < < < < < < < < <
2015-07-24 06:43:34 +00:00
* return __createFrameCanvas ( self . __matrix . CreateFrameCanvas ( ) )
2015-06-28 09:38:55 +00:00
*
*/
/* function exit code */
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
2015-07-24 06:43:34 +00:00
__Pyx_AddTraceback ( " rgbmatrix.core.RGBMatrix.CreateFrameCanvas " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2015-06-28 09:38:55 +00:00
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":83
2015-07-24 06:43:34 +00:00
* return __createFrameCanvas ( self . __matrix . CreateFrameCanvas ( ) )
2015-06-28 09:38:55 +00:00
*
* def SwapOnVSync ( self , FrameCanvas newFrame ) : # < < < < < < < < < < < < < <
2015-07-24 06:43:34 +00:00
* return __createFrameCanvas ( self . __matrix . SwapOnVSync ( newFrame . __canvas ) )
2015-06-28 09:38:55 +00:00
*
*/
/* Python wrapper */
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pw_9rgbmatrix_4core_9RGBMatrix_13SwapOnVSync ( PyObject * __pyx_v_self , PyObject * __pyx_v_newFrame ) ; /*proto*/
static PyObject * __pyx_pw_9rgbmatrix_4core_9RGBMatrix_13SwapOnVSync ( PyObject * __pyx_v_self , PyObject * __pyx_v_newFrame ) {
2015-06-28 09:38:55 +00:00
CYTHON_UNUSED int __pyx_lineno = 0 ;
CYTHON_UNUSED const char * __pyx_filename = NULL ;
CYTHON_UNUSED int __pyx_clineno = 0 ;
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " SwapOnVSync (wrapper) " , 0 ) ;
2016-08-29 00:45:53 +00:00
if ( unlikely ( ! __Pyx_ArgTypeTest ( ( ( PyObject * ) __pyx_v_newFrame ) , __pyx_ptype_9rgbmatrix_4core_FrameCanvas , 1 , " newFrame " , 0 ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 83 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-07-24 06:43:34 +00:00
__pyx_r = __pyx_pf_9rgbmatrix_4core_9RGBMatrix_12SwapOnVSync ( ( ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * ) __pyx_v_self ) , ( ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * ) __pyx_v_newFrame ) ) ;
2015-06-28 09:38:55 +00:00
/* function exit code */
goto __pyx_L0 ;
__pyx_L1_error : ;
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pf_9rgbmatrix_4core_9RGBMatrix_12SwapOnVSync ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self , struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * __pyx_v_newFrame ) {
2015-06-28 09:38:55 +00:00
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
PyObject * __pyx_t_1 = NULL ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
__Pyx_RefNannySetupContext ( " SwapOnVSync " , 0 ) ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":84
2015-06-28 09:38:55 +00:00
*
* def SwapOnVSync ( self , FrameCanvas newFrame ) :
2015-07-24 06:43:34 +00:00
* return __createFrameCanvas ( self . __matrix . SwapOnVSync ( newFrame . __canvas ) ) # < < < < < < < < < < < < < <
2015-06-28 09:38:55 +00:00
*
* property luminanceCorrect :
*/
__Pyx_XDECREF ( __pyx_r ) ;
2016-08-29 00:45:53 +00:00
__pyx_t_1 = __pyx_f_9rgbmatrix_4core___createFrameCanvas ( __pyx_v_self - > __pyx___matrix - > SwapOnVSync ( __pyx_v_newFrame - > __pyx___canvas ) ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 84 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-06-28 09:38:55 +00:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":83
2015-07-24 06:43:34 +00:00
* return __createFrameCanvas ( self . __matrix . CreateFrameCanvas ( ) )
2015-06-28 09:38:55 +00:00
*
* def SwapOnVSync ( self , FrameCanvas newFrame ) : # < < < < < < < < < < < < < <
2015-07-24 06:43:34 +00:00
* return __createFrameCanvas ( self . __matrix . SwapOnVSync ( newFrame . __canvas ) )
2015-06-28 09:38:55 +00:00
*
*/
/* function exit code */
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
2015-07-24 06:43:34 +00:00
__Pyx_AddTraceback ( " rgbmatrix.core.RGBMatrix.SwapOnVSync " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2015-06-28 09:38:55 +00:00
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":87
2015-06-28 09:38:55 +00:00
*
* property luminanceCorrect :
* def __get__ ( self ) : return self . __matrix . luminance_correct ( ) # < < < < < < < < < < < < < <
* def __set__ ( self , luminanceCorrect ) : self . __matrix . set_luminance_correct ( luminanceCorrect )
*
*/
/* Python wrapper */
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pw_9rgbmatrix_4core_9RGBMatrix_16luminanceCorrect_1__get__ ( PyObject * __pyx_v_self ) ; /*proto*/
static PyObject * __pyx_pw_9rgbmatrix_4core_9RGBMatrix_16luminanceCorrect_1__get__ ( PyObject * __pyx_v_self ) {
2015-06-28 09:38:55 +00:00
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " __get__ (wrapper) " , 0 ) ;
2015-07-24 06:43:34 +00:00
__pyx_r = __pyx_pf_9rgbmatrix_4core_9RGBMatrix_16luminanceCorrect___get__ ( ( ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * ) __pyx_v_self ) ) ;
2015-06-28 09:38:55 +00:00
/* function exit code */
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pf_9rgbmatrix_4core_9RGBMatrix_16luminanceCorrect___get__ ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self ) {
2015-06-28 09:38:55 +00:00
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
PyObject * __pyx_t_1 = NULL ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
__Pyx_RefNannySetupContext ( " __get__ " , 0 ) ;
__Pyx_XDECREF ( __pyx_r ) ;
2016-08-29 00:45:53 +00:00
__pyx_t_1 = __Pyx_PyBool_FromLong ( __pyx_v_self - > __pyx___matrix - > luminance_correct ( ) ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 87 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-06-28 09:38:55 +00:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
/* function exit code */
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
2015-07-24 06:43:34 +00:00
__Pyx_AddTraceback ( " rgbmatrix.core.RGBMatrix.luminanceCorrect.__get__ " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2015-06-28 09:38:55 +00:00
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":88
2015-06-28 09:38:55 +00:00
* property luminanceCorrect :
* def __get__ ( self ) : return self . __matrix . luminance_correct ( )
* def __set__ ( self , luminanceCorrect ) : self . __matrix . set_luminance_correct ( luminanceCorrect ) # < < < < < < < < < < < < < <
*
* property pwmBits :
*/
/* Python wrapper */
2015-07-24 06:43:34 +00:00
static int __pyx_pw_9rgbmatrix_4core_9RGBMatrix_16luminanceCorrect_3__set__ ( PyObject * __pyx_v_self , PyObject * __pyx_v_luminanceCorrect ) ; /*proto*/
static int __pyx_pw_9rgbmatrix_4core_9RGBMatrix_16luminanceCorrect_3__set__ ( PyObject * __pyx_v_self , PyObject * __pyx_v_luminanceCorrect ) {
2015-06-28 09:38:55 +00:00
int __pyx_r ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " __set__ (wrapper) " , 0 ) ;
2015-07-24 06:43:34 +00:00
__pyx_r = __pyx_pf_9rgbmatrix_4core_9RGBMatrix_16luminanceCorrect_2__set__ ( ( ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * ) __pyx_v_self ) , ( ( PyObject * ) __pyx_v_luminanceCorrect ) ) ;
2015-06-28 09:38:55 +00:00
/* function exit code */
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2015-07-24 06:43:34 +00:00
static int __pyx_pf_9rgbmatrix_4core_9RGBMatrix_16luminanceCorrect_2__set__ ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self , PyObject * __pyx_v_luminanceCorrect ) {
2015-06-28 09:38:55 +00:00
int __pyx_r ;
__Pyx_RefNannyDeclarations
bool __pyx_t_1 ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
__Pyx_RefNannySetupContext ( " __set__ " , 0 ) ;
2016-08-29 00:45:53 +00:00
__pyx_t_1 = __Pyx_PyObject_IsTrue ( __pyx_v_luminanceCorrect ) ; if ( unlikely ( ( __pyx_t_1 = = ( bool ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 88 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-06-28 09:38:55 +00:00
__pyx_v_self - > __pyx___matrix - > set_luminance_correct ( __pyx_t_1 ) ;
/* function exit code */
__pyx_r = 0 ;
goto __pyx_L0 ;
__pyx_L1_error : ;
2015-07-24 06:43:34 +00:00
__Pyx_AddTraceback ( " rgbmatrix.core.RGBMatrix.luminanceCorrect.__set__ " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2015-06-28 09:38:55 +00:00
__pyx_r = - 1 ;
__pyx_L0 : ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":91
2015-06-28 09:38:55 +00:00
*
* property pwmBits :
* def __get__ ( self ) : return self . __matrix . pwmbits ( ) # < < < < < < < < < < < < < <
* def __set__ ( self , pwmBits ) : self . __matrix . SetPWMBits ( pwmBits )
*
*/
/* Python wrapper */
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pw_9rgbmatrix_4core_9RGBMatrix_7pwmBits_1__get__ ( PyObject * __pyx_v_self ) ; /*proto*/
static PyObject * __pyx_pw_9rgbmatrix_4core_9RGBMatrix_7pwmBits_1__get__ ( PyObject * __pyx_v_self ) {
2015-06-28 09:38:55 +00:00
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " __get__ (wrapper) " , 0 ) ;
2015-07-24 06:43:34 +00:00
__pyx_r = __pyx_pf_9rgbmatrix_4core_9RGBMatrix_7pwmBits___get__ ( ( ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * ) __pyx_v_self ) ) ;
2015-06-28 09:38:55 +00:00
/* function exit code */
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pf_9rgbmatrix_4core_9RGBMatrix_7pwmBits___get__ ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self ) {
2015-06-28 09:38:55 +00:00
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
PyObject * __pyx_t_1 = NULL ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
__Pyx_RefNannySetupContext ( " __get__ " , 0 ) ;
__Pyx_XDECREF ( __pyx_r ) ;
2016-08-29 00:45:53 +00:00
__pyx_t_1 = __Pyx_PyInt_From_uint8_t ( __pyx_v_self - > __pyx___matrix - > pwmbits ( ) ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 91 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-06-28 09:38:55 +00:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
/* function exit code */
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
2015-07-24 06:43:34 +00:00
__Pyx_AddTraceback ( " rgbmatrix.core.RGBMatrix.pwmBits.__get__ " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2015-06-28 09:38:55 +00:00
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":92
2015-06-28 09:38:55 +00:00
* property pwmBits :
* def __get__ ( self ) : return self . __matrix . pwmbits ( )
* def __set__ ( self , pwmBits ) : self . __matrix . SetPWMBits ( pwmBits ) # < < < < < < < < < < < < < <
*
2015-07-06 07:52:34 +00:00
* property brightness :
2015-06-28 09:38:55 +00:00
*/
/* Python wrapper */
2015-07-24 06:43:34 +00:00
static int __pyx_pw_9rgbmatrix_4core_9RGBMatrix_7pwmBits_3__set__ ( PyObject * __pyx_v_self , PyObject * __pyx_v_pwmBits ) ; /*proto*/
static int __pyx_pw_9rgbmatrix_4core_9RGBMatrix_7pwmBits_3__set__ ( PyObject * __pyx_v_self , PyObject * __pyx_v_pwmBits ) {
2015-06-28 09:38:55 +00:00
int __pyx_r ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " __set__ (wrapper) " , 0 ) ;
2015-07-24 06:43:34 +00:00
__pyx_r = __pyx_pf_9rgbmatrix_4core_9RGBMatrix_7pwmBits_2__set__ ( ( ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * ) __pyx_v_self ) , ( ( PyObject * ) __pyx_v_pwmBits ) ) ;
2015-06-28 09:38:55 +00:00
/* function exit code */
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2015-07-24 06:43:34 +00:00
static int __pyx_pf_9rgbmatrix_4core_9RGBMatrix_7pwmBits_2__set__ ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self , PyObject * __pyx_v_pwmBits ) {
2015-06-28 09:38:55 +00:00
int __pyx_r ;
__Pyx_RefNannyDeclarations
uint8_t __pyx_t_1 ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
__Pyx_RefNannySetupContext ( " __set__ " , 0 ) ;
2016-08-29 00:45:53 +00:00
__pyx_t_1 = __Pyx_PyInt_As_uint8_t ( __pyx_v_pwmBits ) ; if ( unlikely ( ( __pyx_t_1 = = ( uint8_t ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 92 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-06-28 09:38:55 +00:00
__pyx_v_self - > __pyx___matrix - > SetPWMBits ( __pyx_t_1 ) ;
/* function exit code */
__pyx_r = 0 ;
goto __pyx_L0 ;
__pyx_L1_error : ;
2015-07-24 06:43:34 +00:00
__Pyx_AddTraceback ( " rgbmatrix.core.RGBMatrix.pwmBits.__set__ " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2015-06-28 09:38:55 +00:00
__pyx_r = - 1 ;
__pyx_L0 : ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":95
2015-07-06 07:52:34 +00:00
*
* property brightness :
* def __get__ ( self ) : return self . __matrix . brightness ( ) # < < < < < < < < < < < < < <
* def __set__ ( self , brightness ) : self . __matrix . SetBrightness ( brightness )
*
*/
/* Python wrapper */
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pw_9rgbmatrix_4core_9RGBMatrix_10brightness_1__get__ ( PyObject * __pyx_v_self ) ; /*proto*/
static PyObject * __pyx_pw_9rgbmatrix_4core_9RGBMatrix_10brightness_1__get__ ( PyObject * __pyx_v_self ) {
2015-07-06 07:52:34 +00:00
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " __get__ (wrapper) " , 0 ) ;
2015-07-24 06:43:34 +00:00
__pyx_r = __pyx_pf_9rgbmatrix_4core_9RGBMatrix_10brightness___get__ ( ( ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * ) __pyx_v_self ) ) ;
2015-07-06 07:52:34 +00:00
/* function exit code */
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pf_9rgbmatrix_4core_9RGBMatrix_10brightness___get__ ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self ) {
2015-07-06 07:52:34 +00:00
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
PyObject * __pyx_t_1 = NULL ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
__Pyx_RefNannySetupContext ( " __get__ " , 0 ) ;
__Pyx_XDECREF ( __pyx_r ) ;
2016-08-29 00:45:53 +00:00
__pyx_t_1 = __Pyx_PyInt_From_uint8_t ( __pyx_v_self - > __pyx___matrix - > brightness ( ) ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 95 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-07-06 07:52:34 +00:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
/* function exit code */
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
2015-07-24 06:43:34 +00:00
__Pyx_AddTraceback ( " rgbmatrix.core.RGBMatrix.brightness.__get__ " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2015-07-06 07:52:34 +00:00
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":96
2015-07-06 07:52:34 +00:00
* property brightness :
* def __get__ ( self ) : return self . __matrix . brightness ( )
* def __set__ ( self , brightness ) : self . __matrix . SetBrightness ( brightness ) # < < < < < < < < < < < < < <
*
* property height :
*/
/* Python wrapper */
2015-07-24 06:43:34 +00:00
static int __pyx_pw_9rgbmatrix_4core_9RGBMatrix_10brightness_3__set__ ( PyObject * __pyx_v_self , PyObject * __pyx_v_brightness ) ; /*proto*/
static int __pyx_pw_9rgbmatrix_4core_9RGBMatrix_10brightness_3__set__ ( PyObject * __pyx_v_self , PyObject * __pyx_v_brightness ) {
2015-07-06 07:52:34 +00:00
int __pyx_r ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " __set__ (wrapper) " , 0 ) ;
2015-07-24 06:43:34 +00:00
__pyx_r = __pyx_pf_9rgbmatrix_4core_9RGBMatrix_10brightness_2__set__ ( ( ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * ) __pyx_v_self ) , ( ( PyObject * ) __pyx_v_brightness ) ) ;
2015-07-06 07:52:34 +00:00
/* function exit code */
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2015-07-24 06:43:34 +00:00
static int __pyx_pf_9rgbmatrix_4core_9RGBMatrix_10brightness_2__set__ ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self , PyObject * __pyx_v_brightness ) {
2015-07-06 07:52:34 +00:00
int __pyx_r ;
__Pyx_RefNannyDeclarations
uint8_t __pyx_t_1 ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
__Pyx_RefNannySetupContext ( " __set__ " , 0 ) ;
2016-08-29 00:45:53 +00:00
__pyx_t_1 = __Pyx_PyInt_As_uint8_t ( __pyx_v_brightness ) ; if ( unlikely ( ( __pyx_t_1 = = ( uint8_t ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 96 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-07-06 07:52:34 +00:00
__pyx_v_self - > __pyx___matrix - > SetBrightness ( __pyx_t_1 ) ;
/* function exit code */
__pyx_r = 0 ;
goto __pyx_L0 ;
__pyx_L1_error : ;
2015-07-24 06:43:34 +00:00
__Pyx_AddTraceback ( " rgbmatrix.core.RGBMatrix.brightness.__set__ " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2015-07-06 07:52:34 +00:00
__pyx_r = - 1 ;
__pyx_L0 : ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":99
2015-06-28 09:38:55 +00:00
*
* property height :
* def __get__ ( self ) : return self . __matrix . height ( ) # < < < < < < < < < < < < < <
*
* property width :
*/
/* Python wrapper */
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pw_9rgbmatrix_4core_9RGBMatrix_6height_1__get__ ( PyObject * __pyx_v_self ) ; /*proto*/
static PyObject * __pyx_pw_9rgbmatrix_4core_9RGBMatrix_6height_1__get__ ( PyObject * __pyx_v_self ) {
2015-06-28 09:38:55 +00:00
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " __get__ (wrapper) " , 0 ) ;
2015-07-24 06:43:34 +00:00
__pyx_r = __pyx_pf_9rgbmatrix_4core_9RGBMatrix_6height___get__ ( ( ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * ) __pyx_v_self ) ) ;
2015-06-28 09:38:55 +00:00
/* function exit code */
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pf_9rgbmatrix_4core_9RGBMatrix_6height___get__ ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self ) {
2015-06-28 09:38:55 +00:00
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
PyObject * __pyx_t_1 = NULL ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
__Pyx_RefNannySetupContext ( " __get__ " , 0 ) ;
__Pyx_XDECREF ( __pyx_r ) ;
2016-08-29 00:45:53 +00:00
__pyx_t_1 = __Pyx_PyInt_From_int ( __pyx_v_self - > __pyx___matrix - > height ( ) ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 99 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-06-28 09:38:55 +00:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
/* function exit code */
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
2015-07-24 06:43:34 +00:00
__Pyx_AddTraceback ( " rgbmatrix.core.RGBMatrix.height.__get__ " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2015-06-28 09:38:55 +00:00
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":102
2015-06-28 09:38:55 +00:00
*
* property width :
* def __get__ ( self ) : return self . __matrix . width ( ) # < < < < < < < < < < < < < <
2015-07-24 06:43:34 +00:00
*
* cdef __createFrameCanvas ( cppinc . FrameCanvas * newCanvas ) :
2015-06-28 09:38:55 +00:00
*/
/* Python wrapper */
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pw_9rgbmatrix_4core_9RGBMatrix_5width_1__get__ ( PyObject * __pyx_v_self ) ; /*proto*/
static PyObject * __pyx_pw_9rgbmatrix_4core_9RGBMatrix_5width_1__get__ ( PyObject * __pyx_v_self ) {
2015-06-28 09:38:55 +00:00
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " __get__ (wrapper) " , 0 ) ;
2015-07-24 06:43:34 +00:00
__pyx_r = __pyx_pf_9rgbmatrix_4core_9RGBMatrix_5width___get__ ( ( ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * ) __pyx_v_self ) ) ;
2015-06-28 09:38:55 +00:00
/* function exit code */
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_pf_9rgbmatrix_4core_9RGBMatrix_5width___get__ ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * __pyx_v_self ) {
2015-06-28 09:38:55 +00:00
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
PyObject * __pyx_t_1 = NULL ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
__Pyx_RefNannySetupContext ( " __get__ " , 0 ) ;
__Pyx_XDECREF ( __pyx_r ) ;
2016-08-29 00:45:53 +00:00
__pyx_t_1 = __Pyx_PyInt_From_int ( __pyx_v_self - > __pyx___matrix - > width ( ) ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 102 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-06-28 09:38:55 +00:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
/* function exit code */
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
2015-07-24 06:43:34 +00:00
__Pyx_AddTraceback ( " rgbmatrix.core.RGBMatrix.width.__get__ " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2015-06-28 09:38:55 +00:00
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":104
2015-07-24 06:43:34 +00:00
* def __get__ ( self ) : return self . __matrix . width ( )
*
* cdef __createFrameCanvas ( cppinc . FrameCanvas * newCanvas ) : # < < < < < < < < < < < < < <
* canvas = FrameCanvas ( )
* canvas . __canvas = newCanvas
*/
static PyObject * __pyx_f_9rgbmatrix_4core___createFrameCanvas ( rgb_matrix : : FrameCanvas * __pyx_v_newCanvas ) {
struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * __pyx_v_canvas = NULL ;
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
PyObject * __pyx_t_1 = NULL ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
__Pyx_RefNannySetupContext ( " __createFrameCanvas " , 0 ) ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":105
2015-07-24 06:43:34 +00:00
*
* cdef __createFrameCanvas ( cppinc . FrameCanvas * newCanvas ) :
* canvas = FrameCanvas ( ) # < < < < < < < < < < < < < <
* canvas . __canvas = newCanvas
* return canvas
*/
2016-08-29 00:45:53 +00:00
__pyx_t_1 = __Pyx_PyObject_Call ( ( ( PyObject * ) __pyx_ptype_9rgbmatrix_4core_FrameCanvas ) , __pyx_empty_tuple , NULL ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 105 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-07-24 06:43:34 +00:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_v_canvas = ( ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * ) __pyx_t_1 ) ;
__pyx_t_1 = 0 ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":106
2015-07-24 06:43:34 +00:00
* cdef __createFrameCanvas ( cppinc . FrameCanvas * newCanvas ) :
* canvas = FrameCanvas ( )
* canvas . __canvas = newCanvas # < < < < < < < < < < < < < <
* return canvas
2015-12-02 06:07:31 +00:00
*
2015-07-24 06:43:34 +00:00
*/
__pyx_v_canvas - > __pyx___canvas = __pyx_v_newCanvas ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":107
2015-07-24 06:43:34 +00:00
* canvas = FrameCanvas ( )
* canvas . __canvas = newCanvas
* return canvas # < < < < < < < < < < < < < <
2015-12-02 06:07:31 +00:00
*
* # Local Variables :
2015-07-24 06:43:34 +00:00
*/
__Pyx_XDECREF ( __pyx_r ) ;
__Pyx_INCREF ( ( ( PyObject * ) __pyx_v_canvas ) ) ;
__pyx_r = ( ( PyObject * ) __pyx_v_canvas ) ;
goto __pyx_L0 ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":104
2015-07-24 06:43:34 +00:00
* def __get__ ( self ) : return self . __matrix . width ( )
*
* cdef __createFrameCanvas ( cppinc . FrameCanvas * newCanvas ) : # < < < < < < < < < < < < < <
* canvas = FrameCanvas ( )
* canvas . __canvas = newCanvas
*/
/* function exit code */
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
__Pyx_AddTraceback ( " rgbmatrix.core.__createFrameCanvas " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
__pyx_r = 0 ;
__pyx_L0 : ;
__Pyx_XDECREF ( ( PyObject * ) __pyx_v_canvas ) ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
static struct __pyx_vtabstruct_9rgbmatrix_4core_Canvas __pyx_vtable_9rgbmatrix_4core_Canvas ;
static PyObject * __pyx_tp_new_9rgbmatrix_4core_Canvas ( PyTypeObject * t , CYTHON_UNUSED PyObject * a , CYTHON_UNUSED PyObject * k ) {
struct __pyx_obj_9rgbmatrix_4core_Canvas * p ;
2015-06-28 09:38:55 +00:00
PyObject * o ;
if ( likely ( ( t - > tp_flags & Py_TPFLAGS_IS_ABSTRACT ) = = 0 ) ) {
o = ( * t - > tp_alloc ) ( t , 0 ) ;
} else {
o = ( PyObject * ) PyBaseObject_Type . tp_new ( t , __pyx_empty_tuple , 0 ) ;
}
if ( unlikely ( ! o ) ) return 0 ;
2015-07-24 06:43:34 +00:00
p = ( ( struct __pyx_obj_9rgbmatrix_4core_Canvas * ) o ) ;
p - > __pyx_vtab = __pyx_vtabptr_9rgbmatrix_4core_Canvas ;
return o ;
}
static void __pyx_tp_dealloc_9rgbmatrix_4core_Canvas ( PyObject * o ) {
# if PY_VERSION_HEX >= 0x030400a1
if ( unlikely ( Py_TYPE ( o ) - > tp_finalize ) & & ( ! PyType_IS_GC ( Py_TYPE ( o ) ) | | ! _PyGC_FINALIZED ( o ) ) ) {
if ( PyObject_CallFinalizerFromDealloc ( o ) ) return ;
}
# endif
( * Py_TYPE ( o ) - > tp_free ) ( o ) ;
}
2016-08-28 23:25:45 +00:00
static PyMethodDef __pyx_methods_9rgbmatrix_4core_Canvas [ ] = {
{ " SetImage " , ( PyCFunction ) __pyx_pw_9rgbmatrix_4core_6Canvas_1SetImage , METH_VARARGS | METH_KEYWORDS , 0 } ,
{ 0 , 0 , 0 , 0 }
} ;
2015-07-24 06:43:34 +00:00
static PyTypeObject __pyx_type_9rgbmatrix_4core_Canvas = {
PyVarObject_HEAD_INIT ( 0 , 0 )
" rgbmatrix.core.Canvas " , /*tp_name*/
sizeof ( struct __pyx_obj_9rgbmatrix_4core_Canvas ) , /*tp_basicsize*/
0 , /*tp_itemsize*/
__pyx_tp_dealloc_9rgbmatrix_4core_Canvas , /*tp_dealloc*/
0 , /*tp_print*/
0 , /*tp_getattr*/
0 , /*tp_setattr*/
# if PY_MAJOR_VERSION < 3
0 , /*tp_compare*/
2015-12-02 06:07:31 +00:00
# endif
# if PY_MAJOR_VERSION >= 3
0 , /*tp_as_async*/
2015-07-24 06:43:34 +00:00
# endif
0 , /*tp_repr*/
0 , /*tp_as_number*/
0 , /*tp_as_sequence*/
0 , /*tp_as_mapping*/
0 , /*tp_hash*/
0 , /*tp_call*/
0 , /*tp_str*/
0 , /*tp_getattro*/
0 , /*tp_setattro*/
0 , /*tp_as_buffer*/
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_VERSION_TAG | Py_TPFLAGS_CHECKTYPES | Py_TPFLAGS_HAVE_NEWBUFFER | Py_TPFLAGS_BASETYPE , /*tp_flags*/
0 , /*tp_doc*/
0 , /*tp_traverse*/
0 , /*tp_clear*/
0 , /*tp_richcompare*/
0 , /*tp_weaklistoffset*/
0 , /*tp_iter*/
0 , /*tp_iternext*/
2016-08-28 23:25:45 +00:00
__pyx_methods_9rgbmatrix_4core_Canvas , /*tp_methods*/
2015-07-24 06:43:34 +00:00
0 , /*tp_members*/
0 , /*tp_getset*/
0 , /*tp_base*/
0 , /*tp_dict*/
0 , /*tp_descr_get*/
0 , /*tp_descr_set*/
0 , /*tp_dictoffset*/
0 , /*tp_init*/
0 , /*tp_alloc*/
__pyx_tp_new_9rgbmatrix_4core_Canvas , /*tp_new*/
0 , /*tp_free*/
0 , /*tp_is_gc*/
0 , /*tp_bases*/
0 , /*tp_mro*/
0 , /*tp_cache*/
0 , /*tp_subclasses*/
0 , /*tp_weaklist*/
0 , /*tp_del*/
0 , /*tp_version_tag*/
# if PY_VERSION_HEX >= 0x030400a1
0 , /*tp_finalize*/
# endif
} ;
static struct __pyx_vtabstruct_9rgbmatrix_4core_FrameCanvas __pyx_vtable_9rgbmatrix_4core_FrameCanvas ;
static PyObject * __pyx_tp_new_9rgbmatrix_4core_FrameCanvas ( PyTypeObject * t , PyObject * a , PyObject * k ) {
struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * p ;
PyObject * o = __pyx_tp_new_9rgbmatrix_4core_Canvas ( t , a , k ) ;
if ( unlikely ( ! o ) ) return 0 ;
p = ( ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * ) o ) ;
p - > __pyx_base . __pyx_vtab = ( struct __pyx_vtabstruct_9rgbmatrix_4core_Canvas * ) __pyx_vtabptr_9rgbmatrix_4core_FrameCanvas ;
2015-06-28 09:38:55 +00:00
return o ;
}
2015-07-24 06:43:34 +00:00
static void __pyx_tp_dealloc_9rgbmatrix_4core_FrameCanvas ( PyObject * o ) {
2015-06-28 09:38:55 +00:00
# if PY_VERSION_HEX >= 0x030400a1
if ( unlikely ( Py_TYPE ( o ) - > tp_finalize ) & & ( ! PyType_IS_GC ( Py_TYPE ( o ) ) | | ! _PyGC_FINALIZED ( o ) ) ) {
if ( PyObject_CallFinalizerFromDealloc ( o ) ) return ;
}
# endif
{
PyObject * etype , * eval , * etb ;
PyErr_Fetch ( & etype , & eval , & etb ) ;
+ + Py_REFCNT ( o ) ;
2015-07-24 06:43:34 +00:00
__pyx_pw_9rgbmatrix_4core_11FrameCanvas_1__dealloc__ ( o ) ;
2015-06-28 09:38:55 +00:00
- - Py_REFCNT ( o ) ;
PyErr_Restore ( etype , eval , etb ) ;
}
2015-07-24 06:43:34 +00:00
__pyx_tp_dealloc_9rgbmatrix_4core_Canvas ( o ) ;
2015-06-28 09:38:55 +00:00
}
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_getprop_9rgbmatrix_4core_11FrameCanvas_width ( PyObject * o , CYTHON_UNUSED void * x ) {
return __pyx_pw_9rgbmatrix_4core_11FrameCanvas_5width_1__get__ ( o ) ;
2015-06-28 09:38:55 +00:00
}
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_getprop_9rgbmatrix_4core_11FrameCanvas_height ( PyObject * o , CYTHON_UNUSED void * x ) {
return __pyx_pw_9rgbmatrix_4core_11FrameCanvas_6height_1__get__ ( o ) ;
2015-06-28 09:38:55 +00:00
}
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_getprop_9rgbmatrix_4core_11FrameCanvas_pwmBits ( PyObject * o , CYTHON_UNUSED void * x ) {
return __pyx_pw_9rgbmatrix_4core_11FrameCanvas_7pwmBits_1__get__ ( o ) ;
2015-06-28 09:38:55 +00:00
}
2015-07-24 06:43:34 +00:00
static int __pyx_setprop_9rgbmatrix_4core_11FrameCanvas_pwmBits ( PyObject * o , PyObject * v , CYTHON_UNUSED void * x ) {
2015-06-28 09:38:55 +00:00
if ( v ) {
2015-07-24 06:43:34 +00:00
return __pyx_pw_9rgbmatrix_4core_11FrameCanvas_7pwmBits_3__set__ ( o , v ) ;
2015-06-28 09:38:55 +00:00
}
else {
PyErr_SetString ( PyExc_NotImplementedError , " __del__ " ) ;
return - 1 ;
}
}
2015-07-24 06:43:34 +00:00
static PyMethodDef __pyx_methods_9rgbmatrix_4core_FrameCanvas [ ] = {
{ " Fill " , ( PyCFunction ) __pyx_pw_9rgbmatrix_4core_11FrameCanvas_3Fill , METH_VARARGS | METH_KEYWORDS , 0 } ,
{ " Clear " , ( PyCFunction ) __pyx_pw_9rgbmatrix_4core_11FrameCanvas_5Clear , METH_NOARGS , 0 } ,
{ " SetPixel " , ( PyCFunction ) __pyx_pw_9rgbmatrix_4core_11FrameCanvas_7SetPixel , METH_VARARGS | METH_KEYWORDS , 0 } ,
2015-06-28 09:38:55 +00:00
{ 0 , 0 , 0 , 0 }
} ;
2015-07-24 06:43:34 +00:00
static struct PyGetSetDef __pyx_getsets_9rgbmatrix_4core_FrameCanvas [ ] = {
{ ( char * ) " width " , __pyx_getprop_9rgbmatrix_4core_11FrameCanvas_width , 0 , 0 , 0 } ,
{ ( char * ) " height " , __pyx_getprop_9rgbmatrix_4core_11FrameCanvas_height , 0 , 0 , 0 } ,
{ ( char * ) " pwmBits " , __pyx_getprop_9rgbmatrix_4core_11FrameCanvas_pwmBits , __pyx_setprop_9rgbmatrix_4core_11FrameCanvas_pwmBits , 0 , 0 } ,
2015-06-28 09:38:55 +00:00
{ 0 , 0 , 0 , 0 , 0 }
} ;
2015-07-24 06:43:34 +00:00
static PyTypeObject __pyx_type_9rgbmatrix_4core_FrameCanvas = {
2015-06-28 09:38:55 +00:00
PyVarObject_HEAD_INIT ( 0 , 0 )
2015-07-24 06:43:34 +00:00
" rgbmatrix.core.FrameCanvas " , /*tp_name*/
sizeof ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas ) , /*tp_basicsize*/
2015-06-28 09:38:55 +00:00
0 , /*tp_itemsize*/
2015-07-24 06:43:34 +00:00
__pyx_tp_dealloc_9rgbmatrix_4core_FrameCanvas , /*tp_dealloc*/
2015-06-28 09:38:55 +00:00
0 , /*tp_print*/
0 , /*tp_getattr*/
0 , /*tp_setattr*/
# if PY_MAJOR_VERSION < 3
0 , /*tp_compare*/
2015-12-02 06:07:31 +00:00
# endif
# if PY_MAJOR_VERSION >= 3
0 , /*tp_as_async*/
2015-06-28 09:38:55 +00:00
# endif
0 , /*tp_repr*/
0 , /*tp_as_number*/
0 , /*tp_as_sequence*/
0 , /*tp_as_mapping*/
0 , /*tp_hash*/
0 , /*tp_call*/
0 , /*tp_str*/
0 , /*tp_getattro*/
0 , /*tp_setattro*/
0 , /*tp_as_buffer*/
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_VERSION_TAG | Py_TPFLAGS_CHECKTYPES | Py_TPFLAGS_HAVE_NEWBUFFER | Py_TPFLAGS_BASETYPE , /*tp_flags*/
0 , /*tp_doc*/
0 , /*tp_traverse*/
0 , /*tp_clear*/
0 , /*tp_richcompare*/
0 , /*tp_weaklistoffset*/
0 , /*tp_iter*/
0 , /*tp_iternext*/
2015-07-24 06:43:34 +00:00
__pyx_methods_9rgbmatrix_4core_FrameCanvas , /*tp_methods*/
2015-06-28 09:38:55 +00:00
0 , /*tp_members*/
2015-07-24 06:43:34 +00:00
__pyx_getsets_9rgbmatrix_4core_FrameCanvas , /*tp_getset*/
2015-06-28 09:38:55 +00:00
0 , /*tp_base*/
0 , /*tp_dict*/
0 , /*tp_descr_get*/
0 , /*tp_descr_set*/
0 , /*tp_dictoffset*/
0 , /*tp_init*/
0 , /*tp_alloc*/
2015-07-24 06:43:34 +00:00
__pyx_tp_new_9rgbmatrix_4core_FrameCanvas , /*tp_new*/
2015-06-28 09:38:55 +00:00
0 , /*tp_free*/
0 , /*tp_is_gc*/
0 , /*tp_bases*/
0 , /*tp_mro*/
0 , /*tp_cache*/
0 , /*tp_subclasses*/
0 , /*tp_weaklist*/
0 , /*tp_del*/
0 , /*tp_version_tag*/
# if PY_VERSION_HEX >= 0x030400a1
0 , /*tp_finalize*/
# endif
} ;
2015-07-24 06:43:34 +00:00
static struct __pyx_vtabstruct_9rgbmatrix_4core_RGBMatrix __pyx_vtable_9rgbmatrix_4core_RGBMatrix ;
2015-06-28 09:38:55 +00:00
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_tp_new_9rgbmatrix_4core_RGBMatrix ( PyTypeObject * t , PyObject * a , PyObject * k ) {
struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * p ;
PyObject * o = __pyx_tp_new_9rgbmatrix_4core_Canvas ( t , a , k ) ;
2015-06-28 09:38:55 +00:00
if ( unlikely ( ! o ) ) return 0 ;
2015-07-24 06:43:34 +00:00
p = ( ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * ) o ) ;
p - > __pyx_base . __pyx_vtab = ( struct __pyx_vtabstruct_9rgbmatrix_4core_Canvas * ) __pyx_vtabptr_9rgbmatrix_4core_RGBMatrix ;
if ( unlikely ( __pyx_pw_9rgbmatrix_4core_9RGBMatrix_1__cinit__ ( o , a , k ) < 0 ) ) {
2015-06-28 09:38:55 +00:00
Py_DECREF ( o ) ; o = 0 ;
}
return o ;
}
2015-07-24 06:43:34 +00:00
static void __pyx_tp_dealloc_9rgbmatrix_4core_RGBMatrix ( PyObject * o ) {
2015-06-28 09:38:55 +00:00
# if PY_VERSION_HEX >= 0x030400a1
if ( unlikely ( Py_TYPE ( o ) - > tp_finalize ) & & ( ! PyType_IS_GC ( Py_TYPE ( o ) ) | | ! _PyGC_FINALIZED ( o ) ) ) {
if ( PyObject_CallFinalizerFromDealloc ( o ) ) return ;
}
# endif
{
PyObject * etype , * eval , * etb ;
PyErr_Fetch ( & etype , & eval , & etb ) ;
+ + Py_REFCNT ( o ) ;
2015-07-24 06:43:34 +00:00
__pyx_pw_9rgbmatrix_4core_9RGBMatrix_3__dealloc__ ( o ) ;
2015-06-28 09:38:55 +00:00
- - Py_REFCNT ( o ) ;
PyErr_Restore ( etype , eval , etb ) ;
}
2015-07-24 06:43:34 +00:00
__pyx_tp_dealloc_9rgbmatrix_4core_Canvas ( o ) ;
2015-06-28 09:38:55 +00:00
}
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_getprop_9rgbmatrix_4core_9RGBMatrix_luminanceCorrect ( PyObject * o , CYTHON_UNUSED void * x ) {
return __pyx_pw_9rgbmatrix_4core_9RGBMatrix_16luminanceCorrect_1__get__ ( o ) ;
2015-06-28 09:38:55 +00:00
}
2015-07-24 06:43:34 +00:00
static int __pyx_setprop_9rgbmatrix_4core_9RGBMatrix_luminanceCorrect ( PyObject * o , PyObject * v , CYTHON_UNUSED void * x ) {
2015-06-28 09:38:55 +00:00
if ( v ) {
2015-07-24 06:43:34 +00:00
return __pyx_pw_9rgbmatrix_4core_9RGBMatrix_16luminanceCorrect_3__set__ ( o , v ) ;
2015-06-28 09:38:55 +00:00
}
else {
PyErr_SetString ( PyExc_NotImplementedError , " __del__ " ) ;
return - 1 ;
}
}
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_getprop_9rgbmatrix_4core_9RGBMatrix_pwmBits ( PyObject * o , CYTHON_UNUSED void * x ) {
return __pyx_pw_9rgbmatrix_4core_9RGBMatrix_7pwmBits_1__get__ ( o ) ;
2015-06-28 09:38:55 +00:00
}
2015-07-24 06:43:34 +00:00
static int __pyx_setprop_9rgbmatrix_4core_9RGBMatrix_pwmBits ( PyObject * o , PyObject * v , CYTHON_UNUSED void * x ) {
2015-06-28 09:38:55 +00:00
if ( v ) {
2015-07-24 06:43:34 +00:00
return __pyx_pw_9rgbmatrix_4core_9RGBMatrix_7pwmBits_3__set__ ( o , v ) ;
2015-06-28 09:38:55 +00:00
}
else {
PyErr_SetString ( PyExc_NotImplementedError , " __del__ " ) ;
return - 1 ;
}
}
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_getprop_9rgbmatrix_4core_9RGBMatrix_brightness ( PyObject * o , CYTHON_UNUSED void * x ) {
return __pyx_pw_9rgbmatrix_4core_9RGBMatrix_10brightness_1__get__ ( o ) ;
2015-07-06 07:52:34 +00:00
}
2015-07-24 06:43:34 +00:00
static int __pyx_setprop_9rgbmatrix_4core_9RGBMatrix_brightness ( PyObject * o , PyObject * v , CYTHON_UNUSED void * x ) {
2015-07-06 07:52:34 +00:00
if ( v ) {
2015-07-24 06:43:34 +00:00
return __pyx_pw_9rgbmatrix_4core_9RGBMatrix_10brightness_3__set__ ( o , v ) ;
2015-07-06 07:52:34 +00:00
}
else {
PyErr_SetString ( PyExc_NotImplementedError , " __del__ " ) ;
return - 1 ;
}
}
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_getprop_9rgbmatrix_4core_9RGBMatrix_height ( PyObject * o , CYTHON_UNUSED void * x ) {
return __pyx_pw_9rgbmatrix_4core_9RGBMatrix_6height_1__get__ ( o ) ;
2015-06-28 09:38:55 +00:00
}
2015-07-24 06:43:34 +00:00
static PyObject * __pyx_getprop_9rgbmatrix_4core_9RGBMatrix_width ( PyObject * o , CYTHON_UNUSED void * x ) {
return __pyx_pw_9rgbmatrix_4core_9RGBMatrix_5width_1__get__ ( o ) ;
2015-06-28 09:38:55 +00:00
}
2015-07-24 06:43:34 +00:00
static PyMethodDef __pyx_methods_9rgbmatrix_4core_RGBMatrix [ ] = {
{ " Fill " , ( PyCFunction ) __pyx_pw_9rgbmatrix_4core_9RGBMatrix_5Fill , METH_VARARGS | METH_KEYWORDS , 0 } ,
{ " SetPixel " , ( PyCFunction ) __pyx_pw_9rgbmatrix_4core_9RGBMatrix_7SetPixel , METH_VARARGS | METH_KEYWORDS , 0 } ,
{ " Clear " , ( PyCFunction ) __pyx_pw_9rgbmatrix_4core_9RGBMatrix_9Clear , METH_NOARGS , 0 } ,
{ " CreateFrameCanvas " , ( PyCFunction ) __pyx_pw_9rgbmatrix_4core_9RGBMatrix_11CreateFrameCanvas , METH_NOARGS , 0 } ,
{ " SwapOnVSync " , ( PyCFunction ) __pyx_pw_9rgbmatrix_4core_9RGBMatrix_13SwapOnVSync , METH_O , 0 } ,
2015-06-28 09:38:55 +00:00
{ 0 , 0 , 0 , 0 }
} ;
2015-07-24 06:43:34 +00:00
static struct PyGetSetDef __pyx_getsets_9rgbmatrix_4core_RGBMatrix [ ] = {
{ ( char * ) " luminanceCorrect " , __pyx_getprop_9rgbmatrix_4core_9RGBMatrix_luminanceCorrect , __pyx_setprop_9rgbmatrix_4core_9RGBMatrix_luminanceCorrect , 0 , 0 } ,
{ ( char * ) " pwmBits " , __pyx_getprop_9rgbmatrix_4core_9RGBMatrix_pwmBits , __pyx_setprop_9rgbmatrix_4core_9RGBMatrix_pwmBits , 0 , 0 } ,
{ ( char * ) " brightness " , __pyx_getprop_9rgbmatrix_4core_9RGBMatrix_brightness , __pyx_setprop_9rgbmatrix_4core_9RGBMatrix_brightness , 0 , 0 } ,
{ ( char * ) " height " , __pyx_getprop_9rgbmatrix_4core_9RGBMatrix_height , 0 , 0 , 0 } ,
{ ( char * ) " width " , __pyx_getprop_9rgbmatrix_4core_9RGBMatrix_width , 0 , 0 , 0 } ,
2015-06-28 09:38:55 +00:00
{ 0 , 0 , 0 , 0 , 0 }
} ;
2015-07-24 06:43:34 +00:00
static PyTypeObject __pyx_type_9rgbmatrix_4core_RGBMatrix = {
2015-06-28 09:38:55 +00:00
PyVarObject_HEAD_INIT ( 0 , 0 )
2015-07-24 06:43:34 +00:00
" rgbmatrix.core.RGBMatrix " , /*tp_name*/
sizeof ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix ) , /*tp_basicsize*/
2015-06-28 09:38:55 +00:00
0 , /*tp_itemsize*/
2015-07-24 06:43:34 +00:00
__pyx_tp_dealloc_9rgbmatrix_4core_RGBMatrix , /*tp_dealloc*/
2015-06-28 09:38:55 +00:00
0 , /*tp_print*/
0 , /*tp_getattr*/
0 , /*tp_setattr*/
# if PY_MAJOR_VERSION < 3
0 , /*tp_compare*/
2015-12-02 06:07:31 +00:00
# endif
# if PY_MAJOR_VERSION >= 3
0 , /*tp_as_async*/
2015-06-28 09:38:55 +00:00
# endif
0 , /*tp_repr*/
0 , /*tp_as_number*/
0 , /*tp_as_sequence*/
0 , /*tp_as_mapping*/
0 , /*tp_hash*/
0 , /*tp_call*/
0 , /*tp_str*/
0 , /*tp_getattro*/
0 , /*tp_setattro*/
0 , /*tp_as_buffer*/
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_VERSION_TAG | Py_TPFLAGS_CHECKTYPES | Py_TPFLAGS_HAVE_NEWBUFFER | Py_TPFLAGS_BASETYPE , /*tp_flags*/
0 , /*tp_doc*/
0 , /*tp_traverse*/
0 , /*tp_clear*/
0 , /*tp_richcompare*/
0 , /*tp_weaklistoffset*/
0 , /*tp_iter*/
0 , /*tp_iternext*/
2015-07-24 06:43:34 +00:00
__pyx_methods_9rgbmatrix_4core_RGBMatrix , /*tp_methods*/
2015-06-28 09:38:55 +00:00
0 , /*tp_members*/
2015-07-24 06:43:34 +00:00
__pyx_getsets_9rgbmatrix_4core_RGBMatrix , /*tp_getset*/
2015-06-28 09:38:55 +00:00
0 , /*tp_base*/
0 , /*tp_dict*/
0 , /*tp_descr_get*/
0 , /*tp_descr_set*/
0 , /*tp_dictoffset*/
0 , /*tp_init*/
0 , /*tp_alloc*/
2015-07-24 06:43:34 +00:00
__pyx_tp_new_9rgbmatrix_4core_RGBMatrix , /*tp_new*/
2015-06-28 09:38:55 +00:00
0 , /*tp_free*/
0 , /*tp_is_gc*/
0 , /*tp_bases*/
0 , /*tp_mro*/
0 , /*tp_cache*/
0 , /*tp_subclasses*/
0 , /*tp_weaklist*/
0 , /*tp_del*/
0 , /*tp_version_tag*/
# if PY_VERSION_HEX >= 0x030400a1
0 , /*tp_finalize*/
# endif
} ;
static PyMethodDef __pyx_methods [ ] = {
{ 0 , 0 , 0 , 0 }
} ;
# if PY_MAJOR_VERSION >= 3
static struct PyModuleDef __pyx_moduledef = {
# if PY_VERSION_HEX < 0x03020000
{ PyObject_HEAD_INIT ( NULL ) NULL , 0 , NULL } ,
# else
PyModuleDef_HEAD_INIT ,
# endif
2015-07-24 06:43:34 +00:00
" core " ,
2015-06-28 09:38:55 +00:00
0 , /* m_doc */
- 1 , /* m_size */
__pyx_methods /* m_methods */ ,
NULL , /* m_reload */
NULL , /* m_traverse */
NULL , /* m_clear */
NULL /* m_free */
} ;
# endif
static __Pyx_StringTabEntry __pyx_string_tab [ ] = {
2015-07-24 06:43:34 +00:00
{ & __pyx_kp_s_Canvas_was_destroyed_or_not_init , __pyx_k_Canvas_was_destroyed_or_not_init , sizeof ( __pyx_k_Canvas_was_destroyed_or_not_init ) , 0 , 0 , 1 , 0 } ,
2016-08-29 00:45:53 +00:00
{ & __pyx_kp_s_Currently_only_RGB_mode_is_suppo , __pyx_k_Currently_only_RGB_mode_is_suppo , sizeof ( __pyx_k_Currently_only_RGB_mode_is_suppo ) , 0 , 0 , 1 , 0 } ,
2015-06-28 09:38:55 +00:00
{ & __pyx_kp_s_Error_initializing_GPIOs , __pyx_k_Error_initializing_GPIOs , sizeof ( __pyx_k_Error_initializing_GPIOs ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_n_s_Exception , __pyx_k_Exception , sizeof ( __pyx_k_Exception ) , 0 , 0 , 1 , 1 } ,
2016-08-28 23:25:45 +00:00
{ & __pyx_n_s_Image , __pyx_k_Image , sizeof ( __pyx_k_Image ) , 0 , 0 , 1 , 1 } ,
2015-07-24 06:43:34 +00:00
{ & __pyx_kp_s_Not_implemented , __pyx_k_Not_implemented , sizeof ( __pyx_k_Not_implemented ) , 0 , 0 , 1 , 0 } ,
2016-08-28 23:25:45 +00:00
{ & __pyx_n_s_PIL , __pyx_k_PIL , sizeof ( __pyx_k_PIL ) , 0 , 0 , 1 , 1 } ,
2016-08-29 00:45:53 +00:00
{ & __pyx_n_s_RGB , __pyx_k_RGB , sizeof ( __pyx_k_RGB ) , 0 , 0 , 1 , 1 } ,
2016-08-28 23:25:45 +00:00
{ & __pyx_n_s_SetPixel , __pyx_k_SetPixel , sizeof ( __pyx_k_SetPixel ) , 0 , 0 , 1 , 1 } ,
2015-06-28 09:38:55 +00:00
{ & __pyx_n_s_blue , __pyx_k_blue , sizeof ( __pyx_k_blue ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s_chains , __pyx_k_chains , sizeof ( __pyx_k_chains ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s_green , __pyx_k_green , sizeof ( __pyx_k_green ) , 0 , 0 , 1 , 1 } ,
2016-08-28 23:25:45 +00:00
{ & __pyx_n_s_height , __pyx_k_height , sizeof ( __pyx_k_height ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s_image , __pyx_k_image , sizeof ( __pyx_k_image ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s_import , __pyx_k_import , sizeof ( __pyx_k_import ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s_load , __pyx_k_load , sizeof ( __pyx_k_load ) , 0 , 0 , 1 , 1 } ,
2015-06-28 09:38:55 +00:00
{ & __pyx_n_s_main , __pyx_k_main , sizeof ( __pyx_k_main ) , 0 , 0 , 1 , 1 } ,
2016-08-29 00:45:53 +00:00
{ & __pyx_n_s_mode , __pyx_k_mode , sizeof ( __pyx_k_mode ) , 0 , 0 , 1 , 1 } ,
2016-08-28 23:25:45 +00:00
{ & __pyx_n_s_offset_x , __pyx_k_offset_x , sizeof ( __pyx_k_offset_x ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s_offset_y , __pyx_k_offset_y , sizeof ( __pyx_k_offset_y ) , 0 , 0 , 1 , 1 } ,
2015-06-28 09:38:55 +00:00
{ & __pyx_n_s_parallel , __pyx_k_parallel , sizeof ( __pyx_k_parallel ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s_pyx_vtable , __pyx_k_pyx_vtable , sizeof ( __pyx_k_pyx_vtable ) , 0 , 0 , 1 , 1 } ,
2016-08-28 23:25:45 +00:00
{ & __pyx_n_s_range , __pyx_k_range , sizeof ( __pyx_k_range ) , 0 , 0 , 1 , 1 } ,
2015-06-28 09:38:55 +00:00
{ & __pyx_n_s_red , __pyx_k_red , sizeof ( __pyx_k_red ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s_rows , __pyx_k_rows , sizeof ( __pyx_k_rows ) , 0 , 0 , 1 , 1 } ,
2016-08-28 23:25:45 +00:00
{ & __pyx_n_s_size , __pyx_k_size , sizeof ( __pyx_k_size ) , 0 , 0 , 1 , 1 } ,
2015-06-28 09:38:55 +00:00
{ & __pyx_n_s_test , __pyx_k_test , sizeof ( __pyx_k_test ) , 0 , 0 , 1 , 1 } ,
2016-08-28 23:25:45 +00:00
{ & __pyx_n_s_width , __pyx_k_width , sizeof ( __pyx_k_width ) , 0 , 0 , 1 , 1 } ,
2015-06-28 09:38:55 +00:00
{ & __pyx_n_s_x , __pyx_k_x , sizeof ( __pyx_k_x ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s_y , __pyx_k_y , sizeof ( __pyx_k_y ) , 0 , 0 , 1 , 1 } ,
{ 0 , 0 , 0 , 0 , 0 , 0 , 0 }
} ;
static int __Pyx_InitCachedBuiltins ( void ) {
2016-08-28 23:25:45 +00:00
__pyx_builtin_Exception = __Pyx_GetBuiltinName ( __pyx_n_s_Exception ) ; if ( ! __pyx_builtin_Exception ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 9 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2016-08-29 00:45:53 +00:00
__pyx_builtin_range = __Pyx_GetBuiltinName ( __pyx_n_s_range ) ; if ( ! __pyx_builtin_range ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 19 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-06-28 09:38:55 +00:00
return 0 ;
__pyx_L1_error : ;
return - 1 ;
}
static int __Pyx_InitCachedConstants ( void ) {
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " __Pyx_InitCachedConstants " , 0 ) ;
2016-08-28 23:25:45 +00:00
/* "rgbmatrix/core.pyx":9
2015-07-24 06:43:34 +00:00
* cdef class Canvas :
* cdef cppinc . Canvas * __getCanvas ( self ) except + :
* raise Exception ( " Not implemented " ) # < < < < < < < < < < < < < <
*
2016-08-28 23:25:45 +00:00
* # First implementation of a SetImage ( ) . OPTIMIZE_ME : A more native
2015-07-24 06:43:34 +00:00
*/
2016-08-28 23:25:45 +00:00
__pyx_tuple_ = PyTuple_Pack ( 1 , __pyx_kp_s_Not_implemented ) ; if ( unlikely ( ! __pyx_tuple_ ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 9 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-07-24 06:43:34 +00:00
__Pyx_GOTREF ( __pyx_tuple_ ) ;
__Pyx_GIVEREF ( __pyx_tuple_ ) ;
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":16
* def SetImage ( self , image , int offset_x = 0 , int offset_y = 0 ) :
* if ( image . mode ! = " RGB " ) :
* raise Exception ( " Currently, only RGB mode is supported for SetImage(). Please create images with mode 'RGB' or convert first with image = image.convert('RGB'). Pull requests to support more modes natively are also welcome :) " ) # < < < < < < < < < < < < < <
* img_width , img_height = image . size
* pixels = image . load ( )
*/
__pyx_tuple__2 = PyTuple_Pack ( 1 , __pyx_kp_s_Currently_only_RGB_mode_is_suppo ) ; if ( unlikely ( ! __pyx_tuple__2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 16 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_tuple__2 ) ;
__Pyx_GIVEREF ( __pyx_tuple__2 ) ;
/* "rgbmatrix/core.pyx":32
2015-06-28 09:38:55 +00:00
* if < void * > self . __canvas ! = NULL :
* return self . __canvas
2015-07-24 06:43:34 +00:00
* raise Exception ( " Canvas was destroyed or not initialized, you cannot use this object anymore " ) # < < < < < < < < < < < < < <
2015-06-28 09:38:55 +00:00
*
* def Fill ( self , uint8_t red , uint8_t green , uint8_t blue ) :
*/
2016-08-29 00:45:53 +00:00
__pyx_tuple__3 = PyTuple_Pack ( 1 , __pyx_kp_s_Canvas_was_destroyed_or_not_init ) ; if ( unlikely ( ! __pyx_tuple__3 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 32 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_tuple__3 ) ;
__Pyx_GIVEREF ( __pyx_tuple__3 ) ;
2015-06-28 09:38:55 +00:00
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":58
2015-07-24 06:43:34 +00:00
* self . __gpio = new cppinc . GPIO ( )
2015-06-28 09:38:55 +00:00
* if not self . __gpio . Init ( ) :
2016-08-28 18:58:00 +00:00
* raise Exception ( " Error initializing GPIOs " ) # will segfault ? ! # < < < < < < < < < < < < < <
2015-07-24 06:43:34 +00:00
* self . __matrix = new cppinc . RGBMatrix ( self . __gpio , rows , chains , parallel )
2016-08-28 18:58:00 +00:00
*
2015-06-28 09:38:55 +00:00
*/
2016-08-29 00:45:53 +00:00
__pyx_tuple__4 = PyTuple_Pack ( 1 , __pyx_kp_s_Error_initializing_GPIOs ) ; if ( unlikely ( ! __pyx_tuple__4 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 58 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_tuple__4 ) ;
__Pyx_GIVEREF ( __pyx_tuple__4 ) ;
2015-07-24 06:43:34 +00:00
2016-08-29 00:45:53 +00:00
/* "rgbmatrix/core.pyx":69
2015-07-24 06:43:34 +00:00
* if < void * > self . __matrix ! = NULL :
* return self . __matrix
* raise Exception ( " Canvas was destroyed or not initialized, you cannot use this object anymore " ) # < < < < < < < < < < < < < <
*
* def Fill ( self , uint8_t red , uint8_t green , uint8_t blue ) :
*/
2016-08-29 00:45:53 +00:00
__pyx_tuple__5 = PyTuple_Pack ( 1 , __pyx_kp_s_Canvas_was_destroyed_or_not_init ) ; if ( unlikely ( ! __pyx_tuple__5 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 69 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_tuple__5 ) ;
__Pyx_GIVEREF ( __pyx_tuple__5 ) ;
2015-06-28 09:38:55 +00:00
__Pyx_RefNannyFinishContext ( ) ;
return 0 ;
__pyx_L1_error : ;
__Pyx_RefNannyFinishContext ( ) ;
return - 1 ;
}
static int __Pyx_InitGlobals ( void ) {
if ( __Pyx_InitStrings ( __pyx_string_tab ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
return 0 ;
__pyx_L1_error : ;
return - 1 ;
}
# if PY_MAJOR_VERSION < 3
2015-07-24 06:43:34 +00:00
PyMODINIT_FUNC initcore ( void ) ; /*proto*/
PyMODINIT_FUNC initcore ( void )
2015-06-28 09:38:55 +00:00
# else
2015-07-24 06:43:34 +00:00
PyMODINIT_FUNC PyInit_core ( void ) ; /*proto*/
PyMODINIT_FUNC PyInit_core ( void )
2015-06-28 09:38:55 +00:00
# endif
{
PyObject * __pyx_t_1 = NULL ;
2016-08-28 23:25:45 +00:00
PyObject * __pyx_t_2 = NULL ;
2015-06-28 09:38:55 +00:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
__Pyx_RefNannyDeclarations
# if CYTHON_REFNANNY
__Pyx_RefNanny = __Pyx_RefNannyImportAPI ( " refnanny " ) ;
if ( ! __Pyx_RefNanny ) {
PyErr_Clear ( ) ;
__Pyx_RefNanny = __Pyx_RefNannyImportAPI ( " Cython.Runtime.refnanny " ) ;
if ( ! __Pyx_RefNanny )
Py_FatalError ( " failed to import 'refnanny' module " ) ;
}
# endif
2015-07-24 06:43:34 +00:00
__Pyx_RefNannySetupContext ( " PyMODINIT_FUNC PyInit_core(void) " , 0 ) ;
2015-12-02 06:07:31 +00:00
if ( __Pyx_check_binary_version ( ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-06-28 09:38:55 +00:00
__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 ; }
__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 ; }
# ifdef __Pyx_CyFunction_USED
2015-12-02 06:07:31 +00:00
if ( __pyx_CyFunction_init ( ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-06-28 09:38:55 +00:00
# endif
# ifdef __Pyx_FusedFunction_USED
if ( __pyx_FusedFunction_init ( ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
# endif
2015-12-02 06:07:31 +00:00
# ifdef __Pyx_Coroutine_USED
if ( __pyx_Coroutine_init ( ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
# endif
2015-06-28 09:38:55 +00:00
# ifdef __Pyx_Generator_USED
if ( __pyx_Generator_init ( ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
# endif
2015-12-02 06:07:31 +00:00
# ifdef __Pyx_StopAsyncIteration_USED
if ( __pyx_StopAsyncIteration_init ( ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
# endif
2015-06-28 09:38:55 +00:00
/*--- Library function declarations ---*/
/*--- Threads initialization code ---*/
# if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
# ifdef WITH_THREAD /* Python build with threading support? */
PyEval_InitThreads ( ) ;
# endif
# endif
/*--- Module creation code ---*/
# if PY_MAJOR_VERSION < 3
2015-07-24 06:43:34 +00:00
__pyx_m = Py_InitModule4 ( " core " , __pyx_methods , 0 , 0 , PYTHON_API_VERSION ) ; Py_XINCREF ( __pyx_m ) ;
2015-06-28 09:38:55 +00:00
# else
__pyx_m = PyModule_Create ( & __pyx_moduledef ) ;
# endif
if ( unlikely ( ! __pyx_m ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__pyx_d = PyModule_GetDict ( __pyx_m ) ; if ( unlikely ( ! __pyx_d ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
Py_INCREF ( __pyx_d ) ;
__pyx_b = PyImport_AddModule ( __Pyx_BUILTIN_MODULE_NAME ) ; if ( unlikely ( ! __pyx_b ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
# if CYTHON_COMPILING_IN_PYPY
Py_INCREF ( __pyx_b ) ;
# endif
if ( PyObject_SetAttrString ( __pyx_m , " __builtins__ " , __pyx_b ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
/*--- Initialize various global constants etc. ---*/
2015-12-02 06:07:31 +00:00
if ( __Pyx_InitGlobals ( ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-06-28 09:38:55 +00:00
# if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT)
if ( __Pyx_init_sys_getdefaultencoding_params ( ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
# endif
2015-07-24 06:43:34 +00:00
if ( __pyx_module_is_main_rgbmatrix__core ) {
2015-12-02 06:07:31 +00:00
if ( PyObject_SetAttrString ( __pyx_m , " __name__ " , __pyx_n_s_main ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-06-28 09:38:55 +00:00
}
# if PY_MAJOR_VERSION >= 3
{
PyObject * modules = PyImport_GetModuleDict ( ) ; if ( unlikely ( ! modules ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-07-24 06:43:34 +00:00
if ( ! PyDict_GetItemString ( modules , " rgbmatrix.core " ) ) {
if ( unlikely ( PyDict_SetItemString ( modules , " rgbmatrix.core " , __pyx_m ) < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-06-28 09:38:55 +00:00
}
}
# endif
/*--- Builtin init code ---*/
2015-12-02 06:07:31 +00:00
if ( __Pyx_InitCachedBuiltins ( ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-06-28 09:38:55 +00:00
/*--- Constants init code ---*/
2015-12-02 06:07:31 +00:00
if ( __Pyx_InitCachedConstants ( ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-06-28 09:38:55 +00:00
/*--- Global init code ---*/
/*--- Variable export code ---*/
/*--- Function export code ---*/
/*--- Type init code ---*/
2015-07-24 06:43:34 +00:00
__pyx_vtabptr_9rgbmatrix_4core_Canvas = & __pyx_vtable_9rgbmatrix_4core_Canvas ;
__pyx_vtable_9rgbmatrix_4core_Canvas . __pyx___getCanvas = ( rgb_matrix : : Canvas * ( * ) ( struct __pyx_obj_9rgbmatrix_4core_Canvas * ) ) __pyx_f_9rgbmatrix_4core_6Canvas___getCanvas ;
2016-08-28 23:25:45 +00:00
if ( PyType_Ready ( & __pyx_type_9rgbmatrix_4core_Canvas ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 7 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-07-24 06:43:34 +00:00
__pyx_type_9rgbmatrix_4core_Canvas . tp_print = 0 ;
2016-08-28 23:25:45 +00:00
if ( __Pyx_SetVtable ( __pyx_type_9rgbmatrix_4core_Canvas . tp_dict , __pyx_vtabptr_9rgbmatrix_4core_Canvas ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 7 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyObject_SetAttrString ( __pyx_m , " Canvas " , ( PyObject * ) & __pyx_type_9rgbmatrix_4core_Canvas ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 7 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-07-24 06:43:34 +00:00
__pyx_ptype_9rgbmatrix_4core_Canvas = & __pyx_type_9rgbmatrix_4core_Canvas ;
__pyx_vtabptr_9rgbmatrix_4core_FrameCanvas = & __pyx_vtable_9rgbmatrix_4core_FrameCanvas ;
__pyx_vtable_9rgbmatrix_4core_FrameCanvas . __pyx_base = * __pyx_vtabptr_9rgbmatrix_4core_Canvas ;
__pyx_vtable_9rgbmatrix_4core_FrameCanvas . __pyx_base . __pyx___getCanvas = ( rgb_matrix : : Canvas * ( * ) ( struct __pyx_obj_9rgbmatrix_4core_Canvas * ) ) __pyx_f_9rgbmatrix_4core_11FrameCanvas___getCanvas__pyx_wrap_1 ;
__pyx_vtable_9rgbmatrix_4core_FrameCanvas . __pyx___getCanvas = ( rgb_matrix : : Canvas * ( * ) ( struct __pyx_obj_9rgbmatrix_4core_FrameCanvas * ) ) __pyx_f_9rgbmatrix_4core_11FrameCanvas___getCanvas ;
__pyx_type_9rgbmatrix_4core_FrameCanvas . tp_base = __pyx_ptype_9rgbmatrix_4core_Canvas ;
2016-08-29 00:45:53 +00:00
if ( PyType_Ready ( & __pyx_type_9rgbmatrix_4core_FrameCanvas ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 24 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-07-24 06:43:34 +00:00
__pyx_type_9rgbmatrix_4core_FrameCanvas . tp_print = 0 ;
2016-08-29 00:45:53 +00:00
if ( __Pyx_SetVtable ( __pyx_type_9rgbmatrix_4core_FrameCanvas . tp_dict , __pyx_vtabptr_9rgbmatrix_4core_FrameCanvas ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 24 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyObject_SetAttrString ( __pyx_m , " FrameCanvas " , ( PyObject * ) & __pyx_type_9rgbmatrix_4core_FrameCanvas ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 24 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-07-24 06:43:34 +00:00
__pyx_ptype_9rgbmatrix_4core_FrameCanvas = & __pyx_type_9rgbmatrix_4core_FrameCanvas ;
__pyx_vtabptr_9rgbmatrix_4core_RGBMatrix = & __pyx_vtable_9rgbmatrix_4core_RGBMatrix ;
__pyx_vtable_9rgbmatrix_4core_RGBMatrix . __pyx_base = * __pyx_vtabptr_9rgbmatrix_4core_Canvas ;
__pyx_vtable_9rgbmatrix_4core_RGBMatrix . __pyx_base . __pyx___getCanvas = ( rgb_matrix : : Canvas * ( * ) ( struct __pyx_obj_9rgbmatrix_4core_Canvas * ) ) __pyx_f_9rgbmatrix_4core_9RGBMatrix___getCanvas__pyx_wrap_1 ;
__pyx_vtable_9rgbmatrix_4core_RGBMatrix . __pyx___getCanvas = ( rgb_matrix : : Canvas * ( * ) ( struct __pyx_obj_9rgbmatrix_4core_RGBMatrix * ) ) __pyx_f_9rgbmatrix_4core_9RGBMatrix___getCanvas ;
__pyx_type_9rgbmatrix_4core_RGBMatrix . tp_base = __pyx_ptype_9rgbmatrix_4core_Canvas ;
2016-08-29 00:45:53 +00:00
if ( PyType_Ready ( & __pyx_type_9rgbmatrix_4core_RGBMatrix ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 54 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-07-24 06:43:34 +00:00
__pyx_type_9rgbmatrix_4core_RGBMatrix . tp_print = 0 ;
2016-08-29 00:45:53 +00:00
if ( __Pyx_SetVtable ( __pyx_type_9rgbmatrix_4core_RGBMatrix . tp_dict , __pyx_vtabptr_9rgbmatrix_4core_RGBMatrix ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 54 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyObject_SetAttrString ( __pyx_m , " RGBMatrix " , ( PyObject * ) & __pyx_type_9rgbmatrix_4core_RGBMatrix ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 54 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2015-07-24 06:43:34 +00:00
__pyx_ptype_9rgbmatrix_4core_RGBMatrix = & __pyx_type_9rgbmatrix_4core_RGBMatrix ;
2015-06-28 09:38:55 +00:00
/*--- Type import code ---*/
/*--- Variable import code ---*/
/*--- Function import code ---*/
/*--- Execution code ---*/
2015-12-02 06:07:31 +00:00
# if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
if ( __Pyx_patch_abc ( ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
# endif
2015-06-28 09:38:55 +00:00
2016-08-28 23:25:45 +00:00
/* "rgbmatrix/core.pyx":5
* from libcpp cimport bool
* from libc . stdint cimport uint8_t , uint32_t
* from PIL import Image # < < < < < < < < < < < < < <
*
* cdef class Canvas :
*/
__pyx_t_1 = PyList_New ( 1 ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 5 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_1 ) ;
__Pyx_INCREF ( __pyx_n_s_Image ) ;
__Pyx_GIVEREF ( __pyx_n_s_Image ) ;
PyList_SET_ITEM ( __pyx_t_1 , 0 , __pyx_n_s_Image ) ;
__pyx_t_2 = __Pyx_Import ( __pyx_n_s_PIL , __pyx_t_1 , - 1 ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 5 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_2 ) ;
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
__pyx_t_1 = __Pyx_ImportFrom ( __pyx_t_2 , __pyx_n_s_Image ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 5 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_1 ) ;
if ( PyDict_SetItem ( __pyx_d , __pyx_n_s_Image , __pyx_t_1 ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 5 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
2015-07-24 06:43:34 +00:00
/* "rgbmatrix/core.pyx":1
2015-06-28 09:38:55 +00:00
* # distutils : language = c + + # < < < < < < < < < < < < < <
*
* from libcpp cimport bool
*/
2016-08-28 23:25:45 +00:00
__pyx_t_2 = PyDict_New ( ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_2 ) ;
if ( PyDict_SetItem ( __pyx_d , __pyx_n_s_test , __pyx_t_2 ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
2015-06-28 09:38:55 +00:00
/*--- Wrapped vars code ---*/
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
2016-08-28 23:25:45 +00:00
__Pyx_XDECREF ( __pyx_t_2 ) ;
2015-06-28 09:38:55 +00:00
if ( __pyx_m ) {
if ( __pyx_d ) {
2015-07-24 06:43:34 +00:00
__Pyx_AddTraceback ( " init rgbmatrix.core " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2015-06-28 09:38:55 +00:00
}
Py_DECREF ( __pyx_m ) ; __pyx_m = 0 ;
} else if ( ! PyErr_Occurred ( ) ) {
2015-07-24 06:43:34 +00:00
PyErr_SetString ( PyExc_ImportError , " init rgbmatrix.core " ) ;
2015-06-28 09:38:55 +00:00
}
__pyx_L0 : ;
__Pyx_RefNannyFinishContext ( ) ;
# if PY_MAJOR_VERSION < 3
return ;
# else
return __pyx_m ;
# endif
}
/* --- Runtime support code --- */
# if CYTHON_REFNANNY
static __Pyx_RefNannyAPIStruct * __Pyx_RefNannyImportAPI ( const char * modname ) {
PyObject * m = NULL , * p = NULL ;
void * r = NULL ;
m = PyImport_ImportModule ( ( char * ) modname ) ;
if ( ! m ) goto end ;
p = PyObject_GetAttrString ( m , ( char * ) " RefNannyAPI " ) ;
if ( ! p ) goto end ;
r = PyLong_AsVoidPtr ( p ) ;
end :
Py_XDECREF ( p ) ;
Py_XDECREF ( m ) ;
return ( __Pyx_RefNannyAPIStruct * ) r ;
}
# endif
static PyObject * __Pyx_GetBuiltinName ( PyObject * name ) {
PyObject * result = __Pyx_PyObject_GetAttrStr ( __pyx_b , name ) ;
if ( unlikely ( ! result ) ) {
PyErr_Format ( PyExc_NameError ,
# if PY_MAJOR_VERSION >= 3
" name '%U' is not defined " , name ) ;
# else
" name '%.200s' is not defined " , PyString_AS_STRING ( name ) ) ;
# endif
}
return result ;
}
# if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject * __Pyx_PyObject_Call ( PyObject * func , PyObject * arg , PyObject * kw ) {
PyObject * result ;
ternaryfunc call = func - > ob_type - > tp_call ;
if ( unlikely ( ! call ) )
return PyObject_Call ( func , arg , kw ) ;
if ( unlikely ( Py_EnterRecursiveCall ( ( char * ) " while calling a Python object " ) ) )
return NULL ;
result = ( * call ) ( func , arg , kw ) ;
Py_LeaveRecursiveCall ( ) ;
if ( unlikely ( ! result ) & & unlikely ( ! PyErr_Occurred ( ) ) ) {
PyErr_SetString (
PyExc_SystemError ,
" NULL result without error in PyObject_Call " ) ;
}
return result ;
}
# endif
static CYTHON_INLINE void __Pyx_ErrRestore ( PyObject * type , PyObject * value , PyObject * tb ) {
# if CYTHON_COMPILING_IN_CPYTHON
PyObject * tmp_type , * tmp_value , * tmp_tb ;
PyThreadState * tstate = PyThreadState_GET ( ) ;
tmp_type = tstate - > curexc_type ;
tmp_value = tstate - > curexc_value ;
tmp_tb = tstate - > curexc_traceback ;
tstate - > curexc_type = type ;
tstate - > curexc_value = value ;
tstate - > curexc_traceback = tb ;
Py_XDECREF ( tmp_type ) ;
Py_XDECREF ( tmp_value ) ;
Py_XDECREF ( tmp_tb ) ;
# else
PyErr_Restore ( type , value , tb ) ;
# endif
}
static CYTHON_INLINE void __Pyx_ErrFetch ( PyObject * * type , PyObject * * value , PyObject * * tb ) {
# if CYTHON_COMPILING_IN_CPYTHON
PyThreadState * tstate = PyThreadState_GET ( ) ;
* type = tstate - > curexc_type ;
* value = tstate - > curexc_value ;
* tb = tstate - > curexc_traceback ;
tstate - > curexc_type = 0 ;
tstate - > curexc_value = 0 ;
tstate - > curexc_traceback = 0 ;
# else
PyErr_Fetch ( type , value , tb ) ;
# endif
}
# if PY_MAJOR_VERSION < 3
static void __Pyx_Raise ( PyObject * type , PyObject * value , PyObject * tb ,
CYTHON_UNUSED PyObject * cause ) {
Py_XINCREF ( type ) ;
if ( ! value | | value = = Py_None )
value = NULL ;
else
Py_INCREF ( value ) ;
if ( ! tb | | tb = = Py_None )
tb = NULL ;
else {
Py_INCREF ( tb ) ;
if ( ! PyTraceBack_Check ( tb ) ) {
PyErr_SetString ( PyExc_TypeError ,
" raise: arg 3 must be a traceback or None " ) ;
goto raise_error ;
}
}
if ( PyType_Check ( type ) ) {
# if CYTHON_COMPILING_IN_PYPY
if ( ! value ) {
Py_INCREF ( Py_None ) ;
value = Py_None ;
}
# endif
PyErr_NormalizeException ( & type , & value , & tb ) ;
} else {
if ( value ) {
PyErr_SetString ( PyExc_TypeError ,
" instance exception may not have a separate value " ) ;
goto raise_error ;
}
value = type ;
type = ( PyObject * ) Py_TYPE ( type ) ;
Py_INCREF ( type ) ;
if ( ! PyType_IsSubtype ( ( PyTypeObject * ) type , ( PyTypeObject * ) PyExc_BaseException ) ) {
PyErr_SetString ( PyExc_TypeError ,
" raise: exception class must be a subclass of BaseException " ) ;
goto raise_error ;
}
}
__Pyx_ErrRestore ( type , value , tb ) ;
return ;
raise_error :
Py_XDECREF ( value ) ;
Py_XDECREF ( type ) ;
Py_XDECREF ( tb ) ;
return ;
}
# else
static void __Pyx_Raise ( PyObject * type , PyObject * value , PyObject * tb , PyObject * cause ) {
PyObject * owned_instance = NULL ;
if ( tb = = Py_None ) {
tb = 0 ;
} else if ( tb & & ! PyTraceBack_Check ( tb ) ) {
PyErr_SetString ( PyExc_TypeError ,
" raise: arg 3 must be a traceback or None " ) ;
goto bad ;
}
if ( value = = Py_None )
value = 0 ;
if ( PyExceptionInstance_Check ( type ) ) {
if ( value ) {
PyErr_SetString ( PyExc_TypeError ,
" instance exception may not have a separate value " ) ;
goto bad ;
}
value = type ;
type = ( PyObject * ) Py_TYPE ( value ) ;
} else if ( PyExceptionClass_Check ( type ) ) {
PyObject * instance_class = NULL ;
if ( value & & PyExceptionInstance_Check ( value ) ) {
instance_class = ( PyObject * ) Py_TYPE ( value ) ;
if ( instance_class ! = type ) {
int is_subclass = PyObject_IsSubclass ( instance_class , type ) ;
if ( ! is_subclass ) {
instance_class = NULL ;
} else if ( unlikely ( is_subclass = = - 1 ) ) {
goto bad ;
} else {
type = instance_class ;
}
}
}
if ( ! instance_class ) {
PyObject * args ;
if ( ! value )
args = PyTuple_New ( 0 ) ;
else if ( PyTuple_Check ( value ) ) {
Py_INCREF ( value ) ;
args = value ;
} else
args = PyTuple_Pack ( 1 , value ) ;
if ( ! args )
goto bad ;
owned_instance = PyObject_Call ( type , args , NULL ) ;
Py_DECREF ( args ) ;
if ( ! owned_instance )
goto bad ;
value = owned_instance ;
if ( ! PyExceptionInstance_Check ( value ) ) {
PyErr_Format ( PyExc_TypeError ,
" calling %R should have returned an instance of "
" BaseException, not %R " ,
type , Py_TYPE ( value ) ) ;
goto bad ;
}
}
} else {
PyErr_SetString ( PyExc_TypeError ,
" raise: exception class must be a subclass of BaseException " ) ;
goto bad ;
}
# if PY_VERSION_HEX >= 0x03030000
if ( cause ) {
# else
if ( cause & & cause ! = Py_None ) {
# endif
PyObject * fixed_cause ;
if ( cause = = Py_None ) {
fixed_cause = NULL ;
} else if ( PyExceptionClass_Check ( cause ) ) {
fixed_cause = PyObject_CallObject ( cause , NULL ) ;
if ( fixed_cause = = NULL )
goto bad ;
} else if ( PyExceptionInstance_Check ( cause ) ) {
fixed_cause = cause ;
Py_INCREF ( fixed_cause ) ;
} else {
PyErr_SetString ( PyExc_TypeError ,
" exception causes must derive from "
" BaseException " ) ;
goto bad ;
}
PyException_SetCause ( value , fixed_cause ) ;
}
PyErr_SetObject ( type , value ) ;
if ( tb ) {
# if CYTHON_COMPILING_IN_PYPY
PyObject * tmp_type , * tmp_value , * tmp_tb ;
PyErr_Fetch ( & tmp_type , & tmp_value , & tmp_tb ) ;
Py_INCREF ( tb ) ;
PyErr_Restore ( tmp_type , tmp_value , tb ) ;
Py_XDECREF ( tmp_tb ) ;
# else
PyThreadState * tstate = PyThreadState_GET ( ) ;
PyObject * tmp_tb = tstate - > curexc_traceback ;
if ( tb ! = tmp_tb ) {
Py_INCREF ( tb ) ;
tstate - > curexc_traceback = tb ;
Py_XDECREF ( tmp_tb ) ;
}
# endif
}
bad :
Py_XDECREF ( owned_instance ) ;
return ;
}
# endif
static void __Pyx_RaiseDoubleKeywordsError (
const char * func_name ,
PyObject * kw_name )
{
PyErr_Format ( PyExc_TypeError ,
# if PY_MAJOR_VERSION >= 3
" %s() got multiple values for keyword argument '%U' " , func_name , kw_name ) ;
# else
" %s() got multiple values for keyword argument '%s' " , func_name ,
PyString_AsString ( kw_name ) ) ;
# endif
}
static int __Pyx_ParseOptionalKeywords (
PyObject * kwds ,
PyObject * * argnames [ ] ,
PyObject * kwds2 ,
PyObject * values [ ] ,
Py_ssize_t num_pos_args ,
const char * function_name )
{
PyObject * key = 0 , * value = 0 ;
Py_ssize_t pos = 0 ;
PyObject * * * name ;
PyObject * * * first_kw_arg = argnames + num_pos_args ;
while ( PyDict_Next ( kwds , & pos , & key , & value ) ) {
name = first_kw_arg ;
while ( * name & & ( * * name ! = key ) ) name + + ;
if ( * name ) {
values [ name - argnames ] = value ;
continue ;
}
name = first_kw_arg ;
# if PY_MAJOR_VERSION < 3
if ( likely ( PyString_CheckExact ( key ) ) | | likely ( PyString_Check ( key ) ) ) {
while ( * name ) {
if ( ( CYTHON_COMPILING_IN_PYPY | | PyString_GET_SIZE ( * * name ) = = PyString_GET_SIZE ( key ) )
& & _PyString_Eq ( * * name , key ) ) {
values [ name - argnames ] = value ;
break ;
}
name + + ;
}
if ( * name ) continue ;
else {
PyObject * * * argname = argnames ;
while ( argname ! = first_kw_arg ) {
if ( ( * * argname = = key ) | | (
( CYTHON_COMPILING_IN_PYPY | | PyString_GET_SIZE ( * * argname ) = = PyString_GET_SIZE ( key ) )
& & _PyString_Eq ( * * argname , key ) ) ) {
goto arg_passed_twice ;
}
argname + + ;
}
}
} else
# endif
if ( likely ( PyUnicode_Check ( key ) ) ) {
while ( * name ) {
int cmp = ( * * name = = key ) ? 0 :
# if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
( PyUnicode_GET_SIZE ( * * name ) ! = PyUnicode_GET_SIZE ( key ) ) ? 1 :
# endif
PyUnicode_Compare ( * * name , key ) ;
if ( cmp < 0 & & unlikely ( PyErr_Occurred ( ) ) ) goto bad ;
if ( cmp = = 0 ) {
values [ name - argnames ] = value ;
break ;
}
name + + ;
}
if ( * name ) continue ;
else {
PyObject * * * argname = argnames ;
while ( argname ! = first_kw_arg ) {
int cmp = ( * * argname = = key ) ? 0 :
# if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
( PyUnicode_GET_SIZE ( * * argname ) ! = PyUnicode_GET_SIZE ( key ) ) ? 1 :
# endif
PyUnicode_Compare ( * * argname , key ) ;
if ( cmp < 0 & & unlikely ( PyErr_Occurred ( ) ) ) goto bad ;
if ( cmp = = 0 ) goto arg_passed_twice ;
argname + + ;
}
}
} else
goto invalid_keyword_type ;
if ( kwds2 ) {
if ( unlikely ( PyDict_SetItem ( kwds2 , key , value ) ) ) goto bad ;
} else {
goto invalid_keyword ;
}
}
return 0 ;
arg_passed_twice :
__Pyx_RaiseDoubleKeywordsError ( function_name , key ) ;
goto bad ;
invalid_keyword_type :
PyErr_Format ( PyExc_TypeError ,
" %.200s() keywords must be strings " , function_name ) ;
goto bad ;
invalid_keyword :
PyErr_Format ( PyExc_TypeError ,
# if PY_MAJOR_VERSION < 3
" %.200s() got an unexpected keyword argument '%.200s' " ,
function_name , PyString_AsString ( key ) ) ;
# else
" %s() got an unexpected keyword argument '%U' " ,
function_name , key ) ;
# endif
bad :
return - 1 ;
}
2016-08-28 23:25:45 +00:00
static void __Pyx_RaiseArgtupleInvalid (
const char * func_name ,
int exact ,
Py_ssize_t num_min ,
Py_ssize_t num_max ,
Py_ssize_t num_found )
{
Py_ssize_t num_expected ;
const char * more_or_less ;
if ( num_found < num_min ) {
num_expected = num_min ;
more_or_less = " at least " ;
} else {
num_expected = num_max ;
more_or_less = " at most " ;
}
if ( exact ) {
more_or_less = " exactly " ;
}
PyErr_Format ( PyExc_TypeError ,
" %.200s() takes %.8s % " CYTHON_FORMAT_SSIZE_T " d positional argument%.1s (% " CYTHON_FORMAT_SSIZE_T " d given) " ,
func_name , more_or_less , num_expected ,
( num_expected = = 1 ) ? " " : " s " , num_found ) ;
}
2016-08-29 00:45:53 +00:00
static CYTHON_INLINE int __Pyx_PyBytes_Equals ( PyObject * s1 , PyObject * s2 , int equals ) {
# if CYTHON_COMPILING_IN_PYPY
return PyObject_RichCompareBool ( s1 , s2 , equals ) ;
# else
if ( s1 = = s2 ) {
return ( equals = = Py_EQ ) ;
} else if ( PyBytes_CheckExact ( s1 ) & PyBytes_CheckExact ( s2 ) ) {
const char * ps1 , * ps2 ;
Py_ssize_t length = PyBytes_GET_SIZE ( s1 ) ;
if ( length ! = PyBytes_GET_SIZE ( s2 ) )
return ( equals = = Py_NE ) ;
ps1 = PyBytes_AS_STRING ( s1 ) ;
ps2 = PyBytes_AS_STRING ( s2 ) ;
if ( ps1 [ 0 ] ! = ps2 [ 0 ] ) {
return ( equals = = Py_NE ) ;
} else if ( length = = 1 ) {
return ( equals = = Py_EQ ) ;
} else {
int result = memcmp ( ps1 , ps2 , ( size_t ) length ) ;
return ( equals = = Py_EQ ) ? ( result = = 0 ) : ( result ! = 0 ) ;
}
} else if ( ( s1 = = Py_None ) & PyBytes_CheckExact ( s2 ) ) {
return ( equals = = Py_NE ) ;
} else if ( ( s2 = = Py_None ) & PyBytes_CheckExact ( s1 ) ) {
return ( equals = = Py_NE ) ;
} else {
int result ;
PyObject * py_result = PyObject_RichCompare ( s1 , s2 , equals ) ;
if ( ! py_result )
return - 1 ;
result = __Pyx_PyObject_IsTrue ( py_result ) ;
Py_DECREF ( py_result ) ;
return result ;
}
# endif
}
static CYTHON_INLINE int __Pyx_PyUnicode_Equals ( PyObject * s1 , PyObject * s2 , int equals ) {
# if CYTHON_COMPILING_IN_PYPY
return PyObject_RichCompareBool ( s1 , s2 , equals ) ;
# else
# if PY_MAJOR_VERSION < 3
PyObject * owned_ref = NULL ;
# endif
int s1_is_unicode , s2_is_unicode ;
if ( s1 = = s2 ) {
goto return_eq ;
}
s1_is_unicode = PyUnicode_CheckExact ( s1 ) ;
s2_is_unicode = PyUnicode_CheckExact ( s2 ) ;
# if PY_MAJOR_VERSION < 3
if ( ( s1_is_unicode & ( ! s2_is_unicode ) ) & & PyString_CheckExact ( s2 ) ) {
owned_ref = PyUnicode_FromObject ( s2 ) ;
if ( unlikely ( ! owned_ref ) )
return - 1 ;
s2 = owned_ref ;
s2_is_unicode = 1 ;
} else if ( ( s2_is_unicode & ( ! s1_is_unicode ) ) & & PyString_CheckExact ( s1 ) ) {
owned_ref = PyUnicode_FromObject ( s1 ) ;
if ( unlikely ( ! owned_ref ) )
return - 1 ;
s1 = owned_ref ;
s1_is_unicode = 1 ;
} else if ( ( ( ! s2_is_unicode ) & ( ! s1_is_unicode ) ) ) {
return __Pyx_PyBytes_Equals ( s1 , s2 , equals ) ;
}
# endif
if ( s1_is_unicode & s2_is_unicode ) {
Py_ssize_t length ;
int kind ;
void * data1 , * data2 ;
if ( unlikely ( __Pyx_PyUnicode_READY ( s1 ) < 0 ) | | unlikely ( __Pyx_PyUnicode_READY ( s2 ) < 0 ) )
return - 1 ;
length = __Pyx_PyUnicode_GET_LENGTH ( s1 ) ;
if ( length ! = __Pyx_PyUnicode_GET_LENGTH ( s2 ) ) {
goto return_ne ;
}
kind = __Pyx_PyUnicode_KIND ( s1 ) ;
if ( kind ! = __Pyx_PyUnicode_KIND ( s2 ) ) {
goto return_ne ;
}
data1 = __Pyx_PyUnicode_DATA ( s1 ) ;
data2 = __Pyx_PyUnicode_DATA ( s2 ) ;
if ( __Pyx_PyUnicode_READ ( kind , data1 , 0 ) ! = __Pyx_PyUnicode_READ ( kind , data2 , 0 ) ) {
goto return_ne ;
} else if ( length = = 1 ) {
goto return_eq ;
} else {
int result = memcmp ( data1 , data2 , ( size_t ) ( length * kind ) ) ;
# if PY_MAJOR_VERSION < 3
Py_XDECREF ( owned_ref ) ;
# endif
return ( equals = = Py_EQ ) ? ( result = = 0 ) : ( result ! = 0 ) ;
}
} else if ( ( s1 = = Py_None ) & s2_is_unicode ) {
goto return_ne ;
} else if ( ( s2 = = Py_None ) & s1_is_unicode ) {
goto return_ne ;
} else {
int result ;
PyObject * py_result = PyObject_RichCompare ( s1 , s2 , equals ) ;
if ( ! py_result )
return - 1 ;
result = __Pyx_PyObject_IsTrue ( py_result ) ;
Py_DECREF ( py_result ) ;
return result ;
}
return_eq :
# if PY_MAJOR_VERSION < 3
Py_XDECREF ( owned_ref ) ;
# endif
return ( equals = = Py_EQ ) ;
return_ne :
# if PY_MAJOR_VERSION < 3
Py_XDECREF ( owned_ref ) ;
# endif
return ( equals = = Py_NE ) ;
# endif
}
2016-08-28 23:25:45 +00:00
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError ( Py_ssize_t expected ) {
PyErr_Format ( PyExc_ValueError ,
" too many values to unpack (expected % " CYTHON_FORMAT_SSIZE_T " d) " , expected ) ;
}
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError ( Py_ssize_t index ) {
PyErr_Format ( PyExc_ValueError ,
" need more than % " CYTHON_FORMAT_SSIZE_T " d value%.1s to unpack " ,
index , ( index = = 1 ) ? " " : " s " ) ;
}
static CYTHON_INLINE int __Pyx_IterFinish ( void ) {
# if CYTHON_COMPILING_IN_CPYTHON
PyThreadState * tstate = PyThreadState_GET ( ) ;
PyObject * exc_type = tstate - > curexc_type ;
if ( unlikely ( exc_type ) ) {
if ( likely ( exc_type = = PyExc_StopIteration ) | | PyErr_GivenExceptionMatches ( exc_type , PyExc_StopIteration ) ) {
PyObject * exc_value , * exc_tb ;
exc_value = tstate - > curexc_value ;
exc_tb = tstate - > curexc_traceback ;
tstate - > curexc_type = 0 ;
tstate - > curexc_value = 0 ;
tstate - > curexc_traceback = 0 ;
Py_DECREF ( exc_type ) ;
Py_XDECREF ( exc_value ) ;
Py_XDECREF ( exc_tb ) ;
return 0 ;
} else {
return - 1 ;
}
}
return 0 ;
# else
if ( unlikely ( PyErr_Occurred ( ) ) ) {
if ( likely ( PyErr_ExceptionMatches ( PyExc_StopIteration ) ) ) {
PyErr_Clear ( ) ;
return 0 ;
} else {
return - 1 ;
}
}
return 0 ;
# endif
}
static int __Pyx_IternextUnpackEndCheck ( PyObject * retval , Py_ssize_t expected ) {
if ( unlikely ( retval ) ) {
Py_DECREF ( retval ) ;
__Pyx_RaiseTooManyValuesError ( expected ) ;
return - 1 ;
} else {
return __Pyx_IterFinish ( ) ;
}
return 0 ;
}
# if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject * __Pyx_PyObject_CallMethO ( PyObject * func , PyObject * arg ) {
PyObject * self , * result ;
PyCFunction cfunc ;
cfunc = PyCFunction_GET_FUNCTION ( func ) ;
self = PyCFunction_GET_SELF ( func ) ;
if ( unlikely ( Py_EnterRecursiveCall ( ( char * ) " while calling a Python object " ) ) )
return NULL ;
result = cfunc ( self , arg ) ;
Py_LeaveRecursiveCall ( ) ;
if ( unlikely ( ! result ) & & unlikely ( ! PyErr_Occurred ( ) ) ) {
PyErr_SetString (
PyExc_SystemError ,
" NULL result without error in PyObject_Call " ) ;
}
return result ;
}
# endif
# if CYTHON_COMPILING_IN_CPYTHON
static PyObject * __Pyx__PyObject_CallOneArg ( PyObject * func , PyObject * arg ) {
PyObject * result ;
PyObject * args = PyTuple_New ( 1 ) ;
if ( unlikely ( ! args ) ) return NULL ;
Py_INCREF ( arg ) ;
PyTuple_SET_ITEM ( args , 0 , arg ) ;
result = __Pyx_PyObject_Call ( func , args , NULL ) ;
Py_DECREF ( args ) ;
return result ;
}
static CYTHON_INLINE PyObject * __Pyx_PyObject_CallOneArg ( PyObject * func , PyObject * arg ) {
# ifdef __Pyx_CyFunction_USED
if ( likely ( PyCFunction_Check ( func ) | | PyObject_TypeCheck ( func , __pyx_CyFunctionType ) ) ) {
# else
if ( likely ( PyCFunction_Check ( func ) ) ) {
# endif
if ( likely ( PyCFunction_GET_FLAGS ( func ) & METH_O ) ) {
return __Pyx_PyObject_CallMethO ( func , arg ) ;
}
}
return __Pyx__PyObject_CallOneArg ( func , arg ) ;
}
# else
static CYTHON_INLINE PyObject * __Pyx_PyObject_CallOneArg ( PyObject * func , PyObject * arg ) {
PyObject * result ;
PyObject * args = PyTuple_Pack ( 1 , arg ) ;
if ( unlikely ( ! args ) ) return NULL ;
result = __Pyx_PyObject_Call ( func , args , NULL ) ;
Py_DECREF ( args ) ;
return result ;
}
# endif
# if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject * __Pyx_PyObject_CallNoArg ( PyObject * func ) {
# ifdef __Pyx_CyFunction_USED
if ( likely ( PyCFunction_Check ( func ) | | PyObject_TypeCheck ( func , __pyx_CyFunctionType ) ) ) {
# else
if ( likely ( PyCFunction_Check ( func ) ) ) {
# endif
if ( likely ( PyCFunction_GET_FLAGS ( func ) & METH_NOARGS ) ) {
return __Pyx_PyObject_CallMethO ( func , NULL ) ;
}
}
return __Pyx_PyObject_Call ( func , __pyx_empty_tuple , NULL ) ;
}
# endif
2015-06-28 09:38:55 +00:00
static void __Pyx_RaiseArgumentTypeInvalid ( const char * name , PyObject * obj , PyTypeObject * type ) {
PyErr_Format ( PyExc_TypeError ,
" Argument '%.200s' has incorrect type (expected %.200s, got %.200s) " ,
name , type - > tp_name , Py_TYPE ( obj ) - > tp_name ) ;
}
static CYTHON_INLINE int __Pyx_ArgTypeTest ( PyObject * obj , PyTypeObject * type , int none_allowed ,
const char * name , int exact )
{
if ( unlikely ( ! type ) ) {
PyErr_SetString ( PyExc_SystemError , " Missing type object " ) ;
return 0 ;
}
if ( none_allowed & & obj = = Py_None ) return 1 ;
else if ( exact ) {
if ( likely ( Py_TYPE ( obj ) = = type ) ) return 1 ;
# if PY_MAJOR_VERSION == 2
else if ( ( type = = & PyBaseString_Type ) & & likely ( __Pyx_PyBaseString_CheckExact ( obj ) ) ) return 1 ;
# endif
}
else {
if ( likely ( PyObject_TypeCheck ( obj , type ) ) ) return 1 ;
}
__Pyx_RaiseArgumentTypeInvalid ( name , obj , type ) ;
return 0 ;
}
static int __Pyx_SetVtable ( PyObject * dict , void * vtable ) {
# if PY_VERSION_HEX >= 0x02070000
PyObject * ob = PyCapsule_New ( vtable , 0 , 0 ) ;
# else
PyObject * ob = PyCObject_FromVoidPtr ( vtable , 0 ) ;
# endif
if ( ! ob )
goto bad ;
if ( PyDict_SetItem ( dict , __pyx_n_s_pyx_vtable , ob ) < 0 )
goto bad ;
Py_DECREF ( ob ) ;
return 0 ;
bad :
Py_XDECREF ( ob ) ;
return - 1 ;
}
2016-08-28 23:25:45 +00:00
static PyObject * __Pyx_Import ( PyObject * name , PyObject * from_list , int level ) {
PyObject * empty_list = 0 ;
PyObject * module = 0 ;
PyObject * global_dict = 0 ;
PyObject * empty_dict = 0 ;
PyObject * list ;
# if PY_VERSION_HEX < 0x03030000
PyObject * py_import ;
py_import = __Pyx_PyObject_GetAttrStr ( __pyx_b , __pyx_n_s_import ) ;
if ( ! py_import )
goto bad ;
# endif
if ( from_list )
list = from_list ;
else {
empty_list = PyList_New ( 0 ) ;
if ( ! empty_list )
goto bad ;
list = empty_list ;
}
global_dict = PyModule_GetDict ( __pyx_m ) ;
if ( ! global_dict )
goto bad ;
empty_dict = PyDict_New ( ) ;
if ( ! empty_dict )
goto bad ;
{
# if PY_MAJOR_VERSION >= 3
if ( level = = - 1 ) {
if ( strchr ( __Pyx_MODULE_NAME , ' . ' ) ) {
# if PY_VERSION_HEX < 0x03030000
PyObject * py_level = PyInt_FromLong ( 1 ) ;
if ( ! py_level )
goto bad ;
module = PyObject_CallFunctionObjArgs ( py_import ,
name , global_dict , empty_dict , list , py_level , NULL ) ;
Py_DECREF ( py_level ) ;
# else
module = PyImport_ImportModuleLevelObject (
name , global_dict , empty_dict , list , 1 ) ;
# endif
if ( ! module ) {
if ( ! PyErr_ExceptionMatches ( PyExc_ImportError ) )
goto bad ;
PyErr_Clear ( ) ;
}
}
level = 0 ;
}
# endif
if ( ! module ) {
# if PY_VERSION_HEX < 0x03030000
PyObject * py_level = PyInt_FromLong ( level ) ;
if ( ! py_level )
goto bad ;
module = PyObject_CallFunctionObjArgs ( py_import ,
name , global_dict , empty_dict , list , py_level , NULL ) ;
Py_DECREF ( py_level ) ;
# else
module = PyImport_ImportModuleLevelObject (
name , global_dict , empty_dict , list , level ) ;
# endif
}
}
bad :
# if PY_VERSION_HEX < 0x03030000
Py_XDECREF ( py_import ) ;
# endif
Py_XDECREF ( empty_list ) ;
Py_XDECREF ( empty_dict ) ;
return module ;
}
static PyObject * __Pyx_ImportFrom ( PyObject * module , PyObject * name ) {
PyObject * value = __Pyx_PyObject_GetAttrStr ( module , name ) ;
if ( unlikely ( ! value ) & & PyErr_ExceptionMatches ( PyExc_AttributeError ) ) {
PyErr_Format ( PyExc_ImportError ,
# if PY_MAJOR_VERSION < 3
" cannot import name %.230s " , PyString_AS_STRING ( name ) ) ;
# else
" cannot import name %S " , name ) ;
# endif
}
return value ;
}
2015-06-28 09:38:55 +00:00
static int __pyx_bisect_code_objects ( __Pyx_CodeObjectCacheEntry * entries , int count , int code_line ) {
int start = 0 , mid = 0 , end = count - 1 ;
if ( end > = 0 & & code_line > entries [ end ] . code_line ) {
return count ;
}
while ( start < end ) {
2015-12-02 06:07:31 +00:00
mid = start + ( end - start ) / 2 ;
2015-06-28 09:38:55 +00:00
if ( code_line < entries [ mid ] . code_line ) {
end = mid ;
} else if ( code_line > entries [ mid ] . code_line ) {
start = mid + 1 ;
} else {
return mid ;
}
}
if ( code_line < = entries [ mid ] . code_line ) {
return mid ;
} else {
return mid + 1 ;
}
}
static PyCodeObject * __pyx_find_code_object ( int code_line ) {
PyCodeObject * code_object ;
int pos ;
if ( unlikely ( ! code_line ) | | unlikely ( ! __pyx_code_cache . entries ) ) {
return NULL ;
}
pos = __pyx_bisect_code_objects ( __pyx_code_cache . entries , __pyx_code_cache . count , code_line ) ;
if ( unlikely ( pos > = __pyx_code_cache . count ) | | unlikely ( __pyx_code_cache . entries [ pos ] . code_line ! = code_line ) ) {
return NULL ;
}
code_object = __pyx_code_cache . entries [ pos ] . code_object ;
Py_INCREF ( code_object ) ;
return code_object ;
}
static void __pyx_insert_code_object ( int code_line , PyCodeObject * code_object ) {
int pos , i ;
__Pyx_CodeObjectCacheEntry * entries = __pyx_code_cache . entries ;
if ( unlikely ( ! code_line ) ) {
return ;
}
if ( unlikely ( ! entries ) ) {
entries = ( __Pyx_CodeObjectCacheEntry * ) PyMem_Malloc ( 64 * sizeof ( __Pyx_CodeObjectCacheEntry ) ) ;
if ( likely ( entries ) ) {
__pyx_code_cache . entries = entries ;
__pyx_code_cache . max_count = 64 ;
__pyx_code_cache . count = 1 ;
entries [ 0 ] . code_line = code_line ;
entries [ 0 ] . code_object = code_object ;
Py_INCREF ( code_object ) ;
}
return ;
}
pos = __pyx_bisect_code_objects ( __pyx_code_cache . entries , __pyx_code_cache . count , code_line ) ;
if ( ( pos < __pyx_code_cache . count ) & & unlikely ( __pyx_code_cache . entries [ pos ] . code_line = = code_line ) ) {
PyCodeObject * tmp = entries [ pos ] . code_object ;
entries [ pos ] . code_object = code_object ;
Py_DECREF ( tmp ) ;
return ;
}
if ( __pyx_code_cache . count = = __pyx_code_cache . max_count ) {
int new_max = __pyx_code_cache . max_count + 64 ;
entries = ( __Pyx_CodeObjectCacheEntry * ) PyMem_Realloc (
__pyx_code_cache . entries , ( size_t ) new_max * sizeof ( __Pyx_CodeObjectCacheEntry ) ) ;
if ( unlikely ( ! entries ) ) {
return ;
}
__pyx_code_cache . entries = entries ;
__pyx_code_cache . max_count = new_max ;
}
for ( i = __pyx_code_cache . count ; i > pos ; i - - ) {
entries [ i ] = entries [ i - 1 ] ;
}
entries [ pos ] . code_line = code_line ;
entries [ pos ] . code_object = code_object ;
__pyx_code_cache . count + + ;
Py_INCREF ( code_object ) ;
}
# include "compile.h"
# include "frameobject.h"
# include "traceback.h"
static PyCodeObject * __Pyx_CreateCodeObjectForTraceback (
const char * funcname , int c_line ,
int py_line , const char * filename ) {
PyCodeObject * py_code = 0 ;
PyObject * py_srcfile = 0 ;
PyObject * py_funcname = 0 ;
# if PY_MAJOR_VERSION < 3
py_srcfile = PyString_FromString ( filename ) ;
# else
py_srcfile = PyUnicode_FromString ( filename ) ;
# endif
if ( ! py_srcfile ) goto bad ;
if ( c_line ) {
# if PY_MAJOR_VERSION < 3
py_funcname = PyString_FromFormat ( " %s (%s:%d) " , funcname , __pyx_cfilenm , c_line ) ;
# else
py_funcname = PyUnicode_FromFormat ( " %s (%s:%d) " , funcname , __pyx_cfilenm , c_line ) ;
# endif
}
else {
# if PY_MAJOR_VERSION < 3
py_funcname = PyString_FromString ( funcname ) ;
# else
py_funcname = PyUnicode_FromString ( funcname ) ;
# endif
}
if ( ! py_funcname ) goto bad ;
py_code = __Pyx_PyCode_New (
0 ,
0 ,
0 ,
0 ,
0 ,
__pyx_empty_bytes , /*PyObject *code,*/
__pyx_empty_tuple , /*PyObject *consts,*/
__pyx_empty_tuple , /*PyObject *names,*/
__pyx_empty_tuple , /*PyObject *varnames,*/
__pyx_empty_tuple , /*PyObject *freevars,*/
__pyx_empty_tuple , /*PyObject *cellvars,*/
py_srcfile , /*PyObject *filename,*/
py_funcname , /*PyObject *name,*/
py_line ,
__pyx_empty_bytes /*PyObject *lnotab*/
) ;
Py_DECREF ( py_srcfile ) ;
Py_DECREF ( py_funcname ) ;
return py_code ;
bad :
Py_XDECREF ( py_srcfile ) ;
Py_XDECREF ( py_funcname ) ;
return NULL ;
}
static void __Pyx_AddTraceback ( const char * funcname , int c_line ,
int py_line , const char * filename ) {
PyCodeObject * py_code = 0 ;
PyFrameObject * py_frame = 0 ;
py_code = __pyx_find_code_object ( c_line ? c_line : py_line ) ;
if ( ! py_code ) {
py_code = __Pyx_CreateCodeObjectForTraceback (
funcname , c_line , py_line , filename ) ;
if ( ! py_code ) goto bad ;
__pyx_insert_code_object ( c_line ? c_line : py_line , py_code ) ;
}
py_frame = PyFrame_New (
PyThreadState_GET ( ) , /*PyThreadState *tstate,*/
py_code , /*PyCodeObject *code,*/
__pyx_d , /*PyObject *globals,*/
0 /*PyObject *locals*/
) ;
if ( ! py_frame ) goto bad ;
py_frame - > f_lineno = py_line ;
PyTraceBack_Here ( py_frame ) ;
bad :
Py_XDECREF ( py_code ) ;
Py_XDECREF ( py_frame ) ;
}
2015-12-02 06:07:31 +00:00
# define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
__PYX__VERIFY_RETURN_INT ( target_type , func_type , func_value , 0 )
# define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\
__PYX__VERIFY_RETURN_INT ( target_type , func_type , func_value , 1 )
# define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\
{ \
func_type value = func_value ; \
if ( sizeof ( target_type ) < sizeof ( func_type ) ) { \
if ( unlikely ( value ! = ( func_type ) ( target_type ) value ) ) { \
func_type zero = 0 ; \
if ( exc & & unlikely ( value = = ( func_type ) - 1 & & PyErr_Occurred ( ) ) ) \
return ( target_type ) - 1 ; \
if ( is_unsigned & & unlikely ( value < zero ) ) \
goto raise_neg_overflow ; \
else \
goto raise_overflow ; \
} \
} \
return ( target_type ) value ; \
2015-06-28 09:38:55 +00:00
}
2015-12-02 06:07:31 +00:00
# if CYTHON_USE_PYLONG_INTERNALS
2015-06-28 09:38:55 +00:00
# include "longintrepr.h"
# endif
2016-08-28 23:25:45 +00:00
static CYTHON_INLINE int __Pyx_PyInt_As_int ( PyObject * x ) {
const int neg_one = ( int ) - 1 , const_zero = ( int ) 0 ;
2015-06-28 09:38:55 +00:00
const int is_unsigned = neg_one > const_zero ;
# if PY_MAJOR_VERSION < 3
if ( likely ( PyInt_Check ( x ) ) ) {
2016-08-28 23:25:45 +00:00
if ( sizeof ( int ) < sizeof ( long ) ) {
__PYX_VERIFY_RETURN_INT ( int , long , PyInt_AS_LONG ( x ) )
2015-06-28 09:38:55 +00:00
} else {
long val = PyInt_AS_LONG ( x ) ;
if ( is_unsigned & & unlikely ( val < 0 ) ) {
goto raise_neg_overflow ;
}
2016-08-28 23:25:45 +00:00
return ( int ) val ;
2015-06-28 09:38:55 +00:00
}
} else
# endif
if ( likely ( PyLong_Check ( x ) ) ) {
if ( is_unsigned ) {
2015-12-02 06:07:31 +00:00
# if CYTHON_USE_PYLONG_INTERNALS
const digit * digits = ( ( PyLongObject * ) x ) - > ob_digit ;
2015-06-28 09:38:55 +00:00
switch ( Py_SIZE ( x ) ) {
2016-08-28 23:25:45 +00:00
case 0 : return ( int ) 0 ;
case 1 : __PYX_VERIFY_RETURN_INT ( int , digit , digits [ 0 ] )
2015-12-02 06:07:31 +00:00
case 2 :
2016-08-28 23:25:45 +00:00
if ( 8 * sizeof ( int ) > 1 * PyLong_SHIFT ) {
2015-12-02 06:07:31 +00:00
if ( 8 * sizeof ( unsigned long ) > 2 * PyLong_SHIFT ) {
2016-08-28 23:25:45 +00:00
__PYX_VERIFY_RETURN_INT ( int , unsigned long , ( ( ( ( ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( int ) > = 2 * PyLong_SHIFT ) {
return ( int ) ( ( ( ( ( int ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 0 ] ) ) ;
2015-12-02 06:07:31 +00:00
}
}
break ;
case 3 :
2016-08-28 23:25:45 +00:00
if ( 8 * sizeof ( int ) > 2 * PyLong_SHIFT ) {
2015-12-02 06:07:31 +00:00
if ( 8 * sizeof ( unsigned long ) > 3 * PyLong_SHIFT ) {
2016-08-28 23:25:45 +00:00
__PYX_VERIFY_RETURN_INT ( int , unsigned long , ( ( ( ( ( ( ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( int ) > = 3 * PyLong_SHIFT ) {
return ( int ) ( ( ( ( ( ( ( int ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 0 ] ) ) ;
2015-12-02 06:07:31 +00:00
}
}
break ;
case 4 :
2016-08-28 23:25:45 +00:00
if ( 8 * sizeof ( int ) > 3 * PyLong_SHIFT ) {
2015-12-02 06:07:31 +00:00
if ( 8 * sizeof ( unsigned long ) > 4 * PyLong_SHIFT ) {
2016-08-28 23:25:45 +00:00
__PYX_VERIFY_RETURN_INT ( int , unsigned long , ( ( ( ( ( ( ( ( ( unsigned long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( int ) > = 4 * PyLong_SHIFT ) {
return ( int ) ( ( ( ( ( ( ( ( ( int ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 0 ] ) ) ;
2015-12-02 06:07:31 +00:00
}
}
break ;
2015-06-28 09:38:55 +00:00
}
# endif
# if CYTHON_COMPILING_IN_CPYTHON
if ( unlikely ( Py_SIZE ( x ) < 0 ) ) {
goto raise_neg_overflow ;
}
# else
{
int result = PyObject_RichCompareBool ( x , Py_False , Py_LT ) ;
if ( unlikely ( result < 0 ) )
2016-08-28 23:25:45 +00:00
return ( int ) - 1 ;
2015-06-28 09:38:55 +00:00
if ( unlikely ( result = = 1 ) )
goto raise_neg_overflow ;
}
# endif
2016-08-28 23:25:45 +00:00
if ( sizeof ( int ) < = sizeof ( unsigned long ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( int , unsigned long , PyLong_AsUnsignedLong ( x ) )
} else if ( sizeof ( int ) < = sizeof ( unsigned PY_LONG_LONG ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( int , unsigned PY_LONG_LONG , PyLong_AsUnsignedLongLong ( x ) )
2015-06-28 09:38:55 +00:00
}
} else {
2015-12-02 06:07:31 +00:00
# if CYTHON_USE_PYLONG_INTERNALS
const digit * digits = ( ( PyLongObject * ) x ) - > ob_digit ;
2015-06-28 09:38:55 +00:00
switch ( Py_SIZE ( x ) ) {
2016-08-28 23:25:45 +00:00
case 0 : return ( int ) 0 ;
case - 1 : __PYX_VERIFY_RETURN_INT ( int , sdigit , - ( sdigit ) digits [ 0 ] )
case 1 : __PYX_VERIFY_RETURN_INT ( int , digit , + digits [ 0 ] )
2015-12-02 06:07:31 +00:00
case - 2 :
2016-08-28 23:25:45 +00:00
if ( 8 * sizeof ( int ) - 1 > 1 * PyLong_SHIFT ) {
2015-12-02 06:07:31 +00:00
if ( 8 * sizeof ( unsigned long ) > 2 * PyLong_SHIFT ) {
2016-08-28 23:25:45 +00:00
__PYX_VERIFY_RETURN_INT ( int , long , - ( long ) ( ( ( ( ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( int ) - 1 > 2 * PyLong_SHIFT ) {
return ( int ) ( ( ( int ) - 1 ) * ( ( ( ( ( int ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 0 ] ) ) ) ;
2015-12-02 06:07:31 +00:00
}
}
break ;
case 2 :
2016-08-28 23:25:45 +00:00
if ( 8 * sizeof ( int ) > 1 * PyLong_SHIFT ) {
2015-12-02 06:07:31 +00:00
if ( 8 * sizeof ( unsigned long ) > 2 * PyLong_SHIFT ) {
2016-08-28 23:25:45 +00:00
__PYX_VERIFY_RETURN_INT ( int , unsigned long , ( ( ( ( ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( int ) - 1 > 2 * PyLong_SHIFT ) {
return ( int ) ( ( ( ( ( ( int ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 0 ] ) ) ) ;
2015-12-02 06:07:31 +00:00
}
}
break ;
case - 3 :
2016-08-28 23:25:45 +00:00
if ( 8 * sizeof ( int ) - 1 > 2 * PyLong_SHIFT ) {
2015-12-02 06:07:31 +00:00
if ( 8 * sizeof ( unsigned long ) > 3 * PyLong_SHIFT ) {
2016-08-28 23:25:45 +00:00
__PYX_VERIFY_RETURN_INT ( int , long , - ( long ) ( ( ( ( ( ( ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( int ) - 1 > 3 * PyLong_SHIFT ) {
return ( int ) ( ( ( int ) - 1 ) * ( ( ( ( ( ( ( int ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 0 ] ) ) ) ;
2015-12-02 06:07:31 +00:00
}
}
break ;
case 3 :
2016-08-28 23:25:45 +00:00
if ( 8 * sizeof ( int ) > 2 * PyLong_SHIFT ) {
2015-12-02 06:07:31 +00:00
if ( 8 * sizeof ( unsigned long ) > 3 * PyLong_SHIFT ) {
2016-08-28 23:25:45 +00:00
__PYX_VERIFY_RETURN_INT ( int , unsigned long , ( ( ( ( ( ( ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( int ) - 1 > 3 * PyLong_SHIFT ) {
return ( int ) ( ( ( ( ( ( ( ( int ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 0 ] ) ) ) ;
2015-12-02 06:07:31 +00:00
}
}
break ;
case - 4 :
2016-08-28 23:25:45 +00:00
if ( 8 * sizeof ( int ) - 1 > 3 * PyLong_SHIFT ) {
2015-12-02 06:07:31 +00:00
if ( 8 * sizeof ( unsigned long ) > 4 * PyLong_SHIFT ) {
2016-08-28 23:25:45 +00:00
__PYX_VERIFY_RETURN_INT ( int , long , - ( long ) ( ( ( ( ( ( ( ( ( unsigned long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( int ) - 1 > 4 * PyLong_SHIFT ) {
return ( int ) ( ( ( int ) - 1 ) * ( ( ( ( ( ( ( ( ( int ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 0 ] ) ) ) ;
2015-12-02 06:07:31 +00:00
}
}
break ;
case 4 :
2016-08-28 23:25:45 +00:00
if ( 8 * sizeof ( int ) > 3 * PyLong_SHIFT ) {
2015-12-02 06:07:31 +00:00
if ( 8 * sizeof ( unsigned long ) > 4 * PyLong_SHIFT ) {
2016-08-28 23:25:45 +00:00
__PYX_VERIFY_RETURN_INT ( int , unsigned long , ( ( ( ( ( ( ( ( ( unsigned long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( int ) - 1 > 4 * PyLong_SHIFT ) {
return ( int ) ( ( ( ( ( ( ( ( ( ( int ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 0 ] ) ) ) ;
2015-12-02 06:07:31 +00:00
}
}
break ;
2015-06-28 09:38:55 +00:00
}
# endif
2016-08-28 23:25:45 +00:00
if ( sizeof ( int ) < = sizeof ( long ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( int , long , PyLong_AsLong ( x ) )
} else if ( sizeof ( int ) < = sizeof ( PY_LONG_LONG ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( int , PY_LONG_LONG , PyLong_AsLongLong ( x ) )
2015-06-28 09:38:55 +00:00
}
}
{
# if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
PyErr_SetString ( PyExc_RuntimeError ,
" _PyLong_AsByteArray() not available in PyPy, cannot convert large numbers " ) ;
# else
2016-08-28 23:25:45 +00:00
int val ;
2015-06-28 09:38:55 +00:00
PyObject * v = __Pyx_PyNumber_Int ( x ) ;
# if PY_MAJOR_VERSION < 3
if ( likely ( v ) & & ! PyLong_Check ( v ) ) {
PyObject * tmp = v ;
v = PyNumber_Long ( tmp ) ;
Py_DECREF ( tmp ) ;
}
# endif
if ( likely ( v ) ) {
int one = 1 ; int is_little = ( int ) * ( unsigned char * ) & one ;
unsigned char * bytes = ( unsigned char * ) & val ;
int ret = _PyLong_AsByteArray ( ( PyLongObject * ) v ,
bytes , sizeof ( val ) ,
is_little , ! is_unsigned ) ;
Py_DECREF ( v ) ;
if ( likely ( ! ret ) )
return val ;
}
# endif
2016-08-28 23:25:45 +00:00
return ( int ) - 1 ;
2015-06-28 09:38:55 +00:00
}
} else {
2016-08-28 23:25:45 +00:00
int val ;
2015-06-28 09:38:55 +00:00
PyObject * tmp = __Pyx_PyNumber_Int ( x ) ;
2016-08-28 23:25:45 +00:00
if ( ! tmp ) return ( int ) - 1 ;
val = __Pyx_PyInt_As_int ( tmp ) ;
2015-06-28 09:38:55 +00:00
Py_DECREF ( tmp ) ;
return val ;
}
raise_overflow :
PyErr_SetString ( PyExc_OverflowError ,
2016-08-28 23:25:45 +00:00
" value too large to convert to int " ) ;
return ( int ) - 1 ;
2015-06-28 09:38:55 +00:00
raise_neg_overflow :
PyErr_SetString ( PyExc_OverflowError ,
2016-08-28 23:25:45 +00:00
" can't convert negative value to int " ) ;
return ( int ) - 1 ;
2015-06-28 09:38:55 +00:00
}
2016-08-28 23:25:45 +00:00
static CYTHON_INLINE uint8_t __Pyx_PyInt_As_uint8_t ( PyObject * x ) {
const uint8_t neg_one = ( uint8_t ) - 1 , const_zero = ( uint8_t ) 0 ;
2015-06-28 09:38:55 +00:00
const int is_unsigned = neg_one > const_zero ;
# if PY_MAJOR_VERSION < 3
if ( likely ( PyInt_Check ( x ) ) ) {
2016-08-28 23:25:45 +00:00
if ( sizeof ( uint8_t ) < sizeof ( long ) ) {
__PYX_VERIFY_RETURN_INT ( uint8_t , long , PyInt_AS_LONG ( x ) )
2015-06-28 09:38:55 +00:00
} else {
long val = PyInt_AS_LONG ( x ) ;
if ( is_unsigned & & unlikely ( val < 0 ) ) {
goto raise_neg_overflow ;
}
2016-08-28 23:25:45 +00:00
return ( uint8_t ) val ;
2015-06-28 09:38:55 +00:00
}
} else
# endif
if ( likely ( PyLong_Check ( x ) ) ) {
if ( is_unsigned ) {
2015-12-02 06:07:31 +00:00
# if CYTHON_USE_PYLONG_INTERNALS
const digit * digits = ( ( PyLongObject * ) x ) - > ob_digit ;
2015-06-28 09:38:55 +00:00
switch ( Py_SIZE ( x ) ) {
2016-08-28 23:25:45 +00:00
case 0 : return ( uint8_t ) 0 ;
case 1 : __PYX_VERIFY_RETURN_INT ( uint8_t , digit , digits [ 0 ] )
2015-12-02 06:07:31 +00:00
case 2 :
2016-08-28 23:25:45 +00:00
if ( 8 * sizeof ( uint8_t ) > 1 * PyLong_SHIFT ) {
2015-12-02 06:07:31 +00:00
if ( 8 * sizeof ( unsigned long ) > 2 * PyLong_SHIFT ) {
2016-08-28 23:25:45 +00:00
__PYX_VERIFY_RETURN_INT ( uint8_t , unsigned long , ( ( ( ( ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( uint8_t ) > = 2 * PyLong_SHIFT ) {
return ( uint8_t ) ( ( ( ( ( uint8_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( uint8_t ) digits [ 0 ] ) ) ;
2015-12-02 06:07:31 +00:00
}
}
break ;
case 3 :
2016-08-28 23:25:45 +00:00
if ( 8 * sizeof ( uint8_t ) > 2 * PyLong_SHIFT ) {
2015-12-02 06:07:31 +00:00
if ( 8 * sizeof ( unsigned long ) > 3 * PyLong_SHIFT ) {
2016-08-28 23:25:45 +00:00
__PYX_VERIFY_RETURN_INT ( uint8_t , unsigned long , ( ( ( ( ( ( ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( uint8_t ) > = 3 * PyLong_SHIFT ) {
return ( uint8_t ) ( ( ( ( ( ( ( uint8_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( uint8_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( uint8_t ) digits [ 0 ] ) ) ;
2015-12-02 06:07:31 +00:00
}
}
break ;
case 4 :
2016-08-28 23:25:45 +00:00
if ( 8 * sizeof ( uint8_t ) > 3 * PyLong_SHIFT ) {
2015-12-02 06:07:31 +00:00
if ( 8 * sizeof ( unsigned long ) > 4 * PyLong_SHIFT ) {
2016-08-28 23:25:45 +00:00
__PYX_VERIFY_RETURN_INT ( uint8_t , unsigned long , ( ( ( ( ( ( ( ( ( unsigned long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( uint8_t ) > = 4 * PyLong_SHIFT ) {
return ( uint8_t ) ( ( ( ( ( ( ( ( ( uint8_t ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( uint8_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( uint8_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( uint8_t ) digits [ 0 ] ) ) ;
2015-12-02 06:07:31 +00:00
}
}
break ;
2015-06-28 09:38:55 +00:00
}
# endif
# if CYTHON_COMPILING_IN_CPYTHON
if ( unlikely ( Py_SIZE ( x ) < 0 ) ) {
goto raise_neg_overflow ;
}
# else
{
int result = PyObject_RichCompareBool ( x , Py_False , Py_LT ) ;
if ( unlikely ( result < 0 ) )
2016-08-28 23:25:45 +00:00
return ( uint8_t ) - 1 ;
2015-06-28 09:38:55 +00:00
if ( unlikely ( result = = 1 ) )
goto raise_neg_overflow ;
}
# endif
2016-08-28 23:25:45 +00:00
if ( sizeof ( uint8_t ) < = sizeof ( unsigned long ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( uint8_t , unsigned long , PyLong_AsUnsignedLong ( x ) )
} else if ( sizeof ( uint8_t ) < = sizeof ( unsigned PY_LONG_LONG ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( uint8_t , unsigned PY_LONG_LONG , PyLong_AsUnsignedLongLong ( x ) )
2015-06-28 09:38:55 +00:00
}
} else {
2015-12-02 06:07:31 +00:00
# if CYTHON_USE_PYLONG_INTERNALS
const digit * digits = ( ( PyLongObject * ) x ) - > ob_digit ;
2015-06-28 09:38:55 +00:00
switch ( Py_SIZE ( x ) ) {
2016-08-28 23:25:45 +00:00
case 0 : return ( uint8_t ) 0 ;
case - 1 : __PYX_VERIFY_RETURN_INT ( uint8_t , sdigit , - ( sdigit ) digits [ 0 ] )
case 1 : __PYX_VERIFY_RETURN_INT ( uint8_t , digit , + digits [ 0 ] )
2015-12-02 06:07:31 +00:00
case - 2 :
2016-08-28 23:25:45 +00:00
if ( 8 * sizeof ( uint8_t ) - 1 > 1 * PyLong_SHIFT ) {
2015-12-02 06:07:31 +00:00
if ( 8 * sizeof ( unsigned long ) > 2 * PyLong_SHIFT ) {
2016-08-28 23:25:45 +00:00
__PYX_VERIFY_RETURN_INT ( uint8_t , long , - ( long ) ( ( ( ( ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( uint8_t ) - 1 > 2 * PyLong_SHIFT ) {
return ( uint8_t ) ( ( ( uint8_t ) - 1 ) * ( ( ( ( ( uint8_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( uint8_t ) digits [ 0 ] ) ) ) ;
2015-12-02 06:07:31 +00:00
}
}
break ;
case 2 :
2016-08-28 23:25:45 +00:00
if ( 8 * sizeof ( uint8_t ) > 1 * PyLong_SHIFT ) {
2015-12-02 06:07:31 +00:00
if ( 8 * sizeof ( unsigned long ) > 2 * PyLong_SHIFT ) {
2016-08-28 23:25:45 +00:00
__PYX_VERIFY_RETURN_INT ( uint8_t , unsigned long , ( ( ( ( ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( uint8_t ) - 1 > 2 * PyLong_SHIFT ) {
return ( uint8_t ) ( ( ( ( ( ( uint8_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( uint8_t ) digits [ 0 ] ) ) ) ;
2015-12-02 06:07:31 +00:00
}
}
break ;
case - 3 :
2016-08-28 23:25:45 +00:00
if ( 8 * sizeof ( uint8_t ) - 1 > 2 * PyLong_SHIFT ) {
2015-12-02 06:07:31 +00:00
if ( 8 * sizeof ( unsigned long ) > 3 * PyLong_SHIFT ) {
2016-08-28 23:25:45 +00:00
__PYX_VERIFY_RETURN_INT ( uint8_t , long , - ( long ) ( ( ( ( ( ( ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( uint8_t ) - 1 > 3 * PyLong_SHIFT ) {
return ( uint8_t ) ( ( ( uint8_t ) - 1 ) * ( ( ( ( ( ( ( uint8_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( uint8_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( uint8_t ) digits [ 0 ] ) ) ) ;
2015-12-02 06:07:31 +00:00
}
}
break ;
case 3 :
2016-08-28 23:25:45 +00:00
if ( 8 * sizeof ( uint8_t ) > 2 * PyLong_SHIFT ) {
2015-12-02 06:07:31 +00:00
if ( 8 * sizeof ( unsigned long ) > 3 * PyLong_SHIFT ) {
2016-08-28 23:25:45 +00:00
__PYX_VERIFY_RETURN_INT ( uint8_t , unsigned long , ( ( ( ( ( ( ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( uint8_t ) - 1 > 3 * PyLong_SHIFT ) {
return ( uint8_t ) ( ( ( ( ( ( ( ( uint8_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( uint8_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( uint8_t ) digits [ 0 ] ) ) ) ;
2015-12-02 06:07:31 +00:00
}
}
break ;
case - 4 :
2016-08-28 23:25:45 +00:00
if ( 8 * sizeof ( uint8_t ) - 1 > 3 * PyLong_SHIFT ) {
2015-12-02 06:07:31 +00:00
if ( 8 * sizeof ( unsigned long ) > 4 * PyLong_SHIFT ) {
2016-08-28 23:25:45 +00:00
__PYX_VERIFY_RETURN_INT ( uint8_t , long , - ( long ) ( ( ( ( ( ( ( ( ( unsigned long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( uint8_t ) - 1 > 4 * PyLong_SHIFT ) {
return ( uint8_t ) ( ( ( uint8_t ) - 1 ) * ( ( ( ( ( ( ( ( ( uint8_t ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( uint8_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( uint8_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( uint8_t ) digits [ 0 ] ) ) ) ;
2015-12-02 06:07:31 +00:00
}
}
break ;
case 4 :
2016-08-28 23:25:45 +00:00
if ( 8 * sizeof ( uint8_t ) > 3 * PyLong_SHIFT ) {
2015-12-02 06:07:31 +00:00
if ( 8 * sizeof ( unsigned long ) > 4 * PyLong_SHIFT ) {
2016-08-28 23:25:45 +00:00
__PYX_VERIFY_RETURN_INT ( uint8_t , unsigned long , ( ( ( ( ( ( ( ( ( unsigned long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( uint8_t ) - 1 > 4 * PyLong_SHIFT ) {
return ( uint8_t ) ( ( ( ( ( ( ( ( ( ( uint8_t ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( uint8_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( uint8_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( uint8_t ) digits [ 0 ] ) ) ) ;
2015-12-02 06:07:31 +00:00
}
}
break ;
2015-06-28 09:38:55 +00:00
}
# endif
2016-08-28 23:25:45 +00:00
if ( sizeof ( uint8_t ) < = sizeof ( long ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( uint8_t , long , PyLong_AsLong ( x ) )
} else if ( sizeof ( uint8_t ) < = sizeof ( PY_LONG_LONG ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( uint8_t , PY_LONG_LONG , PyLong_AsLongLong ( x ) )
2015-06-28 09:38:55 +00:00
}
}
{
# if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
PyErr_SetString ( PyExc_RuntimeError ,
" _PyLong_AsByteArray() not available in PyPy, cannot convert large numbers " ) ;
# else
2016-08-28 23:25:45 +00:00
uint8_t val ;
2015-06-28 09:38:55 +00:00
PyObject * v = __Pyx_PyNumber_Int ( x ) ;
# if PY_MAJOR_VERSION < 3
if ( likely ( v ) & & ! PyLong_Check ( v ) ) {
PyObject * tmp = v ;
v = PyNumber_Long ( tmp ) ;
Py_DECREF ( tmp ) ;
}
# endif
if ( likely ( v ) ) {
int one = 1 ; int is_little = ( int ) * ( unsigned char * ) & one ;
unsigned char * bytes = ( unsigned char * ) & val ;
int ret = _PyLong_AsByteArray ( ( PyLongObject * ) v ,
bytes , sizeof ( val ) ,
is_little , ! is_unsigned ) ;
Py_DECREF ( v ) ;
if ( likely ( ! ret ) )
return val ;
}
# endif
2016-08-28 23:25:45 +00:00
return ( uint8_t ) - 1 ;
2015-06-28 09:38:55 +00:00
}
} else {
2016-08-28 23:25:45 +00:00
uint8_t val ;
2015-06-28 09:38:55 +00:00
PyObject * tmp = __Pyx_PyNumber_Int ( x ) ;
2016-08-28 23:25:45 +00:00
if ( ! tmp ) return ( uint8_t ) - 1 ;
val = __Pyx_PyInt_As_uint8_t ( tmp ) ;
2015-06-28 09:38:55 +00:00
Py_DECREF ( tmp ) ;
return val ;
}
raise_overflow :
PyErr_SetString ( PyExc_OverflowError ,
2016-08-28 23:25:45 +00:00
" value too large to convert to uint8_t " ) ;
return ( uint8_t ) - 1 ;
2015-06-28 09:38:55 +00:00
raise_neg_overflow :
PyErr_SetString ( PyExc_OverflowError ,
2016-08-28 23:25:45 +00:00
" can't convert negative value to uint8_t " ) ;
return ( uint8_t ) - 1 ;
2015-06-28 09:38:55 +00:00
}
static CYTHON_INLINE PyObject * __Pyx_PyInt_From_int ( int value ) {
2015-12-02 06:07:31 +00:00
const int neg_one = ( int ) - 1 , const_zero = ( int ) 0 ;
2015-06-28 09:38:55 +00:00
const int is_unsigned = neg_one > const_zero ;
if ( is_unsigned ) {
if ( sizeof ( int ) < sizeof ( long ) ) {
return PyInt_FromLong ( ( long ) value ) ;
} else if ( sizeof ( int ) < = sizeof ( unsigned long ) ) {
return PyLong_FromUnsignedLong ( ( unsigned long ) value ) ;
} else if ( sizeof ( int ) < = sizeof ( unsigned PY_LONG_LONG ) ) {
return PyLong_FromUnsignedLongLong ( ( unsigned PY_LONG_LONG ) value ) ;
}
} else {
if ( sizeof ( int ) < = sizeof ( long ) ) {
return PyInt_FromLong ( ( long ) value ) ;
} else if ( sizeof ( int ) < = sizeof ( PY_LONG_LONG ) ) {
return PyLong_FromLongLong ( ( PY_LONG_LONG ) value ) ;
}
}
{
int one = 1 ; int little = ( int ) * ( unsigned char * ) & one ;
unsigned char * bytes = ( unsigned char * ) & value ;
return _PyLong_FromByteArray ( bytes , sizeof ( int ) ,
little , ! is_unsigned ) ;
}
}
2016-08-28 23:25:45 +00:00
static CYTHON_INLINE PyObject * __Pyx_PyInt_From_long ( long value ) {
const long neg_one = ( long ) - 1 , const_zero = ( long ) 0 ;
2015-06-28 09:38:55 +00:00
const int is_unsigned = neg_one > const_zero ;
if ( is_unsigned ) {
2016-08-28 23:25:45 +00:00
if ( sizeof ( long ) < sizeof ( long ) ) {
2015-06-28 09:38:55 +00:00
return PyInt_FromLong ( ( long ) value ) ;
2016-08-28 23:25:45 +00:00
} else if ( sizeof ( long ) < = sizeof ( unsigned long ) ) {
2015-06-28 09:38:55 +00:00
return PyLong_FromUnsignedLong ( ( unsigned long ) value ) ;
2016-08-28 23:25:45 +00:00
} else if ( sizeof ( long ) < = sizeof ( unsigned PY_LONG_LONG ) ) {
2015-06-28 09:38:55 +00:00
return PyLong_FromUnsignedLongLong ( ( unsigned PY_LONG_LONG ) value ) ;
}
} else {
2016-08-28 23:25:45 +00:00
if ( sizeof ( long ) < = sizeof ( long ) ) {
2015-06-28 09:38:55 +00:00
return PyInt_FromLong ( ( long ) value ) ;
2016-08-28 23:25:45 +00:00
} else if ( sizeof ( long ) < = sizeof ( PY_LONG_LONG ) ) {
2015-06-28 09:38:55 +00:00
return PyLong_FromLongLong ( ( PY_LONG_LONG ) value ) ;
}
}
{
int one = 1 ; int little = ( int ) * ( unsigned char * ) & one ;
unsigned char * bytes = ( unsigned char * ) & value ;
2016-08-28 23:25:45 +00:00
return _PyLong_FromByteArray ( bytes , sizeof ( long ) ,
2015-06-28 09:38:55 +00:00
little , ! is_unsigned ) ;
}
}
2016-08-28 23:25:45 +00:00
static CYTHON_INLINE PyObject * __Pyx_PyInt_From_uint8_t ( uint8_t value ) {
const uint8_t neg_one = ( uint8_t ) - 1 , const_zero = ( uint8_t ) 0 ;
2015-06-28 09:38:55 +00:00
const int is_unsigned = neg_one > const_zero ;
if ( is_unsigned ) {
2016-08-28 23:25:45 +00:00
if ( sizeof ( uint8_t ) < sizeof ( long ) ) {
2015-06-28 09:38:55 +00:00
return PyInt_FromLong ( ( long ) value ) ;
2016-08-28 23:25:45 +00:00
} else if ( sizeof ( uint8_t ) < = sizeof ( unsigned long ) ) {
2015-06-28 09:38:55 +00:00
return PyLong_FromUnsignedLong ( ( unsigned long ) value ) ;
2016-08-28 23:25:45 +00:00
} else if ( sizeof ( uint8_t ) < = sizeof ( unsigned PY_LONG_LONG ) ) {
2015-06-28 09:38:55 +00:00
return PyLong_FromUnsignedLongLong ( ( unsigned PY_LONG_LONG ) value ) ;
}
} else {
2016-08-28 23:25:45 +00:00
if ( sizeof ( uint8_t ) < = sizeof ( long ) ) {
2015-06-28 09:38:55 +00:00
return PyInt_FromLong ( ( long ) value ) ;
2016-08-28 23:25:45 +00:00
} else if ( sizeof ( uint8_t ) < = sizeof ( PY_LONG_LONG ) ) {
2015-06-28 09:38:55 +00:00
return PyLong_FromLongLong ( ( PY_LONG_LONG ) value ) ;
}
}
{
int one = 1 ; int little = ( int ) * ( unsigned char * ) & one ;
unsigned char * bytes = ( unsigned char * ) & value ;
2016-08-28 23:25:45 +00:00
return _PyLong_FromByteArray ( bytes , sizeof ( uint8_t ) ,
2015-06-28 09:38:55 +00:00
little , ! is_unsigned ) ;
}
}
static CYTHON_INLINE long __Pyx_PyInt_As_long ( PyObject * x ) {
2015-12-02 06:07:31 +00:00
const long neg_one = ( long ) - 1 , const_zero = ( long ) 0 ;
2015-06-28 09:38:55 +00:00
const int is_unsigned = neg_one > const_zero ;
# if PY_MAJOR_VERSION < 3
if ( likely ( PyInt_Check ( x ) ) ) {
if ( sizeof ( long ) < sizeof ( long ) ) {
__PYX_VERIFY_RETURN_INT ( long , long , PyInt_AS_LONG ( x ) )
} else {
long val = PyInt_AS_LONG ( x ) ;
if ( is_unsigned & & unlikely ( val < 0 ) ) {
goto raise_neg_overflow ;
}
return ( long ) val ;
}
} else
# endif
if ( likely ( PyLong_Check ( x ) ) ) {
if ( is_unsigned ) {
2015-12-02 06:07:31 +00:00
# if CYTHON_USE_PYLONG_INTERNALS
const digit * digits = ( ( PyLongObject * ) x ) - > ob_digit ;
2015-06-28 09:38:55 +00:00
switch ( Py_SIZE ( x ) ) {
2015-12-02 06:07:31 +00:00
case 0 : return ( long ) 0 ;
case 1 : __PYX_VERIFY_RETURN_INT ( long , digit , digits [ 0 ] )
case 2 :
if ( 8 * sizeof ( long ) > 1 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 2 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( long , unsigned long , ( ( ( ( ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( long ) > = 2 * PyLong_SHIFT ) {
return ( long ) ( ( ( ( ( long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 0 ] ) ) ;
}
}
break ;
case 3 :
if ( 8 * sizeof ( long ) > 2 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 3 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( long , unsigned long , ( ( ( ( ( ( ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( long ) > = 3 * PyLong_SHIFT ) {
return ( long ) ( ( ( ( ( ( ( long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 0 ] ) ) ;
}
}
break ;
case 4 :
if ( 8 * sizeof ( long ) > 3 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 4 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( long , unsigned long , ( ( ( ( ( ( ( ( ( unsigned long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( long ) > = 4 * PyLong_SHIFT ) {
return ( long ) ( ( ( ( ( ( ( ( ( long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 0 ] ) ) ;
}
}
break ;
2015-06-28 09:38:55 +00:00
}
# endif
# if CYTHON_COMPILING_IN_CPYTHON
if ( unlikely ( Py_SIZE ( x ) < 0 ) ) {
goto raise_neg_overflow ;
}
# else
{
int result = PyObject_RichCompareBool ( x , Py_False , Py_LT ) ;
if ( unlikely ( result < 0 ) )
return ( long ) - 1 ;
if ( unlikely ( result = = 1 ) )
goto raise_neg_overflow ;
}
# endif
if ( sizeof ( long ) < = sizeof ( unsigned long ) ) {
2015-12-02 06:07:31 +00:00
__PYX_VERIFY_RETURN_INT_EXC ( long , unsigned long , PyLong_AsUnsignedLong ( x ) )
2015-06-28 09:38:55 +00:00
} else if ( sizeof ( long ) < = sizeof ( unsigned PY_LONG_LONG ) ) {
2015-12-02 06:07:31 +00:00
__PYX_VERIFY_RETURN_INT_EXC ( long , unsigned PY_LONG_LONG , PyLong_AsUnsignedLongLong ( x ) )
2015-06-28 09:38:55 +00:00
}
} else {
2015-12-02 06:07:31 +00:00
# if CYTHON_USE_PYLONG_INTERNALS
const digit * digits = ( ( PyLongObject * ) x ) - > ob_digit ;
2015-06-28 09:38:55 +00:00
switch ( Py_SIZE ( x ) ) {
2015-12-02 06:07:31 +00:00
case 0 : return ( long ) 0 ;
case - 1 : __PYX_VERIFY_RETURN_INT ( long , sdigit , - ( sdigit ) digits [ 0 ] )
case 1 : __PYX_VERIFY_RETURN_INT ( long , digit , + digits [ 0 ] )
case - 2 :
if ( 8 * sizeof ( long ) - 1 > 1 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 2 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( long , long , - ( long ) ( ( ( ( ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( long ) - 1 > 2 * PyLong_SHIFT ) {
return ( long ) ( ( ( long ) - 1 ) * ( ( ( ( ( long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 0 ] ) ) ) ;
}
}
break ;
case 2 :
if ( 8 * sizeof ( long ) > 1 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 2 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( long , unsigned long , ( ( ( ( ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( long ) - 1 > 2 * PyLong_SHIFT ) {
return ( long ) ( ( ( ( ( ( long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 0 ] ) ) ) ;
}
}
break ;
case - 3 :
if ( 8 * sizeof ( long ) - 1 > 2 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 3 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( long , long , - ( long ) ( ( ( ( ( ( ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( long ) - 1 > 3 * PyLong_SHIFT ) {
return ( long ) ( ( ( long ) - 1 ) * ( ( ( ( ( ( ( long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 0 ] ) ) ) ;
}
}
break ;
case 3 :
if ( 8 * sizeof ( long ) > 2 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 3 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( long , unsigned long , ( ( ( ( ( ( ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( long ) - 1 > 3 * PyLong_SHIFT ) {
return ( long ) ( ( ( ( ( ( ( ( long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 0 ] ) ) ) ;
}
}
break ;
case - 4 :
if ( 8 * sizeof ( long ) - 1 > 3 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 4 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( long , long , - ( long ) ( ( ( ( ( ( ( ( ( unsigned long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( long ) - 1 > 4 * PyLong_SHIFT ) {
return ( long ) ( ( ( long ) - 1 ) * ( ( ( ( ( ( ( ( ( long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 0 ] ) ) ) ;
}
}
break ;
case 4 :
if ( 8 * sizeof ( long ) > 3 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 4 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( long , unsigned long , ( ( ( ( ( ( ( ( ( unsigned long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( long ) - 1 > 4 * PyLong_SHIFT ) {
return ( long ) ( ( ( ( ( ( ( ( ( ( long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 0 ] ) ) ) ;
}
}
break ;
2015-06-28 09:38:55 +00:00
}
# endif
if ( sizeof ( long ) < = sizeof ( long ) ) {
2015-12-02 06:07:31 +00:00
__PYX_VERIFY_RETURN_INT_EXC ( long , long , PyLong_AsLong ( x ) )
2015-06-28 09:38:55 +00:00
} else if ( sizeof ( long ) < = sizeof ( PY_LONG_LONG ) ) {
2015-12-02 06:07:31 +00:00
__PYX_VERIFY_RETURN_INT_EXC ( long , PY_LONG_LONG , PyLong_AsLongLong ( x ) )
2015-06-28 09:38:55 +00:00
}
}
{
# if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
PyErr_SetString ( PyExc_RuntimeError ,
" _PyLong_AsByteArray() not available in PyPy, cannot convert large numbers " ) ;
# else
long val ;
PyObject * v = __Pyx_PyNumber_Int ( x ) ;
# if PY_MAJOR_VERSION < 3
if ( likely ( v ) & & ! PyLong_Check ( v ) ) {
PyObject * tmp = v ;
v = PyNumber_Long ( tmp ) ;
Py_DECREF ( tmp ) ;
}
# endif
if ( likely ( v ) ) {
int one = 1 ; int is_little = ( int ) * ( unsigned char * ) & one ;
unsigned char * bytes = ( unsigned char * ) & val ;
int ret = _PyLong_AsByteArray ( ( PyLongObject * ) v ,
bytes , sizeof ( val ) ,
is_little , ! is_unsigned ) ;
Py_DECREF ( v ) ;
if ( likely ( ! ret ) )
return val ;
}
# endif
return ( long ) - 1 ;
}
} else {
long val ;
PyObject * tmp = __Pyx_PyNumber_Int ( x ) ;
if ( ! tmp ) return ( long ) - 1 ;
val = __Pyx_PyInt_As_long ( tmp ) ;
Py_DECREF ( tmp ) ;
return val ;
}
raise_overflow :
PyErr_SetString ( PyExc_OverflowError ,
" value too large to convert to long " ) ;
return ( long ) - 1 ;
raise_neg_overflow :
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to long " ) ;
return ( long ) - 1 ;
}
static int __Pyx_check_binary_version ( void ) {
char ctversion [ 4 ] , rtversion [ 4 ] ;
PyOS_snprintf ( ctversion , 4 , " %d.%d " , PY_MAJOR_VERSION , PY_MINOR_VERSION ) ;
PyOS_snprintf ( rtversion , 4 , " %s " , Py_GetVersion ( ) ) ;
if ( ctversion [ 0 ] ! = rtversion [ 0 ] | | ctversion [ 2 ] ! = rtversion [ 2 ] ) {
char message [ 200 ] ;
PyOS_snprintf ( message , sizeof ( message ) ,
" compiletime version %s of module '%.100s' "
" does not match runtime version %s " ,
ctversion , __Pyx_MODULE_NAME , rtversion ) ;
return PyErr_WarnEx ( NULL , message , 1 ) ;
}
return 0 ;
}
static int __Pyx_InitStrings ( __Pyx_StringTabEntry * t ) {
while ( t - > p ) {
# if PY_MAJOR_VERSION < 3
if ( t - > is_unicode ) {
* t - > p = PyUnicode_DecodeUTF8 ( t - > s , t - > n - 1 , NULL ) ;
} else if ( t - > intern ) {
* t - > p = PyString_InternFromString ( t - > s ) ;
} else {
* t - > p = PyString_FromStringAndSize ( t - > s , t - > n - 1 ) ;
}
# else
if ( t - > is_unicode | t - > is_str ) {
if ( t - > intern ) {
* t - > p = PyUnicode_InternFromString ( t - > s ) ;
} else if ( t - > encoding ) {
* t - > p = PyUnicode_Decode ( t - > s , t - > n - 1 , t - > encoding , NULL ) ;
} else {
* t - > p = PyUnicode_FromStringAndSize ( t - > s , t - > n - 1 ) ;
}
} else {
* t - > p = PyBytes_FromStringAndSize ( t - > s , t - > n - 1 ) ;
}
# endif
if ( ! * t - > p )
return - 1 ;
+ + t ;
}
return 0 ;
}
static CYTHON_INLINE PyObject * __Pyx_PyUnicode_FromString ( const char * c_str ) {
return __Pyx_PyUnicode_FromStringAndSize ( c_str , ( Py_ssize_t ) strlen ( c_str ) ) ;
}
static CYTHON_INLINE char * __Pyx_PyObject_AsString ( PyObject * o ) {
Py_ssize_t ignore ;
return __Pyx_PyObject_AsStringAndSize ( o , & ignore ) ;
}
static CYTHON_INLINE char * __Pyx_PyObject_AsStringAndSize ( PyObject * o , Py_ssize_t * length ) {
2015-12-02 06:07:31 +00:00
# if CYTHON_COMPILING_IN_CPYTHON && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT)
2015-06-28 09:38:55 +00:00
if (
# if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
__Pyx_sys_getdefaultencoding_not_ascii & &
# endif
PyUnicode_Check ( o ) ) {
# if PY_VERSION_HEX < 0x03030000
char * defenc_c ;
PyObject * defenc = _PyUnicode_AsDefaultEncodedString ( o , NULL ) ;
if ( ! defenc ) return NULL ;
defenc_c = PyBytes_AS_STRING ( defenc ) ;
# if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
{
char * end = defenc_c + PyBytes_GET_SIZE ( defenc ) ;
char * c ;
for ( c = defenc_c ; c < end ; c + + ) {
if ( ( unsigned char ) ( * c ) > = 128 ) {
PyUnicode_AsASCIIString ( o ) ;
return NULL ;
}
}
}
# endif
* length = PyBytes_GET_SIZE ( defenc ) ;
return defenc_c ;
# else
if ( __Pyx_PyUnicode_READY ( o ) = = - 1 ) return NULL ;
# if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
if ( PyUnicode_IS_ASCII ( o ) ) {
* length = PyUnicode_GET_LENGTH ( o ) ;
return PyUnicode_AsUTF8 ( o ) ;
} else {
PyUnicode_AsASCIIString ( o ) ;
return NULL ;
}
# else
return PyUnicode_AsUTF8AndSize ( o , length ) ;
# endif
# endif
} else
# endif
2015-12-02 06:07:31 +00:00
# if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE))
2015-06-28 09:38:55 +00:00
if ( PyByteArray_Check ( o ) ) {
* length = PyByteArray_GET_SIZE ( o ) ;
return PyByteArray_AS_STRING ( o ) ;
} else
# endif
{
char * result ;
int r = PyBytes_AsStringAndSize ( o , & result , length ) ;
if ( unlikely ( r < 0 ) ) {
return NULL ;
} else {
return result ;
}
}
}
static CYTHON_INLINE int __Pyx_PyObject_IsTrue ( PyObject * x ) {
int is_true = x = = Py_True ;
if ( is_true | ( x = = Py_False ) | ( x = = Py_None ) ) return is_true ;
else return PyObject_IsTrue ( x ) ;
}
static CYTHON_INLINE PyObject * __Pyx_PyNumber_Int ( PyObject * x ) {
PyNumberMethods * m ;
const char * name = NULL ;
PyObject * res = NULL ;
# if PY_MAJOR_VERSION < 3
if ( PyInt_Check ( x ) | | PyLong_Check ( x ) )
# else
if ( PyLong_Check ( x ) )
# endif
2015-12-02 06:07:31 +00:00
return __Pyx_NewRef ( x ) ;
2015-06-28 09:38:55 +00:00
m = Py_TYPE ( x ) - > tp_as_number ;
# if PY_MAJOR_VERSION < 3
if ( m & & m - > nb_int ) {
name = " int " ;
res = PyNumber_Int ( x ) ;
}
else if ( m & & m - > nb_long ) {
name = " long " ;
res = PyNumber_Long ( x ) ;
}
# else
if ( m & & m - > nb_int ) {
name = " int " ;
res = PyNumber_Long ( x ) ;
}
# endif
if ( res ) {
# if PY_MAJOR_VERSION < 3
if ( ! PyInt_Check ( res ) & & ! PyLong_Check ( res ) ) {
# else
if ( ! PyLong_Check ( res ) ) {
# endif
PyErr_Format ( PyExc_TypeError ,
" __%.4s__ returned non-%.4s (type %.200s) " ,
name , name , Py_TYPE ( res ) - > tp_name ) ;
Py_DECREF ( res ) ;
return NULL ;
}
}
else if ( ! PyErr_Occurred ( ) ) {
PyErr_SetString ( PyExc_TypeError ,
" an integer is required " ) ;
}
return res ;
}
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t ( PyObject * b ) {
Py_ssize_t ival ;
PyObject * x ;
# if PY_MAJOR_VERSION < 3
2015-12-02 06:07:31 +00:00
if ( likely ( PyInt_CheckExact ( b ) ) ) {
if ( sizeof ( Py_ssize_t ) > = sizeof ( long ) )
return PyInt_AS_LONG ( b ) ;
else
return PyInt_AsSsize_t ( x ) ;
}
2015-06-28 09:38:55 +00:00
# endif
if ( likely ( PyLong_CheckExact ( b ) ) ) {
2015-12-02 06:07:31 +00:00
# if CYTHON_USE_PYLONG_INTERNALS
const digit * digits = ( ( PyLongObject * ) b ) - > ob_digit ;
const Py_ssize_t size = Py_SIZE ( b ) ;
if ( likely ( __Pyx_sst_abs ( size ) < = 1 ) ) {
ival = likely ( size ) ? digits [ 0 ] : 0 ;
if ( size = = - 1 ) ival = - ival ;
return ival ;
} else {
switch ( size ) {
case 2 :
if ( 8 * sizeof ( Py_ssize_t ) > 2 * PyLong_SHIFT ) {
return ( Py_ssize_t ) ( ( ( ( ( size_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( size_t ) digits [ 0 ] ) ) ;
}
break ;
case - 2 :
if ( 8 * sizeof ( Py_ssize_t ) > 2 * PyLong_SHIFT ) {
return - ( Py_ssize_t ) ( ( ( ( ( size_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( size_t ) digits [ 0 ] ) ) ;
}
break ;
case 3 :
if ( 8 * sizeof ( Py_ssize_t ) > 3 * PyLong_SHIFT ) {
return ( Py_ssize_t ) ( ( ( ( ( ( ( size_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( size_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( size_t ) digits [ 0 ] ) ) ;
}
break ;
case - 3 :
if ( 8 * sizeof ( Py_ssize_t ) > 3 * PyLong_SHIFT ) {
return - ( Py_ssize_t ) ( ( ( ( ( ( ( size_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( size_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( size_t ) digits [ 0 ] ) ) ;
}
break ;
case 4 :
if ( 8 * sizeof ( Py_ssize_t ) > 4 * PyLong_SHIFT ) {
return ( Py_ssize_t ) ( ( ( ( ( ( ( ( ( size_t ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( size_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( size_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( size_t ) digits [ 0 ] ) ) ;
}
break ;
case - 4 :
if ( 8 * sizeof ( Py_ssize_t ) > 4 * PyLong_SHIFT ) {
return - ( Py_ssize_t ) ( ( ( ( ( ( ( ( ( size_t ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( size_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( size_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( size_t ) digits [ 0 ] ) ) ;
}
break ;
}
}
2015-06-28 09:38:55 +00:00
# endif
return PyLong_AsSsize_t ( b ) ;
}
x = PyNumber_Index ( b ) ;
if ( ! x ) return - 1 ;
ival = PyInt_AsSsize_t ( x ) ;
Py_DECREF ( x ) ;
return ival ;
}
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t ( size_t ival ) {
return PyInt_FromSize_t ( ival ) ;
}
# endif /* Py_PYTHON_H */