[rygel/wip/g-i: 6/7] wip: Sample code and notes



commit faad06eb21416696e5c09e9269cae63fa461b8a0
Author: Jens Georg <jensg openismus com>
Date:   Mon May 27 01:40:23 2013 +0900

    wip: Sample code and notes

 doc/gi.txt                   |    9 +++++++++
 examples/example-renderer.py |   26 ++++++++++++++++++++++++++
 examples/sample-server.py    |   22 ++++++++++++++++++++++
 3 files changed, 57 insertions(+), 0 deletions(-)
---
diff --git a/doc/gi.txt b/doc/gi.txt
new file mode 100644
index 0000000..9f5aab4
--- /dev/null
+++ b/doc/gi.txt
@@ -0,0 +1,9 @@
+- How to use default implementations from python or provide a default for all
+  virtual functions with specific overides?
+  class Foo(GObject.Object, namespace.MyInterface):
+    def do_thing(self):
+        pass
+    # everything else from MyInteface throws NotImplemented exception
+- How to implement non-trivial r/w properties?
+- How to implement properties returning GStrv?
+- Get rid of libgee/generics in public API
diff --git a/examples/example-renderer.py b/examples/example-renderer.py
new file mode 100755
index 0000000..8c21319
--- /dev/null
+++ b/examples/example-renderer.py
@@ -0,0 +1,26 @@
+#!/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"
+    volume = GObject.property (type = float, default = 1.0)
+    uri = GObject.property (type = str, default = "")
+    position = GObject.property (type = int, default = 0)
+    duration = GObject.property (type = int, default = 0)
+
+    @GObject.property
+    def allowed_playback_speeds(self):
+        return ["1"]
+
+    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/sample-server.py b/examples/sample-server.py
new file mode 100644
index 0000000..342ba64
--- /dev/null
+++ b/examples/sample-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 ("lo")
+
+GObject.MainLoop().run()


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]