Beispiel #1
0
 def keyDown(self, event):
     if QLiveLib.getVar("MidiLearnMode"):
         if event.GetKeyCode() in [wx.WXK_BACK, wx.WXK_DELETE,
                                     wx.WXK_NUMPAD_DELETE]:
             self.revertMidiAssignation()
         event.Skip()
         return
     if self.selected:
         char = ''
         if event.GetKeyCode() in range(324, 334):
             char = str(event.GetKeyCode() - 324)
         elif event.GetKeyCode() == 390:
             char = '-'
         elif event.GetKeyCode() == 391:
             char = '.'
         elif event.GetKeyCode() == wx.WXK_BACK:
             if self.new != '':
                 self.new = self.new[0:-1]
                 self.labelChanged()
         elif event.GetKeyCode() < 256:
             char = chr(event.GetKeyCode())
         if char in ['0','1','2','3','4','5','6','7','8','9','.','-']:
             self.new += char
             self.labelChanged()
         elif event.GetKeyCode() in [wx.WXK_RETURN, wx.WXK_NUMPAD_ENTER]:
             self.SetValue(eval(self.new))
             self.new = ''
             self.selected = False
             QLiveLib.setVar("CanProcessCueKeys", True)
         wx.CallAfter(self.Refresh)
     event.Skip()
Beispiel #2
0
 def setMidiDriver(self, evt):
     if QLiveLib.getVar("midi") != evt.GetString():
         self.reinit_server = True
     if evt.GetInt() == 1:
         QLiveLib.setVar("midi", "jack")
     else:
         QLiveLib.setVar("midi", "portmidi")
Beispiel #3
0
 def keyDown(self, event):
     if QLiveLib.getVar("MidiLearnMode"):
         if event.GetKeyCode() in [wx.WXK_BACK, wx.WXK_DELETE,
                                     wx.WXK_NUMPAD_DELETE]:
             self.revertMidiAssignation()
         event.Skip()
         return
     if self.selected:
         char = ''
         if event.GetKeyCode() in range(324, 334):
             char = str(event.GetKeyCode() - 324)
         elif event.GetKeyCode() == 390:
             char = '-'
         elif event.GetKeyCode() == 391:
             char = '.'
         elif event.GetKeyCode() == wx.WXK_BACK:
             if self.new != '':
                 self.new = self.new[0:-1]
                 self.labelChanged()
         elif event.GetKeyCode() < 256:
             char = chr(event.GetKeyCode())
         if char in ['0','1','2','3','4','5','6','7','8','9','.','-']:
             self.new += char
             self.labelChanged()
         elif event.GetKeyCode() in [wx.WXK_RETURN, wx.WXK_NUMPAD_ENTER]:
             self.SetValue(eval(self.new))
             self.new = ''
             self.selected = False
             QLiveLib.setVar("CanProcessCueKeys", True)
         wx.CallAfter(self.Refresh)
     event.Skip()
Beispiel #4
0
 def keyDown(self, event):
     if self.selected:
         char = ''
         if event.GetKeyCode() in range(324, 334):
             char = str(event.GetKeyCode() - 324)
         elif event.GetKeyCode() == 390:
             char = '-'
         elif event.GetKeyCode() == 391:
             char = '.'
         elif event.GetKeyCode() == wx.WXK_BACK:
             if self.new != '':
                 self.new = self.new[0:-1]
         elif event.GetKeyCode() < 256:
             char = chr(event.GetKeyCode())
         if char in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']:
             self.new += char
         elif char == '.' and not '.' in self.new:
             self.new += char
         elif char == '-' and len(self.new) == 0:
             self.new += char
         elif event.GetKeyCode() in [wx.WXK_RETURN, wx.WXK_NUMPAD_ENTER]:
             if self.new != '':
                 self.SetValue(eval(self.new))
                 # Send value
                 if self.outFunction:
                     self.outFunction(self.GetValue())
                 self.new = ''
             self.selected = False
             QLiveLib.setVar("CanProcessCueKeys", True)
     wx.CallAfter(self.Refresh)
Beispiel #5
0
    def loadFile(self, path):
        with open(path, "r") as f:
            magicline = f.readline()
        if magicline != QLIVE_MAGIC_LINE:
            print "The file loaded is not a valid QLive file."
            return
        self.tracks.close()
        execfile(path, globals())
        QLiveLib.setVar("currentProject", path)
        QLiveLib.setVar("projectFolder", os.path.dirname(path))
        filename = os.path.split(path)[1]
        self.newRecent(path)
        self.saveState = copy.deepcopy(dictSave)
        self.soundfiles.setSaveState(self.saveState.get("soundfiles", []))
        self.tracks.setSaveState(self.saveState["tracks"])
        self.cues.setSaveDict(self.saveState["cues"])
        self.mixer.setSaveDict(self.saveState["mixer"])
        self.controlPanel.setSaveState(self.saveState.get("control", {}))
        #self.audioServer.setSaveState(self.saveState.get("server", {}))
        linkMenuItem = self.GetMenuBar().FindItemById(LINK_STEREO_ID)
        linkMenuItem.Check(dictSave["mixer"].get("inputLinked", False))
        if "main" in self.saveState:
            self.SetPosition(self.saveState["main"]["position"])
            self.SetSize(self.saveState["main"]["size"])
            self.splitter.SetSashPosition(self.saveState["main"]["sashpos"])

        self.setTitle(filename)

        self.onPlayMode(PlayModeEvt(1), force=True)
Beispiel #6
0
    def onPlayMode(self, evt, force=False):
        if evt.GetInt() and not force:
            self.askForSaving()
        QLiveLib.setVar("locked", bool(evt.GetInt()))

        colour = QLiveLib.getBackgroundColour()
        panels = [self.mainPanel, self.controlPanel, self.cues, self.splitter]
        for panel in panels:
            panel.SetBackgroundColour(colour)
            panel.Refresh()
        self.soundfiles.setBackgroundColour(colour)
        self.mixer.setBackgroundColour(colour)

        self.controlPanel.onPlayMode(evt.GetInt())

        state = not evt.GetInt()
        ids = [CUE_CUT_ID, CUE_COPY_ID, CUE_PASTE_ID, NEW_TRACK_ID,
               DELETE_TRACK_ID, MIDI_LEARN_ID, INTERP_TIME_ID]
        menubar = self.GetMenuBar()
        for id in ids:
            menubar.Enable(id, state)

        if QLiveLib.getVar("currentProject") == "":
            filename = "Untitled"
        else:
            filename = os.path.split(QLiveLib.getVar("currentProject"))[1]
        self.setTitle(filename)
Beispiel #7
0
 def output(self, evt):
     if self.previous in ["", ".", "-"]:
         self.previous = "0"
         self.value = 0
         self.ChangeValue(self.previous)
     if self.callback is not None:
         self.callback(self.value, self.interp)
     QLiveLib.setVar("CanProcessCueKeys", True)
