Skip to content

Commit 7d6bdce

Browse files
committed
Use more explicit types for video and audio buffers
1 parent 47160fd commit 7d6bdce

3 files changed

Lines changed: 17 additions & 14 deletions

File tree

libgambatte_ext/_libgambatte.pxd

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
from libcpp.string cimport string
2+
from libc.stdint cimport uint32_t
23

34
cdef extern from "gambatte.h" namespace "gambatte":
45
cdef cppclass GB:
56
GB() except +;
67
int load(string& romfile, unsigned flags);
78
ptrdiff_t runFor(
8-
unsigned int *videoBuf,
9+
uint32_t *videoBuf,
910
ptrdiff_t pitch,
10-
unsigned int *audioBuf,
11+
uint32_t *audioBuf,
1112
size_t& samples,
1213
);
1314
void setInputGetter(GetInput *getInput);
@@ -17,7 +18,7 @@ cdef extern from "gambatte.h" namespace "gambatte":
1718
void selectState(int state);
1819
int currentState();
1920
int loadState();
20-
int saveState(unsigned int *videoBuf, ptrdiff_t pitch);
21+
int saveState(uint32_t *videoBuf, ptrdiff_t pitch);
2122

2223

2324
cdef extern from "input.h" namespace "gambatte":

libgambatte_ext/libgambatte.pyx

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
# cython: language_level=3
44

55
from libcpp.string cimport string
6+
from libc.stdint cimport uint32_t, int16_t
67
from _libgambatte cimport GB as C_GB
78
from _libgambatte cimport GetInput as C_GetInput
89

@@ -19,13 +20,13 @@ cdef class GB:
1920

2021
def run_for(
2122
self,
22-
unsigned int[:, ::1] video,
23+
uint32_t[:, ::1] video,
2324
ptrdiff_t pitch,
24-
short[:, ::1] audio,
25+
int16_t[:, ::1] audio,
2526
size_t samples,
2627
):
27-
cdef unsigned int* video_buffer = &video[0, 0]
28-
cdef unsigned int* audio_buffer = <unsigned int*>&audio[0, 0]
28+
cdef uint32_t* video_buffer = &video[0, 0]
29+
cdef uint32_t* audio_buffer = <uint32_t*>&audio[0, 0]
2930
result = self.c_gb.runFor(video_buffer, pitch, audio_buffer, samples)
3031
return result, samples
3132

@@ -46,10 +47,10 @@ cdef class GB:
4647

4748
def save_state(
4849
self,
49-
unsigned int[:, ::1] video,
50+
uint32_t[:, ::1] video,
5051
ptrdiff_t pitch,
5152
):
5253
if video is None:
5354
return self.c_gb.saveState(NULL, 0)
54-
cdef unsigned int* video_buffer = &video[0, 0]
55+
cdef uint32_t* video_buffer = &video[0, 0]
5556
return self.c_gb.saveState(video_buffer, pitch)

termblit_ext/termblit.pyx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from libc.stdio cimport sprintf
44
from libc.stdlib cimport malloc, free
5+
from libc.stdint cimport uint32_t
56

67
cdef char* move_absolute(char* buff, int x, int y):
78
buff += sprintf(buff, "\033[%d;%dH", x, y)
@@ -142,18 +143,18 @@ cdef char* move_from_to(
142143

143144

144145
def blit(
145-
unsigned int[:, ::1] image,
146-
unsigned int[:, ::1] last,
146+
uint32_t[:, ::1] image,
147+
uint32_t[:, ::1] last,
147148
int refx, int refy, int width, int height,
148149
int color_mode,
149150
):
150151

151152
cdef int current_x = refx
152153
cdef int current_y = refy
153-
cdef int current_fg = -1
154-
cdef int current_bg = -2
154+
cdef uint32_t current_fg = -1
155+
cdef uint32_t current_bg = -2
155156
cdef int row_index, column_index
156-
cdef int color1, color2
157+
cdef uint32_t color1, color2
157158
cdef int new_x, new_y
158159
cdef int invert_print
159160
cdef int image_height = image.shape[0]

0 commit comments

Comments
 (0)