def ValidateBeginTime(self, event): # wxGlade: MyFrame.<event_handler> #--------------------------------- index = self.track_choice.GetSelection() track = self.tracks[index] prev_track = self.tracks[index - 1] field = self.begin_field try: time = mpalib.str_to_seconds(field.GetValue()) if time >= track.end or time <= prev_track.begin: raise ValueError prev_track.end = track.begin = time self.ShowSelectedTrack() except: field.SetValue(mpalib.seconds_to_str(track.begin))
def ValidateEndTime(self, event): # wxGlade: MyFrame.<event_handler> #------------------------------- index = self.track_choice.GetSelection() track = self.tracks[index] next_track = self.tracks[index + 1] field = self.end_field try: time = mpalib.str_to_seconds(field.GetValue()) if time <= track.begin or time >= next_track.end: raise ValueError next_track.begin = track.end = time self.ShowSelectedTrack() except: field.SetValue(mpalib.seconds_to_str(track.end))
def ShowSelectedTrack(self): #-------------------------- if self.track_choice.GetCount() == 1: self.split_btn.Disable() self.remove_btn.Disable() else: self.split_btn.Enable() self.remove_btn.Enable() track = self.tracks[self.track_choice.GetSelection()] self.tracks_number_label.SetLabel(str(len(self.tracks))) self.track_title_field.SetValue(track.title) self.begin_field.SetValue(mpalib.seconds_to_str(track.begin)) self.end_field.SetValue(mpalib.seconds_to_str(track.end)) frame = lambda s: round(s / self.current_file.frame_length) begin_frame = frame(track.begin) end_frame = frame(track.end) total_frames = end_frame - begin_frame self.begin_frame_label.SetLabel(str(begin_frame)) self.end_frame_label.SetLabel(str(end_frame)) self.frames_label.SetLabel(str(total_frames)) time = mpalib.seconds_to_str(total_frames * self.current_file.frame_length) self.time_label.SetLabel(time) #wx.LogMessage("file length: %f\n" % self.current_file.length) #wx.LogMessage("file length: %f\n" % (total_frames * self.current_file.frame_length)) if track.begin == 0: self.begin_field.Disable() else: self.begin_field.Enable() if track.end == self.current_file.length: self.end_field.Disable() else: self.end_field.Enable()