Beispiel #8
0
 def output(self, evt):
     if self.previous in ["", ".", "-"]:
         self.previous = "0"
         self.value = 0
         self.ChangeValue(self.previous)
     if self.callback is not None:
         self.callback(self.value, self.interp)
     QLiveLib.setVar("CanProcessCueKeys", True)
Beispiel #9
0
 def setMidiLearn(self, state):
     self.midiLearn = state
     if self.midiLearn:
         QLiveLib.setVar("CanProcessCueKeys", False)
         self.backColour = MIDILEARN_COLOUR
     else:
         QLiveLib.setVar("CanProcessCueKeys", True)
         self.backColour = CONTROLSLIDER_BACK_COLOUR
     wx.CallAfter(self.Refresh)
Beispiel #10
0
 def setMidiLearn(self, state):
     self.midiLearn = state
     if self.midiLearn:
         QLiveLib.setVar("CanProcessCueKeys", False)
         self.backColour = MIDILEARN_COLOUR
     else:
         QLiveLib.setVar("CanProcessCueKeys", True)
         self.backColour = CONTROLSLIDER_BACK_COLOUR
     wx.CallAfter(self.Refresh)
Beispiel #11
0
 def DoubleClick(self, event):
     if QLiveLib.getVar("MidiLearnMode"):
         return
     w, h = self.GetSize()
     pos = event.GetPosition()
     if self.textrect.Contains(pos):
         QLiveLib.setVar("CanProcessCueKeys", False)
         self.selected = True
     wx.CallAfter(self.Refresh)
     event.Skip()
Beispiel #12
0
 def DoubleClick(self, event):
     if QLiveLib.getVar("MidiLearnMode"):
         return
     w, h = self.GetSize()
     pos = event.GetPosition()
     if self.textrect.Contains(pos):
         QLiveLib.setVar("CanProcessCueKeys", False)
         self.selected = True
     wx.CallAfter(self.Refresh)
     event.Skip()
Beispiel #13
0
 def onApply(self, evt):
     cue = self.cueButton.GetSelection() # 0 = current, 1 = all
     track = self.trackButton.GetSelection() # 0 = current, 1 = all, 2 = none
     snd = self.sndButton.GetSelection() # 0 = current, 1 = all = 2 = none
     value = self.knob.GetValue() # interpolation time in secs
     meth = self.method.GetSelection() # 0 = overwrite, 1 = add, 2 = sub
     if meth == 0:
         QLiveLib.setVar("globalInterpTime", value)
     if self.callback is not None:
         self.callback(cue, track, snd, value, meth)
Beispiel #14
0
 def saveFile(self, path):
     QLiveLib.getVar("CuesPanel").onSaveCue()
     dictSave = self.getCurrentState()
     self.saveState = copy.deepcopy(dictSave)
     QLiveLib.setVar("currentProject", path)
     QLiveLib.setVar("projectFolder", os.path.dirname(path))
     with open(path, "w") as f:
         f.write(QLIVE_MAGIC_LINE)
         f.write("### %s ###\n" % APP_VERSION)
         f.write("dictSave = %s" % pprint.pformat(dictSave, indent=4))
Beispiel #15
0
 def saveFile(self, path):
     QLiveLib.getVar("CuesPanel").onSaveCue()
     dictSave = self.getCurrentState()
     self.saveState = copy.deepcopy(dictSave)
     QLiveLib.setVar("currentProject", path)
     QLiveLib.setVar("projectFolder", os.path.dirname(path))
     with open(path, "w") as f:
         f.write(QLIVE_MAGIC_LINE)
         f.write("### %s ###\n" % APP_VERSION)
         f.write("dictSave = %s" % pprint.pformat(dictSave, indent=4))
Beispiel #16
0
 def onApply(self, evt):
     cue = self.cueButton.GetSelection()  # 0 = current, 1 = all
     track = self.trackButton.GetSelection(
     )  # 0 = current, 1 = all, 2 = none
     snd = self.sndButton.GetSelection()  # 0 = current, 1 = all = 2 = none
     value = self.knob.GetValue()  # interpolation time in secs
     meth = self.method.GetSelection()  # 0 = overwrite, 1 = add, 2 = sub
     if meth == 0:
         QLiveLib.setVar("globalInterpTime", value)
     if self.callback is not None:
         self.callback(cue, track, snd, value, meth)
Beispiel #17
0
 def MouseMotion(self, evt):
     if QLiveLib.getVar("MidiLearnMode"):
         return
     posY = evt.GetPosition()[1]
     h = self.GetSize()[1] - self.meterOffset
     if evt.LeftIsDown() and evt.Dragging():
         self.pos = clamp(posY, self.knobHalfSize, h-self.knobHalfSize)
         self.value = self.scale()
         self.selected = False
         QLiveLib.setVar("CanProcessCueKeys", True)
         self.valueChanged()
         wx.CallAfter(self.Refresh)
Beispiel #18
0
 def SetValue(self, value, propagate=True):
     self.propagate = propagate
     if self.HasCapture():
         self.ReleaseMouse()
     value = clamp(value, self.minvalue, self.maxvalue)
     t = tFromValue(value, self.minvalue, self.maxvalue)
     self.value = interpFloat(t, self.minvalue, self.maxvalue)
     self.clampPos()
     self.selected = False
     QLiveLib.setVar("CanProcessCueKeys", True)
     self.valueChanged()
     wx.CallAfter(self.Refresh)
Beispiel #19
0
 def SetValue(self, value, propagate=True):
     self.propagate = propagate
     if self.HasCapture():
         self.ReleaseMouse()
     value = clamp(value, self.minvalue, self.maxvalue)
     t = tFromValue(value, self.minvalue, self.maxvalue)
     self.value = interpFloat(t, self.minvalue, self.maxvalue)
     self.clampPos()
     self.selected = False
     QLiveLib.setVar("CanProcessCueKeys", True)
     self.valueChanged()
     wx.CallAfter(self.Refresh)
Beispiel #20
0
 def MouseMotion(self, evt):
     if QLiveLib.getVar("MidiLearnMode"):
         return
     posY = evt.GetPosition()[1]
     h = self.GetSize()[1] - self.meterOffset
     if evt.LeftIsDown() and evt.Dragging():
         self.pos = clamp(posY, self.knobHalfSize, h-self.knobHalfSize)
         self.value = self.scale()
         self.selected = False
         QLiveLib.setVar("CanProcessCueKeys", True)
         self.valueChanged()
         wx.CallAfter(self.Refresh)
