Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/Util/NoteDB.py
diff options
context:
space:
mode:
authoramartin <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)
commitc43ee6f6f73b0f579df2b0e2a53552ba78cd1a72 (patch)
tree2e1a8002b15f0efd832c7b270258c8b23aaad102 /Util/NoteDB.py
parent79f52b3e1696d345cc2ecdc1235f7c830a5a2fa6 (diff)
page properties
Diffstat (limited to 'Util/NoteDB.py')
-rw-r--r--Util/NoteDB.py24
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