diff options
author | amartin <olpc@xo-00-CE-12.localdomain> | 2007-06-29 16:20:39 (GMT) |
---|---|---|
committer | amartin <olpc@xo-00-CE-12.localdomain> | 2007-06-29 16:20:39 (GMT) |
commit | c43ee6f6f73b0f579df2b0e2a53552ba78cd1a72 (patch) | |
tree | 2e1a8002b15f0efd832c7b270258c8b23aaad102 /Util/NoteDB.py | |
parent | 79f52b3e1696d345cc2ecdc1235f7c830a5a2fa6 (diff) |
page properties
Diffstat (limited to 'Util/NoteDB.py')
-rw-r--r-- | Util/NoteDB.py | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/Util/NoteDB.py b/Util/NoteDB.py index 7f3266d..014ec5e 100644 --- a/Util/NoteDB.py +++ b/Util/NoteDB.py @@ -214,8 +214,30 @@ class NoteDB: def updatePage( self, page, parameter, value ): if parameter == PARAMETER.PAGE_BEATS: + ticks = value*Config.TICKS_PER_BEAT + if self.pages[page].beats > value: # crop some notes + dstream = [] + ustream = [] + for track in range(Config.NUMBER_OF_TRACKS): + dsub = [] + usub = [] + for note in self.getNotesByTrack(page, track): + if ticks <= note.cs.onset: + dsub.append( note.id ) + elif ticks < note.cs.onset + note.cs.duration: + usub.append( note.id ) + usub.append( ticks - note.cs.onset ) + if len(dsub): + dstream += [ page, track, len(dsub) ] + dsub + if len(usub): + ustream += [ page, track, PARAMETER.DURATION, len(usub)//2 ] + usub + if len(dstream): + self.deleteNotes( dstream + [-1] ) + if len(ustream): + self.updateNotes( ustream + [-1] ) + self.pages[page].beats = value - self.pages[page].ticks = value*Config.TICKS_PER_BEAT + self.pages[page].ticks = ticks #self._updateBeatsBefore(self.tune.index(page)) elif parameter == PARAMETER.PAGE_COLOR: self.pages[page].color = value |