|
|
@@ -72,6 +72,8 @@ jack_unique_t = c_uint64 |
|
|
|
jack_position_bits_t = c_enum # Optional struct jack_position_t fields. |
|
|
|
jack_transport_bits_t = c_enum # Optional struct jack_transport_info_t fields |
|
|
|
jack_midi_data_t = c_uchar |
|
|
|
jack_session_event_type_t = c_enum # JackSessionEventType |
|
|
|
jack_session_flags_t = c_enum # JackSessionFlags |
|
|
|
|
|
|
|
# enum JackOptions |
|
|
|
JackNullOption = 0x00 |
|
|
@@ -132,6 +134,15 @@ JackTransportLoop = 0x4 |
|
|
|
JackTransportSMPTE = 0x8 |
|
|
|
JackTransportBBT = 0x10 |
|
|
|
|
|
|
|
# enum JackSessionEventType |
|
|
|
JackSessionSave = 1 |
|
|
|
JackSessionSaveAndQuit = 2 |
|
|
|
JackSessionSaveTemplate = 3 |
|
|
|
|
|
|
|
# enum JackSessionFlags |
|
|
|
JackSessionSaveError = 0x01 |
|
|
|
JackSessionNeedTerminal = 0x02 |
|
|
|
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------- |
|
|
|
# Structs |
|
|
|
|
|
|
@@ -193,6 +204,45 @@ class jack_midi_event_t(Structure): |
|
|
|
("buffer", POINTER(jack_midi_data_t)) |
|
|
|
] |
|
|
|
|
|
|
|
class jack_session_event_t(Structure): |
|
|
|
_fields_ = [ |
|
|
|
("type", jack_session_event_type_t), |
|
|
|
("session_dir", c_char_p), |
|
|
|
("client_uuid", c_char_p), |
|
|
|
("command_line", c_char_p), |
|
|
|
("flags", jack_session_flags_t), |
|
|
|
("future", c_uint32) |
|
|
|
] |
|
|
|
|
|
|
|
class jack_session_command_t(Structure): |
|
|
|
_fields_ = [ |
|
|
|
("uuid", c_char_p), |
|
|
|
("client_name", c_char_p), |
|
|
|
("command", c_char_p), |
|
|
|
("flags", jack_session_flags_t) |
|
|
|
] |
|
|
|
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------- |
|
|
|
# Callbacks |
|
|
|
|
|
|
|
JackLatencyCallback = CFUNCTYPE(None, jack_latency_callback_mode_t, c_void_p) |
|
|
|
JackProcessCallback = CFUNCTYPE(c_int, jack_nframes_t, c_void_p) |
|
|
|
JackThreadInitCallback = CFUNCTYPE(None, c_void_p) |
|
|
|
JackGraphOrderCallback = CFUNCTYPE(c_int, c_void_p) |
|
|
|
JackXRunCallback = CFUNCTYPE(c_int, c_void_p) |
|
|
|
JackBufferSizeCallback = CFUNCTYPE(c_int, jack_nframes_t, c_void_p) |
|
|
|
JackSampleRateCallback = CFUNCTYPE(c_int, jack_nframes_t, c_void_p) |
|
|
|
JackPortRegistrationCallback = CFUNCTYPE(None, jack_port_id_t, c_int, c_void_p) |
|
|
|
JackClientRegistrationCallback = CFUNCTYPE(None, c_char_p, c_int, c_void_p) |
|
|
|
JackPortConnectCallback = CFUNCTYPE(None, jack_port_id_t, jack_port_id_t, c_int, c_void_p) |
|
|
|
JackFreewheelCallback = CFUNCTYPE(None, c_int, c_void_p) |
|
|
|
JackThreadCallback = CFUNCTYPE(c_void_p, c_void_p) |
|
|
|
JackShutdownCallback = CFUNCTYPE(None, c_void_p) |
|
|
|
JackInfoShutdownCallback = CFUNCTYPE(None, jack_status_t, c_char_p, c_void_p) |
|
|
|
JackSyncCallback = CFUNCTYPE(c_int, jack_transport_state_t, POINTER(jack_position_t), c_void_p) |
|
|
|
JackTimebaseCallback = CFUNCTYPE(None, jack_transport_state_t, jack_nframes_t, POINTER(jack_position_t), c_int, c_void_p) |
|
|
|
JackSessionCallback = CFUNCTYPE(None, jack_session_event_t, c_void_p) |
|
|
|
|
|
|
|
# --------------------------------------------------------------------------------------------------------------------- |
|
|
|
# Functions |
|
|
|
|
|
|
@@ -269,15 +319,79 @@ def cycle_signal(client, status): |
|
|
|
jacklib.jack_cycle_signal.restype = None |
|
|
|
jacklib.jack_cycle_signal(client, status) |
|
|
|
|
|
|
|
#def set_process_thread(client, thread_callback, arg=None): |
|
|
|
#global ThreadCallback |
|
|
|
#ThreadCallback = CFUNCTYPE(c_int, c_void_p)(thread_callback) |
|
|
|
#jacklib.jack_set_process_thread.restype = c_int |
|
|
|
#return jacklib.jack_set_process_thread(client) |
|
|
|
def set_process_thread(client, thread_callback, arg): |
|
|
|
jacklib.jack_set_process_thread.argtypes = [POINTER(jack_client_t), JackThreadCallback, c_void_p] |
|
|
|
jacklib.jack_set_process_thread.restype = c_int |
|
|
|
return jacklib.jack_set_process_thread(client, JackThreadCallback(thread_callback), arg) |
|
|
|
|
|
|
|
|
|
|
|
# Client Callbacks |
|
|
|
|
|
|
|
def set_thread_init_callback(client, thread_init_callback, arg): |
|
|
|
jacklib.jack_set_thread_init_callback.argtypes = [POINTER(jack_client_t), JackThreadInitCallback, c_void_p] |
|
|
|
jacklib.jack_set_thread_init_callback.restype = c_int |
|
|
|
return jacklib.jack_set_thread_init_callback(client, JackThreadInitCallback(thread_init_callback), arg) |
|
|
|
|
|
|
|
def on_shutdown(client, function, arg): |
|
|
|
jacklib.jack_on_shutdown.argtypes = [POINTER(jack_client_t), JackShutdownCallback, c_void_p] |
|
|
|
jacklib.jack_on_shutdown.restype = None |
|
|
|
jacklib.jack_on_shutdown(client, JackShutdownCallback(function), arg) |
|
|
|
|
|
|
|
def on_info_shutdown(client, function, arg): |
|
|
|
jacklib.jack_on_info_shutdown.argtypes = [POINTER(jack_client_t), JackInfoShutdownCallback, c_void_p] |
|
|
|
jacklib.jack_on_info_shutdown.restype = None |
|
|
|
jacklib.jack_on_info_shutdown(client, JackInfoShutdownCallback(function), arg) |
|
|
|
|
|
|
|
def set_process_callback(client, process_callback, arg): |
|
|
|
jacklib.jack_set_process_callback.argtypes = [POINTER(jack_client_t), JackProcessCallback, c_void_p] |
|
|
|
jacklib.jack_set_process_callback.restype = c_int |
|
|
|
return jacklib.jack_set_process_callback(client, JackProcessCallback(process_callback), arg) |
|
|
|
|
|
|
|
def set_freewheel_callback(client, freewheel_callback, arg): |
|
|
|
jacklib.jack_set_freewheel_callback.argtypes = [POINTER(jack_client_t), JackFreewheelCallback, c_void_p] |
|
|
|
jacklib.jack_set_freewheel_callback.restype = c_int |
|
|
|
return jacklib.jack_set_freewheel_callback(client, JackFreewheelCallback(freewheel_callback), arg) |
|
|
|
|
|
|
|
def set_buffer_size_callback(client, bufsize_callback, arg): |
|
|
|
jacklib.jack_set_buffer_size_callback.argtypes = [POINTER(jack_client_t), JackBufferSizeCallback, c_void_p] |
|
|
|
jacklib.jack_set_buffer_size_callback.restype = c_int |
|
|
|
return jacklib.jack_set_buffer_size_callback(client, JackBufferSizeCallback(bufsize_callback), arg) |
|
|
|
|
|
|
|
def set_sample_rate_callback(client, srate_callback, arg): |
|
|
|
jacklib.jack_set_sample_rate_callback.argtypes = [POINTER(jack_client_t), JackSampleRateCallback, c_void_p] |
|
|
|
jacklib.jack_set_sample_rate_callback.restype = c_int |
|
|
|
return jacklib.jack_set_sample_rate_callback(client, JackSampleRateCallback(srate_callback), arg) |
|
|
|
|
|
|
|
def set_client_registration_callback(client, registration_callback, arg): |
|
|
|
jacklib.jack_set_client_registration_callback.argtypes = [POINTER(jack_client_t), JackClientRegistrationCallback, c_void_p] |
|
|
|
jacklib.jack_set_client_registration_callback.restype = c_int |
|
|
|
return jacklib.jack_set_client_registration_callback(client, JackClientRegistrationCallback(registration_callback), arg) |
|
|
|
|
|
|
|
def set_port_registration_callback(client, registration_callback, arg): |
|
|
|
jacklib.jack_set_port_registration_callback.argtypes = [POINTER(jack_client_t), JackPortRegistrationCallback, c_void_p] |
|
|
|
jacklib.jack_set_port_registration_callback.restype = c_int |
|
|
|
return jacklib.jack_set_port_registration_callback(client, JackPortRegistrationCallback(registration_callback), arg) |
|
|
|
|
|
|
|
def set_port_connect_callback(client, connect_callback, arg): |
|
|
|
jacklib.jack_set_port_connect_callback.argtypes = [POINTER(jack_client_t), JackPortConnectCallback, c_void_p] |
|
|
|
jacklib.jack_set_port_connect_callback.restype = c_int |
|
|
|
return jacklib.jack_set_port_connect_callback(client, JackPortConnectCallback(connect_callback), arg) |
|
|
|
|
|
|
|
def set_graph_order_callback(client, graph_callback, arg): |
|
|
|
jacklib.jack_set_graph_order_callback.argtypes = [POINTER(jack_client_t), JackGraphOrderCallback, c_void_p] |
|
|
|
jacklib.jack_set_graph_order_callback.restype = c_int |
|
|
|
return jacklib.jack_set_graph_order_callback(client, JackGraphOrderCallback(graph_callback), arg) |
|
|
|
|
|
|
|
def set_xrun_callback(client, xrun_callback, arg): |
|
|
|
jacklib.jack_set_xrun_callback.argtypes = [POINTER(jack_client_t), JackXRunCallback, c_void_p] |
|
|
|
jacklib.jack_set_xrun_callback.restype = c_int |
|
|
|
return jacklib.jack_set_xrun_callback(client, JackXRunCallback(xrun_callback), arg) |
|
|
|
|
|
|
|
def set_latency_callback(client, latency_callback, arg): |
|
|
|
jacklib.jack_set_latency_callback.argtypes = [POINTER(jack_client_t), JackLatencyCallback, c_void_p] |
|
|
|
jacklib.jack_set_latency_callback.restype = c_int |
|
|
|
return jacklib.jack_set_latency_callback(client, JackLatencyCallback(latency_callback), arg) |
|
|
|
|
|
|
|
|
|
|
|
# Server Control |
|
|
|
|
|
|
@@ -563,83 +677,157 @@ def free(ptr): |
|
|
|
jacklib.jack_free.restype = None |
|
|
|
return jacklib.jack_free(ptr) |
|
|
|
|
|
|
|
#int jack_release_timebase (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; |
|
|
|
#int jack_set_sync_callback (jack_client_t *client, |
|
|
|
#JackSyncCallback sync_callback, |
|
|
|
#void *arg) JACK_OPTIONAL_WEAK_EXPORT; |
|
|
|
#int jack_set_sync_timeout (jack_client_t *client, |
|
|
|
#jack_time_t timeout) JACK_OPTIONAL_WEAK_EXPORT; |
|
|
|
#int jack_set_timebase_callback (jack_client_t *client, |
|
|
|
#int conditional, |
|
|
|
#JackTimebaseCallback timebase_callback, |
|
|
|
#void *arg) JACK_OPTIONAL_WEAK_EXPORT; |
|
|
|
#int jack_transport_locate (jack_client_t *client, |
|
|
|
#jack_nframes_t frame) JACK_OPTIONAL_WEAK_EXPORT; |
|
|
|
#jack_transport_state_t jack_transport_query (const jack_client_t *client, |
|
|
|
#jack_position_t *pos) JACK_OPTIONAL_WEAK_EXPORT; |
|
|
|
#jack_nframes_t jack_get_current_transport_frame (const jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; |
|
|
|
#int jack_transport_reposition (jack_client_t *client, |
|
|
|
#const jack_position_t *pos) JACK_OPTIONAL_WEAK_EXPORT; |
|
|
|
#void jack_transport_start (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; |
|
|
|
#void jack_transport_stop (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; |
|
|
|
#void jack_get_transport_info (jack_client_t *client, |
|
|
|
#jack_transport_info_t *tinfo) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; |
|
|
|
#void jack_set_transport_info (jack_client_t *client, |
|
|
|
#jack_transport_info_t *tinfo) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; |
|
|
|
|
|
|
|
#jack_nframes_t |
|
|
|
#jack_midi_get_event_count(void* port_buffer) JACK_OPTIONAL_WEAK_EXPORT; |
|
|
|
#int |
|
|
|
#jack_midi_event_get(jack_midi_event_t *event, |
|
|
|
#void *port_buffer, |
|
|
|
#uint32_t event_index) JACK_OPTIONAL_WEAK_EXPORT; |
|
|
|
#void |
|
|
|
#jack_midi_clear_buffer(void *port_buffer) JACK_OPTIONAL_WEAK_EXPORT; |
|
|
|
#size_t |
|
|
|
#jack_midi_max_event_size(void* port_buffer) JACK_OPTIONAL_WEAK_EXPORT; |
|
|
|
#jack_midi_data_t* |
|
|
|
#jack_midi_event_reserve(void *port_buffer, |
|
|
|
#jack_nframes_t time, |
|
|
|
#size_t data_size) JACK_OPTIONAL_WEAK_EXPORT; |
|
|
|
#int |
|
|
|
#jack_midi_event_write(void *port_buffer, |
|
|
|
#jack_nframes_t time, |
|
|
|
#const jack_midi_data_t *data, |
|
|
|
#size_t data_size) JACK_OPTIONAL_WEAK_EXPORT; |
|
|
|
#uint32_t |
|
|
|
#jack_midi_get_lost_event_count(void *port_buffer) JACK_OPTIONAL_WEAK_EXPORT; |
|
|
|
|
|
|
|
#typedef void (*JackLatencyCallback)(jack_latency_callback_mode_t mode, void *arg); |
|
|
|
#typedef int (*JackProcessCallback)(jack_nframes_t nframes, void *arg); |
|
|
|
#typedef void (*JackThreadInitCallback)(void *arg); |
|
|
|
#typedef int (*JackGraphOrderCallback)(void *arg); |
|
|
|
#typedef int (*JackXRunCallback)(void *arg); |
|
|
|
#typedef int (*JackBufferSizeCallback)(jack_nframes_t nframes, void *arg); |
|
|
|
#typedef int (*JackSampleRateCallback)(jack_nframes_t nframes, void *arg); |
|
|
|
#typedef void (*JackPortRegistrationCallback)(jack_port_id_t port, int register, void *arg); |
|
|
|
#typedef void (*JackClientRegistrationCallback)(const char* name, int register, void *arg); |
|
|
|
#typedef void (*JackPortConnectCallback)(jack_port_id_t a, jack_port_id_t b, int connect, void* arg); |
|
|
|
#typedef void (*JackFreewheelCallback)(int starting, void *arg); |
|
|
|
#typedef void *(*JackThreadCallback)(void* arg); |
|
|
|
#typedef void (*JackShutdownCallback)(void *arg); |
|
|
|
#typedef void (*JackInfoShutdownCallback)(jack_status_t code, const char* reason, void *arg); |
|
|
|
#typedef int (*JackSyncCallback)(jack_transport_state_t state, |
|
|
|
#jack_position_t *pos, |
|
|
|
#void *arg); |
|
|
|
#typedef void (*JackTimebaseCallback)(jack_transport_state_t state, |
|
|
|
#jack_nframes_t nframes, |
|
|
|
#jack_position_t *pos, |
|
|
|
#int new_pos, |
|
|
|
#void *arg); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Transport |
|
|
|
|
|
|
|
def release_timebase(client): |
|
|
|
jacklib.jack_release_timebase.argtypes = [POINTER(jack_client_t)] |
|
|
|
jacklib.jack_release_timebase.restype = c_int |
|
|
|
return jacklib.jack_release_timebase(client) |
|
|
|
|
|
|
|
def set_sync_callback(client, sync_callback, arg): |
|
|
|
jacklib.jack_set_sync_callback.argtypes = [POINTER(jack_client_t), JackSyncCallback, c_void_p] |
|
|
|
jacklib.jack_set_sync_callback.restype = c_int |
|
|
|
return jacklib.jack_set_sync_callback(client, JackSyncCallback(sync_callback), arg) |
|
|
|
|
|
|
|
def set_sync_timeout(client, timeout): |
|
|
|
jacklib.jack_set_sync_timeout.argtypes = [POINTER(jack_client_t), jack_time_t] |
|
|
|
jacklib.jack_set_sync_timeout.restype = c_int |
|
|
|
return jacklib.jack_set_sync_timeout(client, timeout) |
|
|
|
|
|
|
|
def set_timebase_callback(client, conditional, timebase_callback, arg): |
|
|
|
jacklib.jack_set_timebase_callback.argtypes = [POINTER(jack_client_t), c_int, JackTimebaseCallback, c_void_p] |
|
|
|
jacklib.jack_set_timebase_callback.restype = c_int |
|
|
|
return jacklib.jack_set_timebase_callback(client, conditional, JackTimebaseCallback(timebase_callback), arg) |
|
|
|
|
|
|
|
def transport_locate(client, frame): |
|
|
|
jacklib.jack_transport_locate.argtypes = [POINTER(jack_client_t), jack_nframes_t] |
|
|
|
jacklib.jack_transport_locate.restype = c_int |
|
|
|
return jacklib.jack_transport_locate(client, frame) |
|
|
|
|
|
|
|
def transport_query(client, pos): |
|
|
|
jacklib.jack_transport_query.argtypes = [POINTER(jack_client_t), POINTER(jack_position_t)] |
|
|
|
jacklib.jack_transport_query.restype = jack_transport_state_t |
|
|
|
return jacklib.jack_transport_query(client, pos) |
|
|
|
|
|
|
|
def get_current_transport_frame(client): |
|
|
|
jacklib.jack_get_current_transport_frame.argtypes = [POINTER(jack_client_t)] |
|
|
|
jacklib.jack_get_current_transport_frame.restype = jack_nframes_t |
|
|
|
return jacklib.jack_get_current_transport_frame(client) |
|
|
|
|
|
|
|
def transport_reposition(client, pos): |
|
|
|
jacklib.jack_transport_reposition.argtypes = [POINTER(jack_client_t), POINTER(jack_position_t)] |
|
|
|
jacklib.jack_transport_reposition.restype = c_int |
|
|
|
return jacklib.jack_transport_reposition(client, pos) |
|
|
|
|
|
|
|
def transport_start(client): |
|
|
|
jacklib.jack_transport_start.argtypes = [POINTER(jack_client_t)] |
|
|
|
jacklib.jack_transport_start.restype = None |
|
|
|
return jacklib.jack_transport_start(client) |
|
|
|
|
|
|
|
def transport_stop(client): |
|
|
|
jacklib.jack_transport_stop.argtypes = [POINTER(jack_client_t)] |
|
|
|
jacklib.jack_transport_stop.restype = None |
|
|
|
return jacklib.jack_transport_stop(client) |
|
|
|
|
|
|
|
def get_transport_info(client, tinfo): |
|
|
|
jacklib.jack_get_transport_info.argtypes = [POINTER(jack_client_t), POINTER(jack_transport_info_t)] |
|
|
|
jacklib.jack_get_transport_info.restype = None |
|
|
|
return jacklib.jack_get_transport_info(client, tinfo) |
|
|
|
|
|
|
|
def set_transport_info(client, tinfo): |
|
|
|
jacklib.jack_set_transport_info.argtypes = [POINTER(jack_client_t), POINTER(jack_transport_info_t)] |
|
|
|
jacklib.jack_set_transport_info.restype = None |
|
|
|
return jacklib.jack_set_transport_info(client, tinfo) |
|
|
|
|
|
|
|
|
|
|
|
# MIDI |
|
|
|
|
|
|
|
def midi_get_event_count(port_buffer): |
|
|
|
jacklib.jack_midi_get_event_count.argtypes = [c_void_p] |
|
|
|
jacklib.jack_midi_get_event_count.restype = jack_nframes_t |
|
|
|
return jacklib.jack_midi_get_event_count(port_buffer) |
|
|
|
|
|
|
|
def midi_event_get(event, port_buffer, event_index): |
|
|
|
jacklib.jack_midi_event_get.argtypes = [POINTER(jack_midi_event_t), c_void_p, c_uint32] |
|
|
|
jacklib.jack_midi_event_get.restype = c_int |
|
|
|
return jacklib.jack_midi_event_get(event, port_buffer, event_index) |
|
|
|
|
|
|
|
def midi_clear_buffer(port_buffer): |
|
|
|
jacklib.jack_midi_clear_buffer.argtypes = [c_void_p] |
|
|
|
jacklib.jack_midi_clear_buffer.restype = None |
|
|
|
return jacklib.jack_midi_clear_buffer(port_buffer) |
|
|
|
|
|
|
|
def midi_max_event_size(port_buffer): |
|
|
|
jacklib.jack_midi_max_event_size.argtypes = [c_void_p] |
|
|
|
jacklib.jack_midi_max_event_size.restype = c_size_t |
|
|
|
return jacklib.jack_midi_max_event_size(port_buffer) |
|
|
|
|
|
|
|
def midi_event_reserve(port_buffer, time, data_size): |
|
|
|
jacklib.jack_midi_event_reserve.argtypes = [c_void_p, jack_nframes_t, c_size_t] |
|
|
|
jacklib.jack_midi_event_reserve.restype = POINTER(jack_midi_data_t) |
|
|
|
return jacklib.jack_midi_event_reserve(port_buffer, time, data_size) |
|
|
|
|
|
|
|
def midi_event_write(port_buffer, time, data, data_size): |
|
|
|
jacklib.jack_midi_event_write.argtypes = [c_void_p, jack_nframes_t, POINTER(jack_midi_data_t), c_size_t] |
|
|
|
jacklib.jack_midi_event_write.restype = c_int |
|
|
|
return jacklib.jack_midi_event_write(port_buffer, time, data, data_size) |
|
|
|
|
|
|
|
def midi_get_lost_event_count(port_buffer): |
|
|
|
jacklib.jack_midi_get_lost_event_count.argtypes = [c_void_p] |
|
|
|
jacklib.jack_midi_get_lost_event_count.restype = c_uint32 |
|
|
|
return jacklib.jack_midi_get_lost_event_count(port_buffer) |
|
|
|
|
|
|
|
|
|
|
|
# Session |
|
|
|
|
|
|
|
|
|
|
|
def set_timebase_callback(client, session_callback, arg): |
|
|
|
jacklib.jack_set_timebase_callback.argtypes = [POINTER(jack_client_t), JackSessionCallback, c_void_p] |
|
|
|
jacklib.jack_set_timebase_callback.restype = c_int |
|
|
|
return jacklib.jack_set_timebase_callback(client, conditional, JackSessionCallback(session_callback), arg) |
|
|
|
|
|
|
|
def session_reply(client, event): |
|
|
|
jacklib.jack_session_reply.argtypes = [POINTER(jack_client_t), POINTER(jack_session_event_t)] |
|
|
|
jacklib.jack_session_reply.restype = c_int |
|
|
|
return jacklib.jack_session_reply(client, event) |
|
|
|
|
|
|
|
def session_event_free(client, event): |
|
|
|
jacklib.jack_session_event_free.argtypes = [POINTER(jack_client_t), POINTER(jack_session_event_t)] |
|
|
|
jacklib.jack_session_event_free.restype = c_int |
|
|
|
return jacklib.jack_session_event_free(client, event) |
|
|
|
|
|
|
|
def client_get_uuid(client): |
|
|
|
jacklib.jack_client_get_uuid.argtypes = [POINTER(jack_client_t)] |
|
|
|
jacklib.jack_client_get_uuid.restype = c_char_p |
|
|
|
return jacklib.jack_client_get_uuid(client) |
|
|
|
|
|
|
|
def session_notify(client, target, type_, path): |
|
|
|
jacklib.jack_session_notify.argtypes = [POINTER(jack_client_t), c_char_p, jack_session_event_type_t, c_char_p] |
|
|
|
jacklib.jack_session_notify.restype = POINTER(jack_session_command_t) |
|
|
|
return jacklib.jack_session_notify(client, target.encode(), type_, path.encode()) |
|
|
|
|
|
|
|
def session_commands_free(cmds): |
|
|
|
jacklib.jack_session_commands_free.argtypes = [POINTER(jack_session_command_t)] |
|
|
|
jacklib.jack_session_commands_free.restype = None |
|
|
|
return jacklib.jack_session_commands_free(cmds) |
|
|
|
|
|
|
|
def get_uuid_for_client_name(client, client_name): |
|
|
|
jacklib.jack_get_uuid_for_client_name.argtypes = [POINTER(jack_client_t), c_char_p] |
|
|
|
jacklib.jack_get_uuid_for_client_name.restype = c_char_p |
|
|
|
return jacklib.jack_get_uuid_for_client_name(client, client_name.encode()) |
|
|
|
|
|
|
|
def get_client_name_by_uuid(client, client_uuid): |
|
|
|
jacklib.jack_get_client_name_by_uuid.argtypes = [POINTER(jack_client_t), c_char_p] |
|
|
|
jacklib.jack_get_client_name_by_uuid.restype = c_char_p |
|
|
|
return jacklib.jack_get_client_name_by_uuid(client, client_uuid.encode()) |
|
|
|
|
|
|
|
def reserve_client_name(client, name, uuid): |
|
|
|
jacklib.jack_reserve_client_name.argtypes = [POINTER(jack_client_t), c_char_p, c_char_p] |
|
|
|
jacklib.jack_reserve_client_name.restype = c_int |
|
|
|
return jacklib.jack_reserve_client_name(client, name.encode(), uuid.encode()) |
|
|
|
|
|
|
|
def client_has_session_callback(client, client_name): |
|
|
|
jacklib.jack_client_has_session_callback.argtypes = [POINTER(jack_client_t), c_char_p] |
|
|
|
jacklib.jack_client_has_session_callback.restype = c_int |
|
|
|
return jacklib.jack_client_has_session_callback(client, client_name.encode()) |