Merged
[zukebox] / zukebox_server / src / server / zukebox_server.py
index 8368343..88c6249 100644 (file)
@@ -2,6 +2,7 @@
 from ziface import ZIface
 import dbus.service
 import dbus.mainloop.glib
+import os
 
 from brisa.core.reactors import GLib2Reactor
 reactor = GLib2Reactor()
@@ -12,6 +13,8 @@ from brisa.upnp.device import Device, Service
 from brisa.upnp.services.cds import ContentDirectory
 from brisa.upnp.services.connmgr import ConnectionManagerServer
 
+from zukebox_server.services.playlist.zukebox_playlist import PlayList
+
 dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
 
 class ZukeBoxServer(ZIface, dbus.service.Object):
@@ -19,7 +22,7 @@ class ZukeBoxServer(ZIface, dbus.service.Object):
     Introduction
     ============
     ZukeBox is an abstraction for a JukeBox.
-    How this works?
+    How works?
         In a JukeBox somebody pay and choose a song for play, this way the
     JukeBox should have default set of songs. ZukeBox has the same idea,
     except for payment ;) , you can choose a song availble in the server 
@@ -35,8 +38,8 @@ class ZukeBoxServer(ZIface, dbus.service.Object):
     rescan the default paths and save in the database.
     """
 
-    DBUS_SERVICE_NAME = "br.org.zagaia.ZukeBox"
-    DBUS_OBJ_PATH = "/br/org/zagaia/zukebox"
+    DBUS_SERVICE_NAME = "br.org.zagaia"
+    DBUS_OBJ_PATH = "/br/org/zagaia/ZukeBox"
     DBUS_IFACE = "br.org.zagaia.ZukeBox"
 
     plugins_folder = config.get_parameter("zukebox_server", "plugins")
@@ -64,8 +67,9 @@ class ZukeBoxServer(ZIface, dbus.service.Object):
         model_name = "ZukeBox Server version 0.1"
         project_page = "http://portal.fucapi.edu.br/nepcomp/zagaia"
         serial_no = '0000010'
-        model_description = 'A UPnP Server for ZukeBox'
-        self.device = Device('urn:schemas-upnp-org:device:MediaServer:1',
+        model_description = 'A UPnP Audio Server for ZukeBox'
+
+        self.device = Device('urn:schemas-upnp-org:device:ZukeBoxServer:1',
                 self.server_name, force_listen_url=self.listen_url,
                 manufacturer="Zagaia Laboratory and INdT Brazil",
                 manufacturer_url=project_page,
@@ -73,19 +77,19 @@ class ZukeBoxServer(ZIface, dbus.service.Object):
                 model_name=model_name, model_number=serial_no,
                 model_url=project_page, serial_number=serial_no)
 
-
-
-    def _create_service(self):
+    def _create_services(self):
         self.cds = ContentDirectory(self.plugins_folder,
                 self.plugins_module_path)
         cm = ConnectionManagerServer()
+        xml_path = os.path.join(os.path.dirname(__file__), "xml_descriptions")
+        playlist = PlayList(xml_path)
         self.device.add_service(self.cds)
         self.device.add_service(cm)
 
     def start(self):
         """Start the ZukeBox Server"""
         self._create_device()
-        self._create_service()
+        self._create_services()
         self.device.start()
         reactor.add_after_stop_func(self.device.stop)
         reactor.main()