Commit 60fb88bd authored by Olivier Aubert's avatar Olivier Aubert

python-ctypes: raise a LibVLCException in case of error

parent ce7e4589
...@@ -70,8 +70,15 @@ class ListPOINTER(object): ...@@ -70,8 +70,15 @@ class ListPOINTER(object):
if isinstance(param, (list,tuple)): if isinstance(param, (list,tuple)):
return (self.etype * len(param))(*param) return (self.etype * len(param))(*param)
class LibVLCException(Exception):
"""Python exception raised by libvlc methods.
"""
pass
# From libvlc_structures.h # From libvlc_structures.h
class VLCException(ctypes.Structure): class VLCException(ctypes.Structure):
"""libvlc exception.
"""
_fields_= [ _fields_= [
('raised', ctypes.c_int), ('raised', ctypes.c_int),
('code', ctypes.c_int), ('code', ctypes.c_int),
...@@ -163,10 +170,10 @@ def check_vlc_exception(result, func, args): ...@@ -163,10 +170,10 @@ def check_vlc_exception(result, func, args):
"""Error checking method for functions using an exception in/out parameter. """Error checking method for functions using an exception in/out parameter.
""" """
ex=args[-1] ex=args[-1]
# Take into account both VLCException and MediacontrolException # Take into account both VLCException and MediacontrolException:
c=getattr(ex, 'raised', getattr(ex, 'code', 0)) c=getattr(ex, 'raised', getattr(ex, 'code', 0))
if c: if c:
raise Exception(args[-1].message) raise LibVLCException(args[-1].message)
return result return result
### End of header.py ### ### End of header.py ###
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment