Files
gig/item.py

61 lines
1.6 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 is_button_prestart(self, name):
return self._timings.is_button_prestart(name)
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)