@@ -53,8 +53,11 @@ def get_ffi_lib_path():
5353
5454
5555ffi_lib = ctypes .CDLL (get_ffi_lib_path ())
56+ ffi_cb_fnc = ctypes .CFUNCTYPE (None , ctypes .POINTER (ctypes .c_uint8 ), ctypes .c_size_t )
5657
5758# C function types
59+ ffi_lib .livekit_ffi_initialize .argtypes = [ffi_cb_fnc , ctypes .c_bool ]
60+
5861ffi_lib .livekit_ffi_request .argtypes = [
5962 ctypes .POINTER (ctypes .c_ubyte ),
6063 ctypes .c_size_t ,
@@ -116,7 +119,7 @@ def unsubscribe(self, queue: Queue[T]) -> None:
116119 break
117120
118121
119- @ctypes .CFUNCTYPE (ctypes . c_void_p , ctypes .POINTER (ctypes .c_uint8 ), ctypes .c_size_t )
122+ @ctypes .CFUNCTYPE (None , ctypes .POINTER (ctypes .c_uint8 ), ctypes .c_size_t )
120123def ffi_event_callback (
121124 data_ptr : ctypes .POINTER (ctypes .c_uint8 ), # type: ignore
122125 data_len : ctypes .c_size_t ,
@@ -162,12 +165,7 @@ def __init__(self) -> None:
162165 self ._lock = threading .RLock ()
163166 self ._queue = FfiQueue [proto_ffi .FfiEvent ]()
164167
165- # initialize request
166- req = proto_ffi .FfiRequest ()
167- cb_callback = int (ctypes .cast (ffi_event_callback , ctypes .c_void_p ).value ) # type: ignore
168- req .initialize .event_callback_ptr = cb_callback
169- req .initialize .capture_logs = True # capture logs on Python
170- self .request (req )
168+ ffi_lib .livekit_ffi_initialize (ffi_event_callback , True )
171169
172170 @property
173171 def queue (self ) -> FfiQueue [proto_ffi .FfiEvent ]:
0 commit comments