File tree Expand file tree Collapse file tree 2 files changed +15
-5
lines changed
buildconfig/stubs/pygame/_sdl2
src_c/cython/pygame/_sdl2 Expand file tree Collapse file tree 2 files changed +15
-5
lines changed Original file line number Diff line number Diff line change 11from collections .abc import Callable
2+ from typing import Optional
23
34AUDIO_U8 : int
45AUDIO_S8 : int
@@ -25,7 +26,7 @@ def get_audio_device_names(iscapture: bool = False) -> list[str]: ...
2526class AudioDevice :
2627 def __init__ (
2728 self ,
28- devicename : str ,
29+ devicename : Optional [ str ] ,
2930 iscapture : bool ,
3031 frequency : int ,
3132 audioformat : int ,
@@ -39,7 +40,7 @@ class AudioDevice:
3940 @property
4041 def deviceid (self ) -> int : ...
4142 @property
42- def devicename (self ) -> str : ...
43+ def devicename (self ) -> Optional [ str ] : ...
4344 @property
4445 def callback (self ) -> Callable [[AudioDevice , memoryview ], None ]: ...
4546 @property
Original file line number Diff line number Diff line change @@ -131,8 +131,8 @@ cdef class AudioDevice:
131131 memset(& self .desired, 0 , sizeof(SDL_AudioSpec))
132132 self ._iscapture = iscapture
133133 self ._callback = callback
134- if not isinstance (devicename, str ):
135- raise TypeError (" devicename must be a string" )
134+ if devicename is not None and not isinstance (devicename, str ):
135+ raise TypeError (" devicename must be a string or None " )
136136 self ._devicename = devicename
137137
138138 self .desired.freq = frequency;
@@ -142,8 +142,17 @@ cdef class AudioDevice:
142142 self .desired.callback = < SDL_AudioCallback> recording_cb;
143143 self .desired.userdata = < void * > self
144144
145+ cdef bytes devicename_bytes
146+ cdef const char * devicename_ptr
147+
148+ if self ._devicename is None :
149+ devicename_ptr = NULL
150+ else :
151+ devicename_bytes = self ._devicename.encode(" utf-8" )
152+ devicename_ptr = devicename_bytes
153+
145154 self ._deviceid = SDL_OpenAudioDevice(
146- self ._devicename.encode( " utf-8 " ) ,
155+ devicename_ptr ,
147156 self ._iscapture,
148157 & self .desired,
149158 & self .obtained,
You can’t perform that action at this time.
0 commit comments