Beispiel #21
0
 def DoubleClick(self, event):
     if self._enable:
         w, h = self.GetSize()
         pos = event.GetPosition()
         reclab = wx.Rect(3, 60, w-3, 10)
         recpt = wx.Rect(self.knobPointPos[0]-3,
                         self.knobPointPos[1]-3, 9, 9)
         if reclab.Contains(pos):
             self.selected = True
             QLiveLib.setVar("CanProcessCueKeys", False)
         elif recpt.Contains(pos):
             self.mode = (self.mode+1) % 3
         wx.CallAfter(self.Refresh)
     event.Skip()
Beispiel #22
0
 def loadFile(self, path):
     with open(path, "r") as f:
         magicline = f.readline()
     if magicline != QLIVE_MAGIC_LINE:
         print "The file loaded is not a valid QLive file."
         return
     self.tracks.close()
     execfile(path, globals())
     if path == NEW_FILE_PATH:
         QLiveLib.setVar("currentProject", "")
         QLiveLib.setVar("projectFolder", "")
     else:
         QLiveLib.setVar("currentProject", path)
         QLiveLib.setVar("projectFolder", os.path.dirname(path))
         self.newRecent(path)
     self.saveState = copy.deepcopy(dictSave)
     if "soundfiles" in self.saveState:
         self.soundfiles.setSaveState(self.saveState["soundfiles"])
     self.tracks.setSaveState(self.saveState["tracks"])
     self.cues.setSaveDict(self.saveState["cues"])
     self.mixer.setSaveDict(self.saveState["mixer"])
     self.controlPanel.setSaveState(self.saveState.get("control", {}))
     #self.audioServer.setSaveState(self.saveState.get("server", {}))
     linkMenuItem = self.GetMenuBar().FindItemById(LINK_STEREO_ID)
     linkMenuItem.Check(dictSave["mixer"].get("inputLinked", False))
Beispiel #23
0
 def DoubleClick(self, event):
     if QLiveLib.getVar("MidiLearnMode"):
         return
     if self._enable:
         w, h = self.GetSize()
         pos = event.GetPosition()
         reclab = wx.Rect(3, 55, w-3, 15)
         recpt = wx.Rect(self.knobPointPos[0]-3,
                         self.knobPointPos[1]-3, 9, 9)
         if reclab.Contains(pos):
             self.selected = True
             QLiveLib.setVar("CanProcessCueKeys", False)
         elif recpt.Contains(pos):
             self.mode = (self.mode+1) % 3
         wx.CallAfter(self.Refresh)
     event.Skip()
Beispiel #24
0
 def MouseDown(self, evt):
     w, h = self.GetSize()
     if self._enable:
         rec = wx.Rect(5, 13, 45, 45)
         pos = evt.GetPosition()
         if rec.Contains(pos):
             self.clickPos = wx.GetMousePosition()
             self.oldValue = self.value
             self.CaptureMouse()
             self.selected = False
         rec = wx.Rect(w-15, 69, 15, 15)
         if rec.Contains(pos):
             self.showEdit = not self.showEdit
             self.editFunction(self.showEdit)
         QLiveLib.setVar("CanProcessCueKeys", True)
         wx.CallAfter(self.Refresh)
     evt.Skip()
Beispiel #25
0
 def filter(self, evt):
     QLiveLib.setVar("CanProcessCueKeys", False)
     value = self.GetValue().strip()
     # numeric check
     if value.count(".") > 1 or value.count("-") > 1:
         self.ChangeValue(self.previous)
     elif value in ["", ".", "-"]:
         self.previous = value
     elif value and all(x in '0123456789.-' for x in value):
         self.previous = value
         try:
             tmp = float(value)
         except:
             tmp = 0
         if self.mode == 0:
             self.value = tmp
         else:
             self.interp = tmp
     else:
         self.ChangeValue(self.previous)
Beispiel #26
0
 def filter(self, evt):
     QLiveLib.setVar("CanProcessCueKeys", False)
     value = self.GetValue().strip()
     # numeric check
     if value.count(".") > 1 or value.count("-") > 1:
         self.ChangeValue(self.previous)
     elif value in ["", ".", "-"]:
         self.previous = value
     elif value and all(x in '0123456789.-' for x in value):
         self.previous = value
         try:
             tmp = float(value)
         except:
             tmp = 0
         if self.mode == 0:
             self.value = tmp
         else:
             self.interp = tmp
     else:
         self.ChangeValue(self.previous)
Beispiel #27
0
 def MouseDown(self, evt):
     if QLiveLib.getVar("MidiLearnMode"):
         self.parent.handleMidiScan()
         evt.Skip()
         return
     w, h = self.GetSize()
     if self._enable:
         rec = wx.Rect(5, 13, 45, 45)
         pos = evt.GetPosition()
         if rec.Contains(pos):
             self.clickPos = wx.GetMousePosition()
             self.oldValue = self.value
             self.CaptureMouse()
             self.selected = False
         rec = wx.Rect(w-15, 69, 15, 15)
         if rec.Contains(pos):
             self.showEdit = not self.showEdit
             self.editFunction(self.showEdit)
         QLiveLib.setVar("CanProcessCueKeys", True)
         wx.CallAfter(self.Refresh)
     evt.Skip()
Beispiel #28
0
 def onMidiLearn(self, evt):
     QLiveLib.setVar("MidiLearnMode", evt.GetInt())
     if evt.GetInt():
         QLiveLib.getVar("MixerPanel").SetBackgroundColour(MIDILEARN_COLOUR)
         QLiveLib.setVar("CanProcessCueKeys", False)
     else:
         QLiveLib.getVar("MixerPanel").SetBackgroundColour(BACKGROUND_COLOUR)
         QLiveLib.setVar("CanProcessCueKeys", True)
Beispiel #29
0
 def onMidiLearn(self, evt):
     QLiveLib.setVar("MidiLearnMode", evt.GetInt())
     if evt.GetInt():
         QLiveLib.getVar("MixerPanel").SetBackgroundColour(MIDILEARN_COLOUR)
         QLiveLib.setVar("CanProcessCueKeys", False)
     else:
         QLiveLib.getVar("MixerPanel").SetBackgroundColour(BACKGROUND_COLOUR)
         QLiveLib.setVar("CanProcessCueKeys", True)
Beispiel #30
0
    def saveFile(self, path):
        curpath = QLiveLib.getVar("currentProject")
        bakpath = curpath + ".bak"
        shutil.copy(curpath, bakpath)
        try:
            if not QLiveLib.getVar("locked"):
                QLiveLib.getVar("CuesPanel").onSaveCue()
            dictSave = self.getCurrentState()
            self.saveState = copy.deepcopy(dictSave)
            QLiveLib.setVar("currentProject", path)
            QLiveLib.setVar("projectFolder", os.path.dirname(path))
            with open(path, "w") as f:
                f.write(QLIVE_MAGIC_LINE)
                f.write("### %s ###\n" % APP_VERSION)
                f.write("dictSave = %s" % pprint.pformat(dictSave, indent=4))
            success = True
            self.setTitle(os.path.split(path)[1])
        except:
            msg = "Failed to save file. Backup was created in project directory..."
            win = wx.MessageDialog(self, msg, style=wx.OK|wx.ICON_ERROR)
            success = False

        if success:
            os.remove(bakpath)
