Source code for csengine.slides

from .globals import ActivePlugin
from .stack import Stack
from . import globals
from . import audiochannel


[docs] class Slides: inputAudioChannel = None overlayAudioChannels = [None] * 3 def __init__(self): self.slidesList = [] initialStack = Stack(self, name="Classroom 1") self.slidesList.append(initialStack) ActivePlugin.active_slide = initialStack self.slideNumber = len(self.slidesList)
[docs] def initAudio(self): self.inputAudioChannel = audiochannel.AudioChannel("input") self.inputAudioChannel.activeStack = ActivePlugin.active_slide self.overlayAudioChannels[0] = audiochannel.AudioChannel("output", 0) self.overlayAudioChannels[1] = audiochannel.AudioChannel("output", 1) self.overlayAudioChannels[2] = audiochannel.AudioChannel("output", 2)
[docs] def addSlide(self): self.slideNumber += 1 slide = Stack(self, name="Classroom " + str(self.slideNumber)) self.slidesList.append(slide) #deactivate Audio for the current slide for plugin in ActivePlugin.active_slide.stackList: plugin.writerEvent.clear() globals.AUDIO_THREAD.setReRoute(False) ActivePlugin.active_slide = self.slidesList[len(self.slidesList) - 1] slide.updateStackButtons()
[docs] def removeSlide(self, index): # if index == 0: # return self.slideNumber -= 1 if index < len(self.slidesList): #loop through stack and unregister audio stack = self.slidesList[index] for plugin in stack.stackList: plugin.stop() plugin.audioOverlayChannel = None plugin.writerEvent.set() del self.slidesList[index] else: return False
[docs] def shutdown(self): for slide in self.slidesList: slide.shutdown = True for plugin in slide.stackList: plugin.writerEvent.set() plugin.audioOverlayChannel = None plugin.stop() for channel in self.overlayAudioChannels: channel.shutdown = True
[docs] def makeSelectionActive(self, index): #loop through stack and deactivate audio for plugin in ActivePlugin.active_slide.stackList: plugin.writerEvent.clear() if index < len(self.slidesList): ActivePlugin.active_slide = self.slidesList[index] ActivePlugin.active_slide.updateStackButtons() self.inputAudioChannel = ActivePlugin.active_slide globals.AUDIO_THREAD.setReRoute(False) # loop through new stack and activate audio for plugin in ActivePlugin.active_slide.stackList: plugin.writerEvent.set() if plugin.audioReRoute: chNr = plugin.audioOverlayChannel.channelNr globals.AUDIO_THREAD.setReRoute(True, chNr)
[docs] def makeNewInstance(self, pluginObject): pass
[docs] def addPluginToActiveStack(self, pluginObject): pass