from ziface import ZIface
import dbus.service
import dbus.mainloop.glib
+import os
from brisa.core.reactors import GLib2Reactor
reactor = GLib2Reactor()
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):
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
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")
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,
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()