Beispiel #31
0
 def loadFile(self, path):
     with open(path, "r") as f:
         magicline = f.readline()
     if magicline != QLIVE_MAGIC_LINE:
         print "The file loaded is not a valid QLive file."
         return
     self.tracks.close()
     execfile(path, globals())
     if path == NEW_FILE_PATH:
         QLiveLib.setVar("currentProject", "")
         QLiveLib.setVar("projectFolder", "")
     else:
         QLiveLib.setVar("currentProject", path)
         QLiveLib.setVar("projectFolder", os.path.dirname(path))
         self.newRecent(path)
     self.saveState = copy.deepcopy(dictSave)
     self.tracks.setSaveState(self.saveState["tracks"])
     self.cues.setSaveDict(self.saveState["cues"])
     self.mixer.setSaveDict(self.saveState["mixer"])
     self.audioServer.setSaveState(self.saveState.get("server", {}))
     if "soundfiles" in self.saveState:
         self.soundfiles.setSaveState(self.saveState["soundfiles"])
     linkMenuItem = self.GetMenuBar().FindItemById(LINK_STEREO_ID)
     linkMenuItem.Check(dictSave["mixer"].get("inputLinked", False))
Beispiel #32
0
    def __init__(self, pos, size):
        wx.Frame.__init__(self, None, pos=pos, size=size)
        
        self.SetMinSize((600, 400))
        self.SetTitle("QLive Session")

        # Status bar, the third filed is unused yet.
        self.status = self.CreateStatusBar(3)
        self.status.SetStatusWidths([100, 100, -1])
        self.status.SetStatusText("CPU: 0.0 %", 0)
        self.status.SetStatusText("MEM: 0.00 Mb", 1)

        # Retrieve the current process
        self.process = psutil.Process()

        # Start a timer to update CPU and memory usage
        self.timer = wx.Timer(self)
        self.Bind(wx.EVT_TIMER, self.updateUsage, self.timer)
        self.timer.Start(1000)

        self.audioServer = AudioServer()
        QLiveLib.setVar("AudioServer", self.audioServer)

        self.saveState = None

        menubar = wx.MenuBar()
        menu1 = wx.Menu()
        menu1.Append(wx.ID_NEW, "New\tCtrl+N")
        self.Bind(wx.EVT_MENU, self.onNew, id=wx.ID_NEW)        
        menu1.Append(wx.ID_OPEN, "Open\tCtrl+O")
        self.Bind(wx.EVT_MENU, self.onLoad, id=wx.ID_OPEN)
        self.submenu1 = wx.Menu()
        ID_OPEN_RECENT = 2000
        recentFiles = []
        filename = QLiveLib.ensureNFD(OPEN_RECENT_PATH)
        if os.path.isfile(filename):
            f = codecs.open(filename, "r", encoding="utf-8")
            for line in f.readlines():
                recentFiles.append(line.replace("\n", ""))
            f.close()
        if recentFiles:
            for file in recentFiles:
                self.submenu1.Append(ID_OPEN_RECENT, file)
                self.Bind(wx.EVT_MENU, self.openRecent, id=ID_OPEN_RECENT)
                ID_OPEN_RECENT += 1
        menu1.AppendMenu(1999, "Open Recent...", self.submenu1)
        menu1.AppendSeparator()
        menu1.Append(wx.ID_CLOSE, "Close\tCtrl+W")
        self.Bind(wx.EVT_MENU, self.onClose, id=wx.ID_CLOSE)        
        menu1.Append(wx.ID_SAVE, "Save\tCtrl+S")
        self.Bind(wx.EVT_MENU, self.onSave, id=wx.ID_SAVE)        
        menu1.Append(wx.ID_SAVEAS, "Save As...\tShift+Ctrl+S")
        self.Bind(wx.EVT_MENU, self.onSaveAs, id=wx.ID_SAVEAS)
        if PLATFORM != "darwin":
            menu1.AppendSeparator()
        prefItem = menu1.Append(wx.ID_PREFERENCES, "Preferences...\tCtrl+;")
        self.Bind(wx.EVT_MENU, self.openPrefs, prefItem)
        if PLATFORM != "darwin":
            menu1.AppendSeparator()
        quitItem = menu1.Append(wx.ID_EXIT, "Quit\tCtrl+Q")
        self.Bind(wx.EVT_MENU, self.OnClose, quitItem)
        menubar.Append(menu1, 'File')

        menu2 = wx.Menu()
        menu2.Append(NEW_TRACK_ID, "Add Track\tCtrl+T")
        self.Bind(wx.EVT_MENU, self.onNewTrack, id=NEW_TRACK_ID)        
        menu2.Append(DELETE_TRACK_ID, "Delete Track\tShift+Ctrl+D")
        self.Bind(wx.EVT_MENU, self.onDeleteTrack, id=DELETE_TRACK_ID)        
        menubar.Append(menu2, 'Tracks')

        menu3 = wx.Menu()
        menu3.AppendCheckItem(LINK_STEREO_ID, "Link Mixer Sliders\tCtrl+L")
        self.Bind(wx.EVT_MENU, self.onLinkSliders, id=LINK_STEREO_ID)        
        menubar.Append(menu3, 'Mixer')

        self.SetMenuBar(menubar)

        tabId = wx.NewId()
        self.prevId = wx.NewId()
        self.nextId = wx.NewId()
        accel_tbl = wx.AcceleratorTable([(wx.ACCEL_NORMAL,  wx.WXK_TAB, tabId),
                                        (wx.ACCEL_NORMAL,  wx.WXK_LEFT, self.prevId),
                                        (wx.ACCEL_NORMAL,  wx.WXK_RIGHT, self.nextId)])
        self.SetAcceleratorTable(accel_tbl)
        
        self.Bind(wx.EVT_MENU, self.onTabulate, id=tabId)
        self.Bind(wx.EVT_MENU, self.onMoveCue, id=self.prevId, id2=self.nextId)

        self.mainPanel = wx.Panel(self, style=wx.SUNKEN_BORDER)
        self.mainPanel.SetBackgroundColour(BACKGROUND_COLOUR)

        self.audioMixer = AudioMixer()
        QLiveLib.setVar("AudioMixer", self.audioMixer)

        self.controlPanel = ControlPanel(self.mainPanel)
        QLiveLib.setVar("ControlPanel", self.controlPanel)
        csize = self.controlPanel.GetSize()
        
        self.cues = CuesPanel(self.mainPanel, size=(csize[0], 1000))
        QLiveLib.setVar("CuesPanel", self.cues)

        splitter = wx.SplitterWindow(self.mainPanel, 
                                     style=wx.SP_LIVE_UPDATE|wx.SP_3DSASH)
        
        self.tracks = FxTracks(splitter)
        QLiveLib.setVar("FxTracks", self.tracks)

        self.soundfiles = SoundFilePanel(splitter)
        QLiveLib.setVar("Soundfiles", self.soundfiles)

        splitter.SetMinimumPaneSize(60)
        splitter.SplitHorizontally(self.tracks, self.soundfiles, 350)

        self.mixer = MixerPanel(self.mainPanel, self.audioMixer)
        QLiveLib.setVar("MixerPanel", self.mixer)

        self.mainSizer = wx.BoxSizer(wx.HORIZONTAL)
        self.rightSizer = wx.BoxSizer(wx.VERTICAL)
        self.controlSizer = wx.BoxSizer(wx.VERTICAL)
        self.controlSizer.Add(self.controlPanel, 0)
        self.controlSizer.Add(self.cues, 1, wx.EXPAND)
        self.rightSizer.Add(splitter, 1, wx.EXPAND, 5)
        self.rightSizer.Add(self.mixer, 0, wx.EXPAND, 5)
        self.mainSizer.Add(self.controlSizer, 0)
        self.mainSizer.AddSizer(self.rightSizer, 2, wx.EXPAND, 5)
        self.mainPanel.SetSizer(self.mainSizer)

        wx.CallAfter(self.showIntro)
