58 lines
1.5 KiB
Python
58 lines
1.5 KiB
Python
# item.py
|
|
|
|
import timings
|
|
|
|
class Item:
|
|
def __init__(self, title, events):
|
|
self._title = title
|
|
self._events = events
|
|
self._timings = timings.Timings()
|
|
for event in self._events:
|
|
event.set_timings(self._timings)
|
|
event.prepare()
|
|
self.resolve()
|
|
|
|
def reset(self):
|
|
self._timings.reset()
|
|
self.resolve()
|
|
|
|
def resolve(self):
|
|
self._timings.resolve()
|
|
self._timings.resolve(final=True)
|
|
def eventkey(x):
|
|
x = x.at
|
|
if x is None:
|
|
return (1, x)
|
|
else:
|
|
return (0, x)
|
|
self._events.sort(key=eventkey)
|
|
# print("Item {}".format(self._title))
|
|
# for event in self._events:
|
|
# print("Event at time {}".format(event.at))
|
|
|
|
def activate(self, marker, time):
|
|
if marker is None:
|
|
marker = self._timings.get_button()
|
|
if marker is None:
|
|
return False
|
|
self._timings.set_marker(marker, time)
|
|
self.resolve()
|
|
return True
|
|
|
|
def get_next_button(self):
|
|
return self._timings.get_button()
|
|
|
|
def get_title(self):
|
|
return self._title
|
|
|
|
def get_timings(self):
|
|
return self._timings
|
|
|
|
def set_audiencecontent(self, audiencecontent):
|
|
for event in self._events:
|
|
event.set_audiencecontent(audiencecontent)
|
|
|
|
def set_eventrunner(self, eventrunner):
|
|
for event in self._events:
|
|
event.set_eventrunner(eventrunner)
|