Lines Matching full:self
50 def __init__(self, sEventType, iEventId, sName, sStartMbt, sEndMbt, iStartMeasure, ppqn):
51 self.sEventType = sEventType
52 self.iEventId = iEventId
53 self.sName = sName
54 self.StartMbt = ConvertStrTimeToTuple(sStartMbt)
55 self.EndMbt = ConvertStrTimeToTuple(sEndMbt)
56 self.iStartMeasure = iStartMeasure
57 self.iStart = 0
58 self.iEnd = 0
59 self.iWidth = 0
60 self.iHeight = 0
61 self.iTop = 0
62 self.iUpdate = False
63 self.sColor = '#FFFFB8'
64 self.ppqn = ppqn
65 self.isDirty = False
67 def CalcCoord(self, step, height, ColorFct):
70 iStartM = self.StartMbt[0] - self.iStartMeasure
71 iEndM = self.EndMbt[0] - self.iStartMeasure
72 self.iStart = step * iStartM
73 self.iEnd = step * iEndM
75 self.iStart = self.iStart + ((step / 4.0) * (self.StartMbt[1]-1))
76 self.iEnd = self.iEnd + ((step / 4.0) * (self.EndMbt[1]-1))
78 pctTickOfBeat = (float(self.StartMbt[2]) / float(self.ppqn))
79 self.iStart = self.iStart + ((pctTickOfBeat * (step / 4.0)))
80 pctTickOfBeat = (float(self.EndMbt[2]) / float(self.ppqn))
81 self.iEnd = self.iEnd + ((pctTickOfBeat * (step / 4.0)))
83 self.iWidth = self.iEnd - self.iStart
85 self.iHeight = height
86 self.sColor = ColorFct()
87 self.iUpdate = False
91 def __init__(self, parent, pos=wx.DefaultPosition, size=wx.DefaultSize, ClickCallbackFct=None, showLabels=True, showClips=True, showAppEvts=True):
92 wx.Panel.__init__(self, parent, -1, pos=pos, size=size, style=wx.BORDER_STATIC)
93 self.iLocationInMs = 0
94 self.iLengthInMs = 0
95 self.iLengthInMeasures = 0
96 self.iMarkerTop = 15
97 self.iScaleTop = 0
98 self.iEdges = 5
99 self.iStartMeasure = 0
100 self.iMidiMode = False
101 self.ClickCallbackFct = ClickCallbackFct
102 self.iColor = 0
103 self.showLabels = showLabels
104 self.showClips = showClips
105 self.showAppEvts = showAppEvts
107 self.font = wx.Font(8, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, 'Courier')
109 self.Markers = []
110 self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)
111 self.Bind(wx.EVT_PAINT, self.OnPaint)
112 self.Bind(wx.EVT_SIZE, self.OnSize)
113 self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown)
116 self.OnSize(None)
118 def ClearGraph(self):
120 self.iLocationInMs = 0
121 self.iLengthInMs = 0
122 self.iLengthInMeasures = 0
123 self.iMarkerTop = 15
124 self.iScaleTop = 0
125 self.iEdges = 5
126 self.iStartMeasure = 0
127 self.iMidiMode = False
128 self.iColor = 0
129 self.Markers = []
130 self.iLocationInMs = 0
131 self.DoDrawing()
133 def LoadSegment(self, segment, segMarker=None, iMidiMode=False, showLabels=True, showClips=True, showAppEvts=True):
136 self.ClearGraph()
138 self.iMidiMode = iMidiMode
139 self.showLabels = showLabels
140 self.showClips = showClips
141 self.showAppEvts = showAppEvts
142 self.Markers = []
143 self.iLocationInMs = 0
147 self.iLengthInMs = info.iLengthInMs
148 self.ppqn = info.ppqn
149 self.StartMbt = mbtFct(ConvertStrTimeToTuple(segment.start), 1)
150 self.EndMbt = mbtFct(ConvertStrTimeToTuple(segment.end), 1)
151 self.LengthMbt = None
152 self.iStartMeasure = self.StartMbt[0]
153 self.iLengthInMeasures = self.EndMbt[0] - self.StartMbt[0]
156 if self.showClips and jet_event.event_type == JetDefs.E_CLIP:
157 self.AddMarker(JetDefs.E_CLIP, jet_event.event_id, jet_event.event_name, mbtFct(jet_event.event_start,1), mbtFct(jet_event.event_end,1), self.iStartMeasure, self.ppqn)
159 self.AddMarker(JetDefs.E_EOS, jet_event.event_id, jet_event.event_name, mbtFct(jet_event.event_end,1), mbtFct(jet_event.event_end,1), self.iStartMeasure, self.ppqn)
160 elif self.showAppEvts and jet_event.event_type == JetDefs.E_APP:
161 self.AddMarker(JetDefs.E_APP, jet_event.event_id, jet_event.event_name, mbtFct(jet_event.event_start,1), mbtFct(jet_event.event_end,1), self.iStartMeasure, self.ppqn)
164 self.AddMarker(JetDefs.E_CLIP, 0, segMarker[0], mbtFct(segMarker[1],1), mbtFct(segMarker[2],1), self.iStartMeasure, self.ppqn)
166 self.DoDrawing()
169 def AddMarker(self, sEventType, iEventId, sName, sStartMbt, sEndMbt, iStartMeasure, ppqn):
173 self.Markers.append(Marker(sEventType, iEventId, sName, sStartMbt, sEndMbt, iStartMeasure, ppqn))
175 def OnLeftDown(self, event):
178 for Marker in self.Markers:
180 if self.ClickCallbackFct != None:
181 self.ClickCallbackFct(Marker.sName, Marker.iEventId)
183 def GetAColor(self):
185 color = GRAPH_COLORS[self.iColor]
186 self.iColor = self.iColor + 1
187 if self.iColor >= len(GRAPH_COLORS):
188 self.iColor = 0
191 def OnSize(self, event=None):
196 Size = self.GetClientSizeTuple()
201 self._Buffer = wx.EmptyBitmap(*Size)
202 self.DoDrawing(None)
206 def OnPaint(self, event=None):
209 dc = wx.BufferedPaintDC(self, self._Buffer)
211 dc = wx.AutoBufferedPaintDC(self)
213 self.DoDrawing(dc)
215 def DoDrawing(self, dc=None):
219 dc = wx.BufferedDC(wx.ClientDC(self), self._Buffer)
221 dc = wx.AutoBufferedPaintDC(self)
226 self.iColor = 0
227 gWidth, gHeight = self.GetSize()
228 gWidth = gWidth - (self.iEdges * 2)
229 step = int(gWidth / (self.iLengthInMeasures + .01))
231 for Marker in self.Markers:
232 Marker.CalcCoord(step, gHeight, self.GetAColor)
237 for index, Marker in enumerate(self.Markers):
241 for index1, Marker1 in enumerate(self.Markers):
254 for index1, Marker1 in enumerate(self.Markers):
263 for Marker in self.Markers:
267 dc.DrawRectangle(Marker.iStart + self.iEdges, Marker.iTop, Marker.iWidth, Marker.iHeight)
269 k = ((Marker.iStart + Marker.iEnd) / 2) - (width/2) + self.iEdges
270 if self.showLabels or self.iMidiMode:
272 if self.iMidiMode:
273 self.iMidiModeStart = Marker.iStart
277 dc.DrawRectangle(Marker.iStart + self.iEdges, Marker.iTop, 1, Marker.iHeight)
279 k = Marker.iStart - (width/2) + self.iEdges
284 dc.DrawRectangle(Marker.iStart + self.iEdges, Marker.iTop, 1, Marker.iHeight)
286 k = Marker.iStart - (width/2) + self.iEdges
287 if self.showLabels or self.iMidiMode:
298 scale = ((self.iLengthInMeasures / iDiv) + 1)
302 dc.SetFont(self.font)
305 num = range(self.iStartMeasure, self.iStartMeasure + self.iLengthInMeasures + 1, 1)
307 for i in range(0, (self.iLengthInMeasures+1)*step, step):
308 k = i + self.iEdges
309 dc.DrawLine(k, self.iScaleTop, k, self.iScaleTop+8)
310 if i != (self.iLengthInMeasures)*step:
312 k = i+(iBeat * beatStep) + self.iEdges
313 dc.DrawLine(k, self.iScaleTop, k, self.iScaleTop+4)
315 k = i-(width/2) + self.iEdges
318 dc.DrawText(str(num[j]), k, self.iScaleTop+8)
323 if self.iLocationInMs > 0 and self.iLengthInMs > 0:
325 if self.iMidiMode:
326 iOffset = self.iMidiModeStart
328 till = gWidth * (self.iLocationInMs / self.iLengthInMs)
331 dc.DrawRectangle(self.iEdges + iOffset, gHeight-6, till, 3)
333 def UpdateLocation(self, iLocationInMs):
338 self.iLocationInMs = iLocationInMs
339 if self.iLocationInMs > 0 and self.iLengthInMs > 0:
341 dc = wx.BufferedDC(wx.ClientDC(self), self._Buffer)
343 dc = wx.AutoBufferedPaintDC(self)
347 if self.iMidiMode:
348 iOffset = self.iMidiModeStart
350 gWidth, gHeight = self.GetSize()
351 gWidth = gWidth - (self.iEdges * 2)
353 till = gWidth * (self.iLocationInMs / self.iLengthInMs)
356 dc.DrawRectangle(self.iEdges + iOffset, gHeight-6, till, 3)
357 self.isDirty = True
359 if self.isDirty:
360 self.DoDrawing()
361 self.isDirty = False