[vlc-devel] commit: python-ctypes: offer shortcuts for MediaList and MediaListPlayer creation ( Olivier Aubert )
git version control
git at videolan.org
Fri Jul 31 17:30:11 CEST 2009
vlc | branch: master | Olivier Aubert <olivier.aubert at liris.cnrs.fr> | Fri Jul 31 17:06:25 2009 +0200| [2e1208e690a1381c11c8bb3e40fa1273dfb0f83f] | committer: Olivier Aubert
python-ctypes: offer shortcuts for MediaList and MediaListPlayer creation
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=2e1208e690a1381c11c8bb3e40fa1273dfb0f83f
---
bindings/python-ctypes/override.py | 84 +++++++++++++++++++++++++++++++++++-
1 files changed, 82 insertions(+), 2 deletions(-)
diff --git a/bindings/python-ctypes/override.py b/bindings/python-ctypes/override.py
index e9542d2..92da39b 100644
--- a/bindings/python-ctypes/override.py
+++ b/bindings/python-ctypes/override.py
@@ -17,7 +17,7 @@ class Instance:
return o
elif len(p) == 1 and isinstance(p[0], basestring):
# Only 1 string parameter: should be a parameter line
- p=p[0].split()
+ p=p[0].split(' ')
elif len(p) == 1 and isinstance(p[0], (tuple, list)):
p=p[0]
@@ -27,6 +27,26 @@ class Instance:
e=VLCException()
return libvlc_new(len(p), p, e)
+ def media_player_new(self, uri=None):
+ """Create a new Media Player object.
+
+ @param uri: an optional URI to play in the player.
+ """
+ e=VLCException()
+ p=libvlc_media_player_new(self, e)
+ if uri:
+ p.set_media(self.media_new(uri))
+ p._instance=self
+ return p
+
+ def media_list_player_new(self):
+ """Create an empty Media Player object
+ """
+ e=VLCException()
+ p=libvlc_media_list_player_new(self, e)
+ p._instance=self
+ return p
+
class MediaControl:
"""Create a new MediaControl instance
@@ -46,7 +66,7 @@ class MediaControl:
return o
elif len(p) == 1 and isinstance(p[0], basestring):
# Only 1 string parameter: should be a parameter line
- p=p[0].split()
+ p=p[0].split(' ')
elif len(p) == 1 and isinstance(p[0], (tuple, list)):
p=p[0]
@@ -56,3 +76,63 @@ class MediaControl:
else:
e=MediaControlException()
return mediacontrol_new(len(p), p, e)
+
+class MediaPlayer:
+ """Create a new MediaPlayer instance.
+
+ It may take as parameter either:
+ * a string (media URI). In this case, a vlc.Instance will be created.
+ * a vlc.Instance
+ """
+ def __new__(cls, *p):
+ if p and p[0] == 0:
+ return None
+ elif p and isinstance(p[0], (int, long)):
+ # instance creation from ctypes
+ o=object.__new__(cls)
+ o._as_parameter_=ctypes.c_void_p(p[0])
+ return o
+
+ if p and isinstance(p[0], Instance):
+ return p[0].media_player_new()
+ else:
+ i=Instance()
+ o=i.media_player_new()
+ if p:
+ o.set_media(i.media_new(p[0]))
+ return o
+
+ def get_instance(self):
+ return self._instance
+
+class MediaListPlayer:
+ """Create a new MediaPlayer instance.
+
+ It may take as parameter either:
+ * a vlc.Instance
+ * nothing
+ """
+ def __new__(cls, *p):
+ if p and p[0] == 0:
+ return None
+ elif p and isinstance(p[0], (int, long)):
+ # instance creation from ctypes
+ o=object.__new__(cls)
+ o._as_parameter_=ctypes.c_void_p(p[0])
+ return o
+ elif len(p) == 1 and isinstance(p[0], (tuple, list)):
+ p=p[0]
+
+ if p and isinstance(p[0], Instance):
+ return p[0].media_list_player_new()
+ else:
+ i=Instance()
+ o=i.media_list_player_new()
+ return o
+
+ def get_instance(self):
+ return self._instance
+
+class LogIterator:
+ def __iter__(self):
+ return self
More information about the vlc-devel
mailing list