Beispiel #33
0
 def onfocus(self, evt):
     QLiveLib.setVar("CanProcessCueKeys", False)
Beispiel #34
0
 def doubleClick(self, evt):
     self.SelectAll()
     QLiveLib.setVar("CanProcessCueKeys", False)
Beispiel #35
0
 def setSamplingRate(self, evt):
     if QLiveLib.getVar("sr") != evt.GetString():
         self.reinit_server = True
     QLiveLib.setVar("sr", evt.GetString())
 def setnumOutputChannels(self, evt):
     if QLiveLib.getVar("nchnls") != int(evt.GetString()):
         self.reinit_server = True
     QLiveLib.setVar("nchnls", int(evt.GetString()))
Beispiel #37
0
    def __init__(self, pos, size):
        wx.Frame.__init__(self, None, pos=pos, size=size)

        self.SetMinSize((600, 400))
        self.SetTitle("QLive Session")

        # Status bar, the third field is unused yet.
        self.status = self.CreateStatusBar(3)
        self.status.SetStatusWidths([100, 150, -1])
        self.status.SetStatusText("CPU: 0.0 %", 0)
        self.status.SetStatusText("MEM: 0.00 Mb", 1)

        # Retrieve the current process
        self.process = psutil.Process()

        # Start a timer to update CPU and memory usage
        self.timer = wx.Timer(self)
        self.Bind(wx.EVT_TIMER, self.updateUsage, self.timer)
        self.timer.Start(1000)

        # Query & load available Audio and MIDI drivers
        QLiveLib.queryAudioMidiDrivers()

        self.audioServer = AudioServer()
        QLiveLib.setVar("AudioServer", self.audioServer)
        self.midiServer = MidiServer()
        QLiveLib.setVar("MidiServer", self.midiServer)

        self.saveState = None

        menubar = wx.MenuBar()
        menu1 = wx.Menu()
        menu1.Append(wx.ID_NEW, "New\tCtrl+N")
        self.Bind(wx.EVT_MENU, self.onNew, id=wx.ID_NEW)
        menu1.Append(wx.ID_OPEN, "Open\tCtrl+O")
        self.Bind(wx.EVT_MENU, self.onLoad, id=wx.ID_OPEN)
        self.submenu1 = wx.Menu()
        ID_OPEN_RECENT = 2000
        recentFiles = QLiveLib.getRecentFiles()
        if recentFiles:
            for file in recentFiles:
                self.submenu1.Append(ID_OPEN_RECENT, file)
                self.Bind(wx.EVT_MENU, self.openRecent, id=ID_OPEN_RECENT)
                ID_OPEN_RECENT += 1
        menu1.AppendMenu(1999, "Open Recent...", self.submenu1)
        menu1.AppendSeparator()
        menu1.Append(wx.ID_CLOSE, "Close\tCtrl+W")
        self.Bind(wx.EVT_MENU, self.onClose, id=wx.ID_CLOSE)
        menu1.Append(wx.ID_SAVE, "Save\tCtrl+S")
        self.Bind(wx.EVT_MENU, self.onSave, id=wx.ID_SAVE)
        menu1.Append(wx.ID_SAVEAS, "Save As...\tShift+Ctrl+S")
        self.Bind(wx.EVT_MENU, self.onSaveAs, id=wx.ID_SAVEAS)
        if PLATFORM != "darwin":
            menu1.AppendSeparator()
        prefItem = menu1.Append(wx.ID_PREFERENCES, "Preferences...\tCtrl+;")
        self.Bind(wx.EVT_MENU, self.openPrefs, prefItem)
        if PLATFORM != "darwin":
            menu1.AppendSeparator()
        quitItem = menu1.Append(wx.ID_EXIT, "Quit\tCtrl+Q")
        self.Bind(wx.EVT_MENU, self.OnQuit, quitItem)
        menubar.Append(menu1, 'File')

        menu4 = wx.Menu()
        menu4.Append(CUE_CUT_ID, "Cut Cue\tCtrl+X")
        self.Bind(wx.EVT_MENU, self.onCueCut, id=CUE_CUT_ID)
        menu4.Append(CUE_COPY_ID, "Copy Cue\tCtrl+C")
        self.Bind(wx.EVT_MENU, self.onCueCopy, id=CUE_COPY_ID)
        menu4.Append(CUE_PASTE_ID, "Paste Cue\tCtrl+V")
        self.Bind(wx.EVT_MENU, self.onCuePaste, id=CUE_PASTE_ID)
        menubar.Append(menu4, 'Cues')

        menu2 = wx.Menu()
        menu2.Append(NEW_TRACK_ID, "Add Track\tCtrl+T")
        self.Bind(wx.EVT_MENU, self.onNewTrack, id=NEW_TRACK_ID)
        menu2.Append(DELETE_TRACK_ID, "Delete Track\tShift+Ctrl+D")
        self.Bind(wx.EVT_MENU, self.onDeleteTrack, id=DELETE_TRACK_ID)
        menubar.Append(menu2, 'Tracks')

        menu3 = wx.Menu()
        menu3.AppendCheckItem(MIDI_LEARN_ID, "Midi Learn Mode\tShift+Ctrl+M")
        self.Bind(wx.EVT_MENU, self.onMidiLearn, id=MIDI_LEARN_ID)
        menu3.AppendSeparator()
        menu3.Append(INTERP_TIME_ID, "Set Global Interpolation Time\tCtrl+G")
        self.Bind(wx.EVT_MENU, self.onNewInterpTime, id=INTERP_TIME_ID)
        menu3.AppendSeparator()
        menu3.AppendCheckItem(VIEW_CUE_WINDOW_ID,
                              "Show Current Cue Window\tShift+Ctrl+C")
        self.Bind(wx.EVT_MENU, self.onViewCurrentCue, id=VIEW_CUE_WINDOW_ID)
        menu3.AppendSeparator()
        menu3.AppendCheckItem(LINK_STEREO_ID, "Link Mixer Sliders\tCtrl+L")
        self.Bind(wx.EVT_MENU, self.onLinkSliders, id=LINK_STEREO_ID)
        menubar.Append(menu3, 'Actions')

        self.SetMenuBar(menubar)

        tabId = wx.NewId()
        self.prevId = KEY_EVENT_FIRST_ID
        self.nextId = KEY_EVENT_FIRST_ID + 1
        self.cueZeroId = KEY_EVENT_FIRST_ID + 2
        self.cue1Id = KEY_EVENT_FIRST_ID + 3
        self.cue2Id = KEY_EVENT_FIRST_ID + 4
        self.cue3Id = KEY_EVENT_FIRST_ID + 5
        self.cue4Id = KEY_EVENT_FIRST_ID + 6
        self.cue5Id = KEY_EVENT_FIRST_ID + 7
        self.cue6Id = KEY_EVENT_FIRST_ID + 8
        self.cue7Id = KEY_EVENT_FIRST_ID + 9
        self.cue8Id = KEY_EVENT_FIRST_ID + 10
        self.cue9Id = KEY_EVENT_FIRST_ID + 11
        self.cue10Id = KEY_EVENT_FIRST_ID + 12
        accel_tbl = wx.AcceleratorTable(
                            [(wx.ACCEL_NORMAL,  wx.WXK_TAB, tabId),
                            (wx.ACCEL_NORMAL,  wx.WXK_LEFT, self.prevId),
                            (wx.ACCEL_NORMAL,  wx.WXK_RIGHT, self.nextId),
                            (wx.ACCEL_NORMAL,  wx.WXK_ESCAPE, self.cueZeroId),
                            (wx.ACCEL_NORMAL,  ord("1"), self.cue1Id),
                            (wx.ACCEL_NORMAL,  ord("2"), self.cue2Id),
                            (wx.ACCEL_NORMAL,  ord("3"), self.cue3Id),
                            (wx.ACCEL_NORMAL,  ord("4"), self.cue4Id),
                            (wx.ACCEL_NORMAL,  ord("5"), self.cue5Id),
                            (wx.ACCEL_NORMAL,  ord("6"), self.cue6Id),
                            (wx.ACCEL_NORMAL,  ord("7"), self.cue7Id),
                            (wx.ACCEL_NORMAL,  ord("8"), self.cue8Id),
                            (wx.ACCEL_NORMAL,  ord("9"), self.cue9Id),
                            (wx.ACCEL_NORMAL,  ord("0"), self.cue10Id)])
        self.SetAcceleratorTable(accel_tbl)

        self.Bind(wx.EVT_MENU, self.onTabulate, id=tabId)
        self.Bind(wx.EVT_MENU, self.onMoveCue, id=KEY_EVENT_FIRST_ID,
                  id2=KEY_EVENT_FIRST_ID+100)

        self.mainPanel = wx.Panel(self, style=wx.SUNKEN_BORDER)
        self.mainPanel.SetBackgroundColour(BACKGROUND_COLOUR)

        self.audioMixer = AudioMixer()
        QLiveLib.setVar("AudioMixer", self.audioMixer)

        self.controlPanel = ControlPanel(self.mainPanel)
        QLiveLib.setVar("ControlPanel", self.controlPanel)
        csize = self.controlPanel.GetSize()

        self.cues = CuesPanel(self.mainPanel, size=(csize[0], 1000))
        QLiveLib.setVar("CuesPanel", self.cues)

        self.currentCueWindow = CurrentCuePanel(self)
        QLiveLib.setVar("CurrentCueWindow", self.currentCueWindow)

        splitter = wx.SplitterWindow(self.mainPanel,
                                     style=wx.SP_LIVE_UPDATE|wx.SP_3DSASH)

        self.soundfiles = SoundFilePanel(splitter)
        QLiveLib.setVar("Soundfiles", self.soundfiles)

        self.tracks = FxTracks(splitter)
        QLiveLib.setVar("FxTracks", self.tracks)

        splitter.SetMinimumPaneSize(60)
        splitter.SplitHorizontally(self.tracks, self.soundfiles, 350)

        self.mixer = MixerPanel(self.mainPanel, self.audioMixer)
        QLiveLib.setVar("MixerPanel", self.mixer)

        self.mainSizer = wx.BoxSizer(wx.HORIZONTAL)
        self.rightSizer = wx.BoxSizer(wx.VERTICAL)
        self.controlSizer = wx.BoxSizer(wx.VERTICAL)
        self.controlSizer.Add(self.controlPanel, 0)
        self.controlSizer.Add(self.cues, 1, wx.EXPAND)
        self.rightSizer.Add(splitter, 1, wx.EXPAND, 5)
        self.rightSizer.Add(self.mixer, 0, wx.EXPAND, 5)
        self.mainSizer.Add(self.controlSizer, 0)
        self.mainSizer.AddSizer(self.rightSizer, 2, wx.EXPAND, 5)
        self.mainPanel.SetSizer(self.mainSizer)

        wx.CallAfter(self.showIntro)
