Moved playlist path from plugins to services
[zukebox] / zukebox_server / src / services / playlist / zukebox_playlist.py
1
2 import dbus.service
3
4 from brisa.core import log
5
6 class PlayList(list, dbus.service.Object):
7     """Class PlayList
8     Introduction
9     ============
10     Implements a playlist for ZukeBox server.
11     """
12
13     DBUS_SERVICE_NAME = "br.org.zagaia.PlayList"
14     DBUS_OBJ_PATH = "br/org/zagaia/playlist"
15     DBUS_IFACE = "br.org.zagaia.PlayList"
16
17     def __init__(self, name="", positions=10):
18         self.name = name
19         self.positions = positions
20
21     def is_locked(self):
22         if not len(self) == self.positions:
23             return False
24         return True
25
26     def is_availble(self):
27         if not len(self) == 0:
28             return True
29         return False
30
31     @dbus.service.method(DBUS_IFACE)
32     def append(self, obj):
33         """Put a object in the playlist"""
34         if not self.is_locked():
35             log.info("object in playlist")
36             self.append(obj)
37
38     @dbus.service.method(DBUS_IFACE)
39     def drop(self):
40         """Always pop the first object from list"""
41         if self.is_availble():
42             self.pop(0)
43
44     @dbus.service.method(DBUS_IFACE)
45     def get_size(self):
46         """Return the size of playlist"""
47         return len(self)
48
49     @dbus.service.method(DBUS_IFACE)
50     def previous(self):
51         if self.is_availble():
52             pass
53
54