Commit f60c1042 authored by Olivier Aubert's avatar Olivier Aubert

python-ctypes: improve documentation generation

parent 5e94dabf
...@@ -207,7 +207,7 @@ def generate_header(classes=None): ...@@ -207,7 +207,7 @@ def generate_header(classes=None):
def convert_enum_names(enums): def convert_enum_names(enums):
res={} res={}
for (typ, name, values) in enums: for (typ, name, values, comment) in enums:
if typ != 'enum': if typ != 'enum':
raise Exception('This method only handles enums') raise Exception('This method only handles enums')
pyname=re.findall('(libvlc|mediacontrol)_(.+?)(_t)?$', name)[0][1] pyname=re.findall('(libvlc|mediacontrol)_(.+?)(_t)?$', name)[0][1]
...@@ -219,12 +219,13 @@ def convert_enum_names(enums): ...@@ -219,12 +219,13 @@ def convert_enum_names(enums):
return res return res
def generate_enums(enums): def generate_enums(enums):
for (typ, name, values) in enums: for (typ, name, values, comment) in enums:
if typ != 'enum': if typ != 'enum':
raise Exception('This method only handles enums') raise Exception('This method only handles enums')
pyname=typ2class[name] pyname=typ2class[name]
print "class %s(ctypes.c_uint):" % pyname print "class %s(ctypes.c_uint):" % pyname
print ' """%s\n """' % comment
conv={} conv={}
# Convert symbol names # Convert symbol names
...@@ -255,7 +256,7 @@ def parse_typedef(name): ...@@ -255,7 +256,7 @@ def parse_typedef(name):
"""Parse include file for typedef expressions. """Parse include file for typedef expressions.
This generates a tuple for each typedef: This generates a tuple for each typedef:
(type, name, value_list) (type, name, value_list, comment)
with type == 'enum' (for the moment) and value_list being a list of (name, value) with type == 'enum' (for the moment) and value_list being a list of (name, value)
Note that values are string, since this is intended for code generation. Note that values are string, since this is intended for code generation.
""" """
...@@ -298,7 +299,9 @@ def parse_typedef(name): ...@@ -298,7 +299,9 @@ def parse_typedef(name):
else: else:
if l: if l:
values.append( (l, str(i)) ) values.append( (l, str(i)) )
yield (typ, name, values) comment=comment.replace('@{', '').replace('@see', 'See').replace('\ingroup', '')
yield (typ, name, values, comment)
comment=''
def parse_include(name): def parse_include(name):
"""Parse include file. """Parse include file.
......
...@@ -22,6 +22,17 @@ ...@@ -22,6 +22,17 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
# #
"""This module provides bindings for the
U{libvlc<http://wiki.videolan.org/ExternalAPI>} and
U{MediaControl<http://wiki.videolan.org/MediaControlAPI>} APIs.
You can find documentation at U{http://www.advene.org/download/python-ctypes/}.
Basically, the most important class is L{Instance}, which is used to
create a libvlc Instance. From this instance, you can then create
L{MediaPlayer} and L{MediaListPlayer} instances.
"""
import ctypes import ctypes
import sys import sys
......
...@@ -103,6 +103,8 @@ class MediaPlayer: ...@@ -103,6 +103,8 @@ class MediaPlayer:
return o return o
def get_instance(self): def get_instance(self):
"""Return the associated vlc.Instance.
"""
return self._instance return self._instance
class MediaListPlayer: class MediaListPlayer:
...@@ -131,6 +133,8 @@ class MediaListPlayer: ...@@ -131,6 +133,8 @@ class MediaListPlayer:
return o return o
def get_instance(self): def get_instance(self):
"""Return the associated vlc.Instance.
"""
return self._instance return self._instance
class LogIterator: class LogIterator:
......
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