Beispiel #38
0
 def OnCellEditorHidden(self, evt):
     QLiveLib.setVar("CanProcessCueKeys", True)
Beispiel #39
0
 def setBufferSize(self, evt):
     if QLiveLib.getVar("bufferSize") != evt.GetString():
         self.reinit_server = True
     QLiveLib.setVar("bufferSize", evt.GetString())
 def setDuplex(self, evt):
     QLiveLib.setVar("duplex", evt.GetInt())
     self.reinit_server = True
Beispiel #41
0
 def enableTooltips(self, state):
     QLiveLib.setVar("useTooltips", state.GetEventObject().GetValue())
 def setBufferSize(self, evt):
     if QLiveLib.getVar("bufferSize") != evt.GetString():
         self.reinit_server = True
     QLiveLib.setVar("bufferSize", evt.GetString())
Beispiel #43
0
 def LooseFocus(self, event):
     self.selected = False
     QLiveLib.setVar("CanProcessCueKeys", True)
     wx.CallAfter(self.Refresh)
Beispiel #44
0
 def setOutputDevice(self, evt):
     if QLiveLib.getVar("audioOutput") != evt.GetString():
         self.reinit_server = True
     QLiveLib.setVar("audioOutput", evt.GetString())
 def setAudioDriver(self, evt):
     if QLiveLib.getVar("audio") != evt.GetString():
         self.reinit_server = True
     QLiveLib.setVar("audio", evt.GetString())
     self.EnableDisablePortaudioOpts()
