changeset 664:ca731d40fb24

hacks on vidref for stability Ignore-this: ea4e383d70e7d7df7f8a7912f5ac5de6
author drewp@bigasterisk.com
date Sun, 19 Jun 2011 07:43:44 +0000
parents aa98c1a44326
children 881a8b3b4ba0
files light9/vidref/main.py light9/vidref/replay.py
diffstat 2 files changed, 17 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/light9/vidref/main.py	Sun Jun 19 07:43:27 2011 +0000
+++ b/light9/vidref/main.py	Sun Jun 19 07:43:44 2011 +0000
@@ -150,7 +150,6 @@
 
 class Main(object):
     def __init__(self):
-        self.musicTime = MusicTime(onChange=self.onMusicTimeChange)
         wtree = gtk.Builder()
         wtree.add_from_file(sibpath(__file__, "vidref.glade"))
         mainwin = wtree.get_object("MainWindow")
@@ -160,8 +159,10 @@
         self.recordingTo = wtree.get_object('recordingTo')
         self.musicScale = wtree.get_object("musicScale")
         self.musicScale.connect("value-changed", self.onMusicScaleValue)
+        # tiny race here if onMusicScaleValue tries to use musicTime right away
+        self.musicTime = MusicTime(onChange=self.onMusicTimeChange)
         self.ignoreScaleChanges = False
-        # self.attachLog(wtree.get_object("lastLog"))
+        # self.attachLog(wtree.get_object("lastLog")) # disabled due to crashing
 
         # wtree.get_object("replayPanel").show() # demo only
         rp = wtree.get_object("replayVbox")
--- a/light9/vidref/replay.py	Sun Jun 19 07:43:27 2011 +0000
+++ b/light9/vidref/replay.py	Sun Jun 19 07:43:44 2011 +0000
@@ -64,8 +64,11 @@
             td = takeDir(songDir(song), take)
             r = Replay(td)
             if r.tooShort():
-                log.warn("cleaning up %s; too short" % r.takeDir)
-                r.deleteDir()
+                # this is happening even on full-song recordings, even
+                # after the Replay.__init__ attempt to catch it
+                log.warn("prob too short, but that's currently broken")
+                #log.warn("cleaning up %s; too short" % r.takeDir)
+                #r.deleteDir()
                 continue
             rv = ReplayView(self.parent, r)
             self.views.append(rv)
@@ -111,13 +114,14 @@
         if True:
             af = gtk.AspectFrame()
             af.set_visible(True)
-            af.set_size_request(320, 240-70-50)
+            w,h = (320), (240-70-50)
+            af.set_size_request(w, h)
             af.set_shadow_type(gtk.SHADOW_OUT)
             af.props.obey_child = True
 
             img = gtk.Image()
             img.set_visible(True)
-            img.set_size_request(320, 240-70-50)
+            img.set_size_request(w, h)
             self.picWidget = img
 
             af.add(img)
@@ -205,7 +209,12 @@
         return len(self.existingFrames) < (minSeconds * framerate)
 
     def deleteDir(self):
-        shutil.rmtree(self.takeDir)
+        try:
+            shutil.rmtree(self.takeDir)
+        except OSError:
+            # probably was writing frames into this dir at the same time!
+            log.warn("partial delete- frames were probably still writing "
+                     "into that dir")
 
     def getTitle(self):
         tm = time.localtime(int(os.path.basename(self.takeDir)))