Lines Matching full:self
59 def __init__(self, jet_file, pSize):
60 wx.Dialog.__init__(self, None, -1, title=JetDefs.DLG_AUDITION)
62 self.jet = None
63 self.playerLock = threading.RLock()
64 self.jet_file = jet_file
65 self.queueSegs = []
66 self.keepPlaying = True
67 self.nextSegNum = 0
68 self.currentSegmentIndex = None
69 self.currentSegmentName = ""
70 self.playCommand = ""
71 self.threadShutdown = True
73 panel = wx.Panel(self, -1)
75 self.segList = JetListCtrl(panel)
76 self.segList.AddCol(JetDefs.GRD_SEGMENTS, 180)
77 self.segList.AddCol(JetDefs.GRD_LENGTH, 20)
79 self.segList.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnQueueSegment)
80 self.segList.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnSegListClick)
82 self.queueList = JetListCtrl(panel)
83 self.queueList.AddCol(JetDefs.GRD_QUEUE, 180)
84 self.queueList.AddCol(JetDefs.GRD_STATUS, 20)
86 self.trackList = JetTrackCtrl(panel)
87 self.trackList.AddCol(JetDefs.GRD_TRACK, JetDefs.MUTEGRD_TRACK)
88 self.trackList.AddCol(JetDefs.GRD_CHANNEL, JetDefs.MUTEGRD_CHANNEL)
89 self.trackList.AddCol(JetDefs.GRD_NAME, JetDefs.MUTEGRD_NAME)
90 self.trackList.BindCheckBox(self.OnTrackChecked)
92 self.btnMuteAll = wx.Button(panel, -1, JetDefs.BUT_MUTEALL)
93 self.btnUnMuteAll = wx.Button(panel, -1, JetDefs.BUT_MUTENONE)
94 self.btnMuteOrg = wx.Button(panel, -1, JetDefs.BUT_ORGMUTES)
96 hMuteButs.Add(self.btnMuteAll, 1, wx.EXPAND)
97 hMuteButs.Add(self.btnUnMuteAll, 1, wx.EXPAND)
98 hMuteButs.Add(self.btnMuteOrg, 1, wx.EXPAND)
100 vMuteButs.Add(self.trackList, 1, wx.EXPAND)
104 self.btnQueue = wx.Button(panel, -1, JetDefs.BUT_QUEUE)
105 self.btnCancelNQueue = wx.Button(panel, -1, JetDefs.BUT_CANCELANDQUEUE)
107 hSegButs.Add(self.btnQueue, 1, wx.EXPAND)
108 hSegButs.Add(self.btnCancelNQueue, 1, wx.EXPAND)
110 vSegButs.Add(self.segList, 1, wx.EXPAND)
114 self.btnQueueCancelCurrent = wx.Button(panel, -1, JetDefs.BUT_CANCELCURRENT)
115 self.btnPause = wx.Button(panel, -1, JetDefs.BUT_PAUSE)
116 self.btnStop = wx.Button(panel, -1, JetDefs.BUT_STOP)
118 hQueueButs.Add(self.btnQueueCancelCurrent, 1, wx.EXPAND)
119 hQueueButs.Add(self.btnPause, 1, wx.EXPAND)
120 hQueueButs.Add(self.btnStop, 1, wx.EXPAND)
122 vQueueButs.Add(self.queueList, 1, wx.EXPAND)
126 self.Bind(wx.EVT_BUTTON, self.OnQueueSegmentViaBut, id=self.btnQueue.GetId())
127 self.Bind(wx.EVT_BUTTON, self.OnCancelNQueue, id=self.btnCancelNQueue.GetId())
128 self.Bind(wx.EVT_BUTTON, self.OnStop, id=self.btnStop.GetId())
129 self.Bind(wx.EVT_BUTTON, self.OnQueueCancelCurrent, id=self.btnQueueCancelCurrent.GetId())
130 self.Bind(wx.EVT_BUTTON, self.OnPause, id=self.btnPause.GetId())
131 self.Bind(wx.EVT_BUTTON, self.OnMuteAll, id=self.btnMuteAll.GetId())
132 self.Bind(wx.EVT_BUTTON, self.OnUnMuteAll, id=self.btnUnMuteAll.GetId())
133 self.Bind(wx.EVT_BUTTON, self.OnMuteOrg, id=self.btnMuteOrg.GetId())
135 EVT_JET_STATUS(self, self.OnJetStatusUpdate)
145 self.log = wx.TextCtrl(panel, -1)
146 self.graph = SegmentGraph(panel, size=(-1, 50))
147 self.graph.ClickCallbackFct = self.GraphTriggerClip
150 vboxBot.Add(self.log, 0, wx.EXPAND)
152 vboxBot.Add(self.graph, 1, wx.EXPAND)
160 self.LoadSegList()
161 self.initHelp()
163 self.SetSize(pSize)
164 self.CenterOnParent()
166 wx.EVT_CLOSE(self, self.OnClose)
168 thread.start_new_thread(self.PlaySegs, ())
170 def initHelp(self):
172 self.SetExtraStyle(wx.DIALOG_EX_CONTEXTHELP )
173 self.SetHelpText(GetJetHelpText(JetDefs.AUDITION_CTRLS, ''))
174 self.segList.SetHelpText(GetJetHelpText(JetDefs.AUDITION_CTRLS, JetDefs.AUDITION_SEGLIST))
175 self.queueList.SetHelpText(GetJetHelpText(JetDefs.AUDITION_CTRLS, JetDefs.AUDITION_QUEUELIST))
176 self.trackList.SetHelpText(GetJetHelpText(JetDefs.AUDITION_CTRLS, JetDefs.AUDITION_TRACKLIST))
177 self.graph.SetHelpText(GetJetHelpText(JetDefs.AUDITION_CTRLS, JetDefs.AUDITION_GRAPH))
179 def OnMuteAll(self, event):
181 self.SetPlayCommand(CMD_MUTEALL)
183 def OnUnMuteAll(self, event):
185 self.SetPlayCommand(CMD_UNMUTEALL)
187 def OnMuteOrg(self, event):
189 self.SetPlayCommand(CMD_ORIGINALMUTES)
191 def OnTrackChecked(self, index, checked):
193 with self.playerLock:
194 trackNum = self.trackList.GetTrackNumber(index)
195 self.SetMuteFlag(trackNum, checked)
197 def SetMuteFlag(self, trackNum, mute):
199 with self.playerLock:
202 self.jet.SetMuteFlag(trackNum, mute, sync)
208 def LoadSegList(self):
210 with self.playerLock:
211 self.segList.DeleteAllItems()
212 for segment in self.jet_file.GetSegments():
214 index = self.segList.InsertStringItem(sys.maxint, StrNoneChk(segment.segname))
215 self.segList.SetStringItem(index, 1, TimeStr(info.iLengthInMs))
217 def GraphTriggerClip(self, sClipName, iEventId):
219 with self.playerLock:
221 self.jet.TriggerClip(iEventId)
222 self.log.SetValue(JetDefs.PLAY_TRIGGERCLIP_MSG % (iEventId, sClipName))
227 def OnSegListClick(self, event):
229 with self.playerLock:
230 self.currentSegmentIndex = event.m_itemIndex
231 self.currentSegmentName = getColumnText(self.segList, event.m_itemIndex, 0)
233 def OnCancelNQueue(self, event):
235 if self.currentSegmentIndex == None:
237 self.SetPlayCommand(CMD_QUEUE_AND_CANCEL)
239 def OnPause(self, event):
241 if self.currentSegmentIndex == None:
243 self.SetPlayCommand(CMD_PAUSE)
245 def OnStop(self, event):
247 if self.currentSegmentIndex == None:
249 self.SetPlayCommand(CMD_STOP)
251 def OnQueueCancelCurrent(self, event):
253 if self.currentSegmentIndex == None:
255 self.SetPlayCommand(CMD_QUEUE_AND_CANCEL_CURRENT)
257 def OnQueueSegmentViaBut(self, event):
259 if self.currentSegmentIndex == None:
261 with self.playerLock:
262 segNum = self.currentSegmentIndex
263 segment = self.jet_file.GetSegment(self.currentSegmentName)
264 self.QueueOneSegment(segment, segNum)
266 def OnQueueSegment(self, event):
268 with self.playerLock:
270 segment = self.jet_file.GetSegment(getColumnText(self.segList, segNum, 0))
271 self.QueueOneSegment(segment, segNum)
273 def QueueOneSegment(self, segment, segNum):
275 with self.playerLock:
276 userID = len(self.queueSegs)
278 dls_num = FindDlsNum(self.jet_file.libraries, segment.dlsfile)
281 self.queueSegs.append(QueueSeg(segment.segname, userID, segNum, dls_num, segment.repeat, segment.transpose, segment.mute_flags, STATUS_PENDING))
282 self.LoadQueueDisplay()
284 def SetKeepPlayingFlag(self, val):
286 with self.playerLock:
287 self.keepPlaying = val
289 def GetKeepPlayingFlag(self):
291 with self.playerLock:
292 return self.keepPlaying
294 def SetThreadShutdownFlag(self, val):
296 with self.playerLock:
297 self.threadShutdown = val
299 def GetThreadShutdownFlag(self):
301 with self.playerLock:
302 return self.threadShutdown
304 def SetPlayCommand(self, cmd):
306 with self.playerLock:
307 self.playCommand = cmd
309 def GetPlayCommand(self):
311 with self.playerLock:
312 return self.playCommand
314 def SetStatus(self, index, status):
316 with self.playerLock:
317 self.queueSegs[index].status = status
319 def GetStatus(self, index):
321 with self.playerLock:
322 return self.queueSegs[index].status
324 def LoadQueueDisplay(self):
326 with self.playerLock:
327 self.queueList.DeleteAllItems()
328 for item in self.queueSegs:
329 index = self.queueList.InsertStringItem(sys.maxint, item.name)
330 self.queueList.SetStringItem(index, 1, item.status)
332 def NextSegment(self):
334 with self.playerLock:
335 num = len(self.queueSegs)
337 if self.queueSegs[i].status == STATUS_PENDING:
341 def PlaySegs(self):
343 self.jet = JET()
344 self.jet.eas.StartWave()
345 self.jet.OpenFile(self.jet_file.config.filename)
347 self.SetKeepPlayingFlag(True)
348 while self.GetKeepPlayingFlag():
349 self.SetThreadShutdownFlag(False)
352 index = self.NextSegment()
356 Queue(self.jet, self.queueSegs[index])
358 self.SetStatus(index, STATUS_QUEUED)
360 wx.PostEvent(self, JetStatusEvent(LOAD_QUEUE_DISPLAY, None))
362 self.jet.Play()
363 self.paused = False
364 wx.PostEvent(self, JetStatusEvent(CMD_PLAY, None))
366 while self.GetKeepPlayingFlag():
367 self.jet.Render()
368 status = self.jet.Status()
371 wx.PostEvent(self, JetStatusEvent(NEW_SEGMENT_DISPLAY, status.currentUserID))
373 self.SetStatus(lastID, STATUS_COMPLETE)
374 self.SetStatus(status.currentUserID, STATUS_PLAYING)
376 wx.PostEvent(self, JetStatusEvent(LOAD_QUEUE_DISPLAY, None))
381 self.jet.GetAppEvent()
383 index = self.NextSegment()
385 Queue(self.jet, self.queueSegs[index])
386 self.SetStatus(index, STATUS_QUEUED)
387 wx.PostEvent(self, JetStatusEvent(LOAD_QUEUE_DISPLAY, None))
389 wx.PostEvent(self, JetStatusEvent(GRAPH_POSITION_UPDATE, status.location))
391 playCmd = self.GetPlayCommand()
394 num = len(self.queueSegs)
396 curStatus = self.GetStatus(i)
398 self.SetStatus(i, STATUS_CANCELED)
401 self.SetStatus(status.currentUserID, STATUS_CANCELED)
402 num = len(self.queueSegs)
404 curStatus = self.GetStatus(i)
406 self.SetStatus(i, STATUS_PENDING)
409 segNum = self.currentSegmentIndex
410 segment = self.jet_file.GetSegment(self.currentSegmentName)
411 wx.PostEvent(self, JetStatusEvent(CMD_QUEUE_AND_CANCEL, (segment, segNum)))
415 self.jet.Clear_Queue()
417 self.jet = self.SafeJetRestart(self.playerLock, self.jet, self.jet_file.config.filename)
420 wx.PostEvent(self, JetStatusEvent(CMD_ORIGINALMUTES, segment.mute_flags))
423 wx.PostEvent(self, JetStatusEvent(CMD_UNMUTEALL, None))
426 wx.PostEvent(self, JetStatusEvent(CMD_PAUSE, None))
429 wx.PostEvent(self, JetStatusEvent(CMD_MUTEALL, None))
431 self.SetPlayCommand('')
433 if self.GetStatus(lastID) != STATUS_CANCELED:
434 self.SetStatus(lastID, STATUS_COMPLETE)
436 wx.PostEvent(self, JetStatusEvent(LOAD_QUEUE_DISPLAY, None))
437 wx.PostEvent(self, JetStatusEvent(CLR_INFO, None))
439 SafeJetShutdown(self.playerLock, self.jet)
440 self.SetThreadShutdownFlag(True)
442 def OnJetStatusUpdate(self, evt):
445 self.LoadQueueDisplay()
447 self.graph.UpdateLocation(evt.data)
449 self.currentSegmentName = getColumnText(self.queueList, evt.data, 0)
450 segment = self.jet_file.GetSegment(self.currentSegmentName)
451 info = self.graph.LoadSegment(segment)
452 self.trackList.DeleteAllItems()
455 self.trackList.AddTrackRow(track)
456 self.trackList.CheckTracks(segment.mute_flags)
457 self.log.SetValue(self.currentSegmentName)
459 self.QueueOneSegment(evt.data[0], evt.data[1])
461 self.trackList.CheckTracks(evt.data)
463 num = self.trackList.GetItemCount()
465 self.trackList.CheckItem(i, False)
467 num = self.trackList.GetItemCount()
469 self.trackList.CheckItem(i)
471 self.log.SetValue("")
472 self.graph.ClearGraph()
473 self.graph.UpdateLocation(0)
475 self.btnPause.SetLabel(JetDefs.BUT_PAUSE)
477 if not self.paused:
478 self.jet.Pause()
479 self.paused = True
480 self.btnPause.SetLabel(JetDefs.BUT_RESUME)
482 self.jet.Play()
483 self.paused = False
484 self.btnPause.SetLabel(JetDefs.BUT_PAUSE)
486 def SafeJetRestart(self, lock, jet, filename):
495 def OnClose(self, event):
498 while(not self.GetThreadShutdownFlag() and i < 5):
500 self.SetKeepPlayingFlag(False)
501 logging.info("Waiting on shutdown %d" % (self.GetThreadShutdownFlag()))
506 if self.jet is not None:
507 SafeJetShutdown(self.playerLock, self.jet)
508 self.Destroy()