Skip to content

Commit c9af2df

Browse files
committed
Helper function _decode()
1 parent d313033 commit c9af2df

File tree

1 file changed

+16
-13
lines changed

1 file changed

+16
-13
lines changed

src/jack.py

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ def __del__(self):
146146
@property
147147
def name(self):
148148
"""The name of the JACK client (read-only)."""
149-
return _ffi.string(_lib.jack_get_client_name(self._ptr)).decode()
149+
return _decode(_lib.jack_get_client_name(self._ptr))
150150

151151
@property
152152
def samplerate(self):
@@ -605,7 +605,7 @@ def set_shutdown_callback(self, callback):
605605
"""
606606
@self._callback('JackInfoShutdownCallback')
607607
def callback_wrapper(code, reason, _):
608-
callback(Status(code), _ffi.string(reason).decode())
608+
callback(Status(code), _decode(reason))
609609

610610
_lib.jack_on_info_shutdown(self._ptr, callback_wrapper, _ffi.NULL)
611611

@@ -844,7 +844,7 @@ def set_client_registration_callback(self, callback):
844844
"""
845845
@self._callback('JackClientRegistrationCallback')
846846
def callback_wrapper(name, register, _):
847-
callback(_ffi.string(name).decode(), bool(register))
847+
callback(_decode(name), bool(register))
848848

849849
_check(_lib.jack_set_client_registration_callback(
850850
self._ptr, callback_wrapper, _ffi.NULL),
@@ -1055,8 +1055,7 @@ def callback_wrapper(port_id, old_name, new_name, _):
10551055
else:
10561056
port = None
10571057
try:
1058-
callback(port, _ffi.string(old_name).decode(),
1059-
_ffi.string(new_name).decode())
1058+
callback(port, _decode(old_name), _decode(new_name))
10601059
except CallbackExit:
10611060
return _FAILURE
10621061
return _SUCCESS
@@ -1237,7 +1236,7 @@ def get_uuid_for_client_name(self, name):
12371236
self._ptr, name.encode()), _lib.jack_free)
12381237
if not uuid:
12391238
raise JackError('Unable to get session ID for {0!r}'.format(name))
1240-
return _ffi.string(uuid).decode()
1239+
return _decode(uuid)
12411240

12421241
def get_client_name_by_uuid(self, uuid):
12431242
"""Get the client name for a session ID.
@@ -1250,7 +1249,7 @@ def get_client_name_by_uuid(self, uuid):
12501249
self._ptr, uuid.encode()), _lib.jack_free)
12511250
if not name:
12521251
raise JackError('Unable to get client name for {0!r}'.format(uuid))
1253-
return _ffi.string(name).decode()
1252+
return _decode(name)
12541253

12551254
def get_port_by_name(self, name):
12561255
"""Get port by name.
@@ -1358,7 +1357,7 @@ def _port_list_from_pointers(self, names):
13581357
name = names[idx]
13591358
if not name:
13601359
break
1361-
ports.append(self.get_port_by_name(_ffi.string(name).decode()))
1360+
ports.append(self.get_port_by_name(_decode(name)))
13621361
idx += 1
13631362
return ports
13641363

@@ -1425,7 +1424,7 @@ def __ne__(self, other):
14251424
@property
14261425
def name(self):
14271426
"""Full name of the JACK port (read-only)."""
1428-
return _ffi.string(_lib.jack_port_name(self._ptr)).decode()
1427+
return _decode(_lib.jack_port_name(self._ptr))
14291428

14301429
@property
14311430
def shortname(self):
@@ -1438,7 +1437,7 @@ def shortname(self):
14381437
`port_name_size()`, it will be truncated.
14391438
14401439
"""
1441-
return _ffi.string(_lib.jack_port_short_name(self._ptr)).decode()
1440+
return _decode(_lib.jack_port_short_name(self._ptr))
14421441

14431442
@shortname.setter
14441443
def shortname(self, shortname):
@@ -1454,7 +1453,7 @@ def aliases(self):
14541453
result = []
14551454
if _lib.jack_port_get_aliases(self._ptr, aliasesptr) > 0:
14561455
for i in 0, 1:
1457-
alias = _ffi.string(aliases[i]).decode()
1456+
alias = _decode(aliases[i])
14581457
if alias:
14591458
result.append(alias)
14601459

@@ -2385,7 +2384,7 @@ def version():
23852384

23862385
def version_string():
23872386
"""Get human-readable JACK version."""
2388-
return _ffi.string(_lib.jack_get_version_string()).decode()
2387+
return _decode(_lib.jack_get_version_string())
23892388

23902389

23912390
def client_name_size():
@@ -2460,7 +2459,7 @@ def _set_error_or_info_function(callback, setter):
24602459
else:
24612460
@_ffi.callback('void (*)(const char*)')
24622461
def callback_wrapper(msg):
2463-
callback(_ffi.string(msg).decode())
2462+
callback(_decode(msg))
24642463

24652464
_keepalive[setter] = callback_wrapper
24662465
setter(callback_wrapper)
@@ -2473,3 +2472,7 @@ def _check(error_code, msg):
24732472
"""Check error code and raise JackError if non-zero."""
24742473
if error_code:
24752474
raise JackError('{0} ({1})'.format(msg, error_code))
2475+
2476+
2477+
def _decode(cdata):
2478+
return _ffi.string(cdata).decode()

0 commit comments

Comments
 (0)