Beispiel #46
0
 def setDuplex(self, state):
     if state.GetEventObject().GetValue() == True:
         QLiveLib.setVar("duplex", "1")
     else:
         QLiveLib.setVar("duplex", "0")
     self.reinit_server = True
 def setOutputDevice(self, evt):
     if QLiveLib.getVar("audioOutput") != evt.GetString():
         self.reinit_server = True
     QLiveLib.setVar("audioOutput", evt.GetString())
Beispiel #48
0
    def __init__(self, pos, size):
        wx.Frame.__init__(self, None, pos=pos, size=size)

        self.SetMinSize((600, 400))

        # Status bar, the third field is unused yet.
        self.status = self.CreateStatusBar(3)
        self.status.SetStatusWidths([100, 150, -1])
        self.status.SetStatusText("CPU: 0.0 %", 0)
        self.status.SetStatusText("MEM: 0.00 Mb", 1)

        # Retrieve the current process
        self.process = psutil.Process()

        # Start a timer to update CPU and memory usage
        self.timer = wx.Timer(self)
        self.Bind(wx.EVT_TIMER, self.updateUsage, self.timer)
        self.timer.Start(1000)

        # Query & load available Audio and MIDI drivers
        QLiveLib.queryAudioMidiDrivers()

        self.audioServer = AudioServer()
        QLiveLib.setVar("AudioServer", self.audioServer)
        self.midiServer = MidiServer()
        QLiveLib.setVar("MidiServer", self.midiServer)

        self.saveState = None

        menubar = wx.MenuBar()
        menu1 = wx.Menu()
        menu1.Append(wx.ID_NEW, "New\tCtrl+N")
        self.Bind(wx.EVT_MENU, self.onNew, id=wx.ID_NEW)
        menu1.Append(wx.ID_OPEN, "Open\tCtrl+O")
        self.Bind(wx.EVT_MENU, self.onLoad, id=wx.ID_OPEN)
        self.submenu1 = wx.Menu()
        ID_OPEN_RECENT = 2000
        recentFiles = QLiveLib.getRecentFiles()
        if recentFiles:
            for file in recentFiles:
                self.submenu1.Append(ID_OPEN_RECENT, file)
                self.Bind(wx.EVT_MENU, self.openRecent, id=ID_OPEN_RECENT)
                ID_OPEN_RECENT += 1
        menu1.AppendMenu(1999, "Open Recent...", self.submenu1)
        menu1.AppendSeparator()
        menu1.Append(wx.ID_CLOSE, "Close\tCtrl+W")
        self.Bind(wx.EVT_MENU, self.onClose, id=wx.ID_CLOSE)
        menu1.Append(wx.ID_SAVE, "Save\tCtrl+S")
        self.Bind(wx.EVT_MENU, self.onSave, id=wx.ID_SAVE)
        menu1.Append(wx.ID_SAVEAS, "Save As...\tShift+Ctrl+S")
        self.Bind(wx.EVT_MENU, self.onSaveAs, id=wx.ID_SAVEAS)
        menu1.Append(EXPORT_MEI_ID, "Export MEI...\tShift+Ctrl+M")
        self.Bind(wx.EVT_MENU, self.onExportMEI, id=EXPORT_MEI_ID)
        menu1.Append(EXPORT_PDF_ID, "Export PDF...\tShift+Ctrl+P")
        self.Bind(wx.EVT_MENU, self.onExportPDF, id=EXPORT_PDF_ID)
        menu1.Enable(EXPORT_PDF_ID, False)
        if PLATFORM != "darwin":
            menu1.AppendSeparator()
        metaItem = menu1.Append(wx.ID_PROPERTIES, "Properties...")
        self.Bind(wx.EVT_MENU, self.openMeta, metaItem)
        if PLATFORM != "darwin":
            menu1.AppendSeparator()
        quitItem = menu1.Append(wx.ID_EXIT, "Quit\tCtrl+Q")
        self.Bind(wx.EVT_MENU, self.OnQuit, quitItem)
        menubar.Append(menu1, 'File')

        menu4 = wx.Menu()
        menu4.Append(CUE_CUT_ID, "Cut Cue\tCtrl+X")
        self.Bind(wx.EVT_MENU, self.onCueCut, id=CUE_CUT_ID)
        menu4.Append(CUE_COPY_ID, "Copy Cue\tCtrl+C")
        self.Bind(wx.EVT_MENU, self.onCueCopy, id=CUE_COPY_ID)
        menu4.Append(CUE_PASTE_ID, "Paste Cue\tCtrl+V")
        self.Bind(wx.EVT_MENU, self.onCuePaste, id=CUE_PASTE_ID)
        if PLATFORM != "darwin":
            menu4.AppendSeparator()
        menu4.Append(NEW_TRACK_ID, "Add Track\tCtrl+T")
        self.Bind(wx.EVT_MENU, self.onNewTrack, id=NEW_TRACK_ID)
        menu4.Append(DELETE_TRACK_ID, "Delete Track\tShift+Ctrl+D")
        self.Bind(wx.EVT_MENU, self.onDeleteTrack, id=DELETE_TRACK_ID)
        if PLATFORM != "darwin":
            menu4.AppendSeparator()
        prefItem = menu4.Append(wx.ID_PREFERENCES, "Preferences...\tCtrl+;")
        self.Bind(wx.EVT_MENU, self.openPrefs, prefItem)
        menubar.Append(menu4, 'Edit')


        menu3 = wx.Menu()
        item = menu3.AppendCheckItem(PLAY_MODE_ID, "Play Mode\tCtrl+E")
        item.Check(True)
        self.Bind(wx.EVT_MENU, self.onPlayMode, id=PLAY_MODE_ID)
        menu3.AppendSeparator()
        menu3.AppendCheckItem(MIDI_LEARN_ID, "Midi Learn Mode\tShift+Ctrl+M")
        self.Bind(wx.EVT_MENU, self.onMidiLearn, id=MIDI_LEARN_ID)
        menu3.AppendSeparator()
        menu3.Append(INTERP_TIME_ID, "Set Global Interpolation Time\tCtrl+G")
        self.Bind(wx.EVT_MENU, self.onNewInterpTime, id=INTERP_TIME_ID)
        menu3.AppendSeparator()
        menu3.AppendCheckItem(VIEW_CUE_WINDOW_ID,
                              "Show Current Cue Window\tShift+Ctrl+C")
        self.Bind(wx.EVT_MENU, self.onViewCurrentCue, id=VIEW_CUE_WINDOW_ID)
        menu3.AppendSeparator()
        menu3.AppendCheckItem(LINK_STEREO_ID, "Link Mixer Sliders\tCtrl+L")
        self.Bind(wx.EVT_MENU, self.onLinkSliders, id=LINK_STEREO_ID)
        menubar.Append(menu3, 'Actions')

        self.SetMenuBar(menubar)

        tabId = wx.NewId()
        self.prevId = KEY_EVENT_FIRST_ID
        self.nextId = KEY_EVENT_FIRST_ID + 1
        self.cueZeroId = KEY_EVENT_FIRST_ID + 2
        self.cue1Id = KEY_EVENT_FIRST_ID + 3
        self.cue2Id = KEY_EVENT_FIRST_ID + 4
        self.cue3Id = KEY_EVENT_FIRST_ID + 5
        self.cue4Id = KEY_EVENT_FIRST_ID + 6
        self.cue5Id = KEY_EVENT_FIRST_ID + 7
        self.cue6Id = KEY_EVENT_FIRST_ID + 8
        self.cue7Id = KEY_EVENT_FIRST_ID + 9
        self.cue8Id = KEY_EVENT_FIRST_ID + 10
        self.cue9Id = KEY_EVENT_FIRST_ID + 11
        self.cue10Id = KEY_EVENT_FIRST_ID + 12
        accel_tbl = wx.AcceleratorTable(
                            [(wx.ACCEL_NORMAL,  wx.WXK_TAB, tabId),
                            (wx.ACCEL_NORMAL,  wx.WXK_LEFT, self.prevId),
                            (wx.ACCEL_NORMAL,  wx.WXK_RIGHT, self.nextId),
                            (wx.ACCEL_NORMAL,  wx.WXK_ESCAPE, self.cueZeroId),
                            (wx.ACCEL_NORMAL,  ord("1"), self.cue1Id),
                            (wx.ACCEL_NORMAL,  ord("2"), self.cue2Id),
                            (wx.ACCEL_NORMAL,  ord("3"), self.cue3Id),
                            (wx.ACCEL_NORMAL,  ord("4"), self.cue4Id),
                            (wx.ACCEL_NORMAL,  ord("5"), self.cue5Id),
                            (wx.ACCEL_NORMAL,  ord("6"), self.cue6Id),
                            (wx.ACCEL_NORMAL,  ord("7"), self.cue7Id),
                            (wx.ACCEL_NORMAL,  ord("8"), self.cue8Id),
                            (wx.ACCEL_NORMAL,  ord("9"), self.cue9Id),
                            (wx.ACCEL_NORMAL,  ord("0"), self.cue10Id)])
        self.SetAcceleratorTable(accel_tbl)

        self.Bind(wx.EVT_MENU, self.onTabulate, id=tabId)
        self.Bind(wx.EVT_MENU, self.onMoveCue, id=KEY_EVENT_FIRST_ID,
                  id2=KEY_EVENT_FIRST_ID+100)

        self.mainPanel = wx.Panel(self, style=wx.SUNKEN_BORDER)

        self.audioMixer = AudioMixer()
        QLiveLib.setVar("AudioMixer", self.audioMixer)

        self.controlPanel = ControlPanel(self.mainPanel)
        QLiveLib.setVar("ControlPanel", self.controlPanel)
        csize = self.controlPanel.GetSize()

        self.cues = CuesPanel(self.mainPanel, size=(csize[0], 1000))
        QLiveLib.setVar("CuesPanel", self.cues)

        self.currentCueWindow = CurrentCuePanel(self)
        QLiveLib.setVar("CurrentCueWindow", self.currentCueWindow)

        self.splitter = wx.SplitterWindow(self.mainPanel,
                                     style=wx.SP_LIVE_UPDATE|wx.SP_3DSASH)

        self.soundfiles = SoundFilePanel(self.splitter)
        QLiveLib.setVar("Soundfiles", self.soundfiles)

        self.tracks = FxTracks(self.splitter)
        QLiveLib.setVar("FxTracks", self.tracks)

        self.splitter.SetMinimumPaneSize(60)
        self.splitter.SplitHorizontally(self.tracks, self.soundfiles, 350)

        self.mixer = MixerPanel(self.mainPanel, self.audioMixer)
        QLiveLib.setVar("MixerPanel", self.mixer)

        self.mainSizer = wx.BoxSizer(wx.HORIZONTAL)
        self.rightSizer = wx.BoxSizer(wx.VERTICAL)
        self.controlSizer = wx.BoxSizer(wx.VERTICAL)
        self.controlSizer.Add(self.controlPanel, 0)
        self.controlSizer.Add(self.cues, 1, wx.EXPAND)
        self.rightSizer.Add(self.splitter, 1, wx.EXPAND, 5)
        self.rightSizer.Add(self.mixer, 0, wx.EXPAND, 5)
        self.mainSizer.Add(self.controlSizer, 0)
        self.mainSizer.AddSizer(self.rightSizer, 2, wx.EXPAND, 5)
        self.mainPanel.SetSizer(self.mainSizer)


        self.setTitle()


        wx.CallAfter(self.showIntro)
 def setFirstPhysicalOutput(self, evt):
     if QLiveLib.getVar("defaultFirstOutput") != int(evt.GetString()):
         self.reinit_server = True
     QLiveLib.setVar("defaultFirstOutput", int(evt.GetString()))
