vlc/python | branch: master | Olivier Aubert <olivier.aub...@liris.cnrs.fr> | Mon Jan 3 12:57:36 2011 +0100| [ffae4e3698106219805e08c01b9455f422fff30e] | committer: Olivier Aubert
python-vlc: add support for module_description_list functions > http://git.videolan.org/gitweb.cgi/vlc/python.git/?a=commit;h=ffae4e3698106219805e08c01b9455f422fff30e --- generate.py | 1 + header.py | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 0 deletions(-) diff --git a/generate.py b/generate.py index 09d052e..b8c95b0 100755 --- a/generate.py +++ b/generate.py @@ -694,6 +694,7 @@ class PythonGenerator(_Generator): 'libvlc_rectangle_t*': 'ctypes.POINTER(Rectangle)', 'libvlc_time_t': 'ctypes.c_longlong', 'libvlc_track_description_t*': 'ctypes.POINTER(TrackDescription)', + 'libvlc_module_description_t*': 'ctypes.POINTER(ModuleDescription)', '...': 'FIXME_va_list', 'char*': 'ctypes.c_char_p', diff --git a/header.py b/header.py index 12143bd..8cee93e 100755 --- a/header.py +++ b/header.py @@ -358,5 +358,30 @@ class Event(ctypes.Structure): ('u', EventUnion ), ] +class ModuleDescription(ctypes.Structure): + def __str__(self): + return '%s %s (%s)' % (self.__class__.__name__, self.shortname, self.name) + +ModuleDescription._fields_ = [ # recursive struct + ('name', ctypes.c_char_p), + ('shortname', ctypes.c_char_p), + ('longname', ctypes.c_char_p), + ('help', ctypes.c_char_p), + ('next', ctypes.POINTER(ModuleDescription)), + ] + +def module_description_list(head): + """Convert a ModuleDescription linked list to a Python list (and release the former). + """ + r = [] + if head: + item = head + while item: + item = item.contents + r.append((item.name, item.shortname, item.longname, item.help)) + item = item.next + libvlc_module_description_list_release(head) + return r + # End of header.py # _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org http://mailman.videolan.org/listinfo/vlc-commits