summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorJens Georg <mail@jensge.org>2014-07-12 12:52:17 +0200
committerJens Georg <mail@jensge.org>2014-08-19 21:24:46 +0200
commit6f12d67cdaa8ef6abe6f9db503076e89d36afed4 (patch)
treef3dd8d63ff124a763997f2cc0cf3e130200b133b /examples
parent227efa02262a2e7e58ad40cfe823dd19cc9c03c9 (diff)
downloadrygel-6f12d67cdaa8ef6abe6f9db503076e89d36afed4.tar.gz
examples: Add python examples for introspection
Signed-off-by: Jens Georg <mail@jensge.org>
Diffstat (limited to 'examples')
-rwxr-xr-xexamples/gi/example-renderer.py56
-rwxr-xr-xexamples/gi/example-server.py22
2 files changed, 78 insertions, 0 deletions
diff --git a/examples/gi/example-renderer.py b/examples/gi/example-renderer.py
new file mode 100755
index 00000000..5fa60295
--- /dev/null
+++ b/examples/gi/example-renderer.py
@@ -0,0 +1,56 @@
+#!/usr/bin/env python
+
+from gi.repository import RygelCore as rc
+from gi.repository import RygelRenderer as rr
+from gi.repository import GObject
+
+class ExamplePlayer(GObject.Object, rr.MediaPlayer):
+ __gtype_name = "RygelPythonExamplePlayer"
+
+ # Abstract properties
+ playback_state = GObject.property (type = str, default = "NO_MEDIA_PRESENT")
+ allowed_playback_speeds = GObject.property (type = GObject.TYPE_STRV, default = ["1"])
+ playback_speed = GObject.property (type = str, default = "1")
+ uri = GObject.property (type = str, default = "")
+ volume = GObject.property (type = float, default = 1.0)
+ duration = GObject.property (type = GObject.TYPE_INT64, default = 0)
+ size = GObject.property (type = GObject.TYPE_INT64, default = 0)
+ metadata = GObject.property (type = str, default = None)
+ mime_type = GObject.property (type = str, default = "")
+ can_seek = GObject.property (type = bool, default = False)
+ can_seek_bytes = GObject.property (type = bool, default = False)
+ content_features = GObject.property (type = str, default = None)
+ position = GObject.property (type = GObject.TYPE_INT64, default = 0)
+ byte_position = GObject.property (type = GObject.TYPE_INT64, default = 0)
+
+ # Abstract methods
+ def do_seek(self, position):
+ return False
+
+ def do_seek_bytes(self, position):
+ return False
+
+ def do_get_protocols(self):
+ return ["http"], 1
+
+ def do_get_mime_types(self):
+ val = ["image/jpeg"]
+ print ("Mime types: ", val)
+ return val, len(val)
+
+ # Property setters/getters
+ def do_get_volume(self):
+ return self.volume;
+
+ def do_set_volume(self, _volume):
+ self.volume = _volume;
+
+ def __init__(self):
+ GObject.Object.__init__(self)
+
+d = rr.MediaRenderer (title = "DLNA renderer from Python!",
+ player = ExamplePlayer())
+
+d.add_interface ("lo")
+
+GObject.MainLoop().run()
diff --git a/examples/gi/example-server.py b/examples/gi/example-server.py
new file mode 100755
index 00000000..86b28f94
--- /dev/null
+++ b/examples/gi/example-server.py
@@ -0,0 +1,22 @@
+#!/usr/bin/env python
+
+from gi.repository import GObject
+from gi.repository import RygelCore as rc
+from gi.repository import RygelServer as rs
+
+rs.MediaEngine.init ()
+
+c = rs.SimpleContainer.root ("DLNA from Python!")
+i = rs.VideoItem (id = "0001",
+ parent = c,
+ title = "Test Video",
+ upnp_class = rs.ImageItem.UPNP_CLASS)
+i.set_property ("mime-type", "video/ogv")
+c.add_child_item (i)
+
+d = rs.MediaServer (title = "DLNA server from Python!",
+ root_container = c,
+ capabilities = rc.PluginCapabilities.NONE)
+d.add_interface ("eth0")
+
+GObject.MainLoop().run()