Beispiel #50
0
 def setAudioDriver(self, evt):
     if QLiveLib.getVar("audio") != evt.GetString():
         self.reinit_server = True
     QLiveLib.setVar("audio", evt.GetString())
     self.EnableDisablePortaudioOpts()
 def setSamplingRate(self, evt):
     if QLiveLib.getVar("sr") != evt.GetString():
         self.reinit_server = True
     QLiveLib.setVar("sr", evt.GetString())
Beispiel #52
0
 def OnCellEditorHidden(self, evt):
     QLiveLib.setVar("CanProcessCueKeys", True)
 def enableTooltips(self, state):
     QLiveLib.setVar("useTooltips", state.GetEventObject().GetValue())
Beispiel #54
0
 def OnCellEditorShown(self, evt):
     QLiveLib.setVar("CanProcessCueKeys", False)
Beispiel #55
0
 def envOnInputsInterp(self, value, interp):
     self.envInputsInterp = value
     QLiveLib.setVar("CanProcessCueKeys", True)
     self.callback()
Beispiel #56
0
 def envOnInputsInterp(self, value, interp):
     self.envInputsInterp = value
     QLiveLib.setVar("CanProcessCueKeys", True)
     self.callback()
Beispiel #57
0
 def OnCellEditorShown(self, evt):
     QLiveLib.setVar("CanProcessCueKeys", False)
Beispiel #58
0
 def setFirstPhysicalOutput(self, evt):
     if QLiveLib.getVar("defaultFirstOutput") != int(evt.GetString()):
         self.reinit_server = True
     QLiveLib.setVar("defaultFirstOutput", int(evt.GetString()))