def highlight(self): logging.info("Play state: %d", libsmf.getPlayState()) if libsmf.getPlayState() == 0: self.current_playback_fpath=None for i, row in enumerate(self.list_data): if row[0] is not None and row[0]==self.current_playback_fpath: self.listbox.itemconfig(i, {'bg':zynthian_gui_config.color_hl}) else: self.listbox.itemconfig(i, {'fg':zynthian_gui_config.color_panel_tx})
def test_ab02_playback(self): self.assertEqual(client.transport_state, jack.STOPPED) self.assertTrue(zynsmf.load(smf, "./test.mid")) self.assertTrue(libsmf.attachPlayer(smf)) libsmf.startPlayback(False) self.assertEqual(libsmf.getPlayState(), STARTING) client.transport_start() self.assertEqual(client.transport_state, jack.ROLLING) self.assertEqual(libsmf.getPlayState(), PLAYING) # Stop libsmf.stopPlayback(False) self.assertEqual(libsmf.getPlayState(), STOPPING) sleep(0.1) self.assertEqual(client.transport_state, jack.STOPPED) self.assertEqual(libsmf.getPlayState(), STOPPED)
def stop_playing(self): if libsmf.getPlayState()!=zynsmf.PLAY_STATE_STOPPED: logging.info("STOPPING MIDI PLAY ...") libsmf.stopPlayback() sleep(0.1) self.end_playing() return True else: return False
def get_status(self): status = None if libsmf.isRecording(): status = "REC" if libsmf.getPlayState(): if status=="REC": status = "PLAY+REC" else: status = "PLAY" return status
def hide(self): super().hide() if self.bpm_zgui_ctrl: self.bpm_zgui_ctrl.hide() # Remove player / recorder if not in use which reduces load on JACK if libsmf.getPlayState() == 0: libsmf.removePlayer() libsmf.removeSmf(self.smf_player) self.smf_player = None if not libsmf.isRecording(): libsmf.removeRecorder() libsmf.removeSmf(self.smf_recorder) self.smf_recorder = None
def check_playback(self): if self.shown and libsmf.getPlayState() == 0: self.end_playing() else: self.smf_timer = Timer(interval = 1, function=self.check_playback) self.smf_timer.start()