Mercurial > code > home > repos > light9
changeset 1276:e4aafd2242aa
CC try to debug why it jumps to random songs sometimes.
Ignore-this: 6fe1bf762a0c34ca07e6966546d986e6
author | Drew Perttula <drewp@bigasterisk.com> |
---|---|
date | Sun, 14 Jun 2015 15:44:03 +0000 |
parents | b8e2b8acb02c |
children | dfc81cee7965 |
files | bin/curvecalc |
diffstat | 1 files changed, 18 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/bin/curvecalc Sun Jun 14 07:37:59 2015 +0000 +++ b/bin/curvecalc Sun Jun 14 15:44:03 2015 +0000 @@ -77,7 +77,7 @@ self.registerGraphToSongChoice(wtree, session, graph, songChoice) self.registerSongChoiceToGraph(session, graph, songChoice) - self.current_player_song = self.registerCurrentPlayerSongToUi(wtree, graph, songChoice) + self.registerCurrentPlayerSongToUi(wtree, graph, songChoice) ec = EditChoice(graph, songChoice, label="Editing song:") wtree.get_object("currentSongEditChoice").add(ec) @@ -103,14 +103,27 @@ graph.addHandler(setSong) def registerSongChoiceToGraph(self, session, graph, songChoice): - def songToGraph(newSong): + self.muteSongChoiceUntil = 0 + def songChoiceToGraph(newSong): if newSong is Local: raise NotImplementedError('what do i patch') - log.debug('songToGraph is going to set to %r', newSong) + log.debug('songChoiceToGraph is going to set to %r', newSong) import traceback; traceback.print_stack() + + # I get bogus newSong values in here sometimes. This + # workaround may not even be helping. + now = time.time() + if now < self.muteSongChoiceUntil: + log.debug('muted') + return + self.muteSongChoiceUntil = now + 1 + graph.patchObject(context=session, subject=session, predicate=L9['currentSong'], newObject=newSong) - songChoice.subscribe(songToGraph) + + + + songChoice.subscribe(songChoiceToGraph) def registerCurrentPlayerSongToUi(self, wtree, graph, songChoice): """current_player_song 'song' param -> playerSong ui @@ -127,13 +140,12 @@ graph.addHandler(setLabel) ps.set_uri(song) if song != songChoice(): - log.debug('song %s != songChoice %s', song, songChoice()) if wtree.get_object("followPlayerSongChoice").get_active(): log.debug('followPlayerSongChoice is on') songChoice(song) dispatcher.connect(current_player_song, "current_player_song") - return current_player_song + self.current_player_song = current_player_song def setupNewSubZone(self): self.wtree.get_object("newSubZone").drag_dest_set(