gonzopi

git clone https://git.tarina.org/gonzopi
Log | Files | Refs | README | LICENSE

commit cbe2683f44cd70d382efad0433ddcbc56771a650
parent 4a391fa5564c86476d9a36f15ca829ed760b08f4
Author: rbckman <rob@tarina.org>
Date:   Sun, 20 Apr 2025 12:00:44 +0100

fixing bugs, dub menu and new film

Diffstat:
Mgonzopi.py | 45+++++++++++++++++++++++++++++----------------
1 file changed, 29 insertions(+), 16 deletions(-)

diff --git a/gonzopi.py b/gonzopi.py @@ -147,6 +147,7 @@ def main(): menu = standardmenu hide_menu_time=4 showmenutime = time.time()+6 + oldmenu='' showgonzopictrl = False recordwithports = False pressagain = '' @@ -2122,6 +2123,9 @@ def main(): if oldscene != scene or oldshot != shot or oldtake != take or updatethumb == True: if recording == False: #logger.info('film:' + filmname + ' scene:' + str(scene) + '/' + str(scenes) + ' shot:' + str(shot) + '/' + str(shots) + ' take:' + str(take) + '/' + str(takes)) + foldername = filmfolder + filmname + '/' + 'scene' + str(scene).zfill(3) +'/shot' + str(shot).zfill(3) + '/' + filename = 'take' + str(take).zfill(3) + recordable = not os.path.isfile(foldername + filename + '.mp4') and not os.path.isfile(foldername + filename + '.h264') overlay = removeimage(camera, overlay) if menu[selected] == 'SCENE:' and recordable == False: # display first shot of scene if browsing scenes p = counttakes(filmname, filmfolder, scene, 1) @@ -2194,7 +2198,7 @@ def main(): settings = storagedrives[dsk][0]+' '+diskleft, filmname, str(scene) + '/' + str(scenes), str(shot) + '/' + str(shots), str(take) + '/' + str(takes), rectime, camerashutter, cameraiso, camerared, camerablue, str(round(camera.framerate)), str(quality), str(camera.brightness), str(camera.contrast), str(camera.saturation), effects[effectselected], str(flip), str(beeps), str(reclength), str(plughw), str(channels), str(miclevel), str(headphoneslevel), str(comp), '',blendmodes[blendselect], cammode, '', serverstate, searchforcameras, wifistate, str(camselected+1), '', '', '', '', '', '', '' #Rerender menu if picamera settings change #if settings != oldsettings or selected != oldselected: - menudone=writemenu(menu,settings,selected,'',showmenu) + oldmenu=writemenu(menu,settings,selected,'',showmenu,oldmenu) rendermenu = False #save settings if menu has been updated and x seconds passed if recording == False: @@ -2408,9 +2412,7 @@ def listenforclients(host, port, q): #--------------Write the menu layer to dispmanx-------------- -def writemenu(menu,settings,selected,header,showmenu): - global menudone, rendermenu - oldmenu=menudone +def writemenu(menu,settings,selected,header,showmenu,oldmenu): menudone = '' menudoneprint = '' menudone += str(selected) + '\n' @@ -2436,7 +2438,7 @@ def writemenu(menu,settings,selected,header,showmenu): f = open('/dev/shm/interface', 'w') f.write(menudone) f.close() - return menudone + return oldmenu #------------Write to screen---------------- @@ -2638,6 +2640,7 @@ def countonfloor(filmname, filmfolder): def vfx_colorpoint(): global camera + oldmenu='' pressed = '' buttonpressed = '' buttontime = time.time() @@ -2647,7 +2650,7 @@ def vfx_colorpoint(): menu = 'BACK','GREEN','RED/YELLOW','BLUE','PURPLE' while True: settings = '','','','','' - writemenu(menu,settings,selected,header,showmenu) + oldmenu=writemenu(menu,settings,selected,header,showmenu,oldmenu) pressed, buttonpressed, buttontime, holdbutton, event, keydelay = getbutton(pressed, buttonpressed, buttontime, holdbutton) if pressed == 'right': if selected < (len(settings) - 1): @@ -2674,6 +2677,7 @@ def vfx_colorpoint(): def vfx_solarize(): global camera + oldmenu='' pressed = '' buttonpressed = '' buttontime = time.time() @@ -2687,7 +2691,7 @@ def vfx_solarize(): menu = 'BACK','STRENGHT:','R:','G:','B:' while True: settings = '',str(strenght),str(r),str(g),str(b) - writemenu(menu,settings,selected,header,showmenu) + oldmenu=writemenu(menu,settings,selected,header,showmenu,oldmenu) pressed, buttonpressed, buttontime, holdbutton, event, keydelay = getbutton(pressed, buttonpressed, buttontime, holdbutton) if pressed == 'right': if selected < (len(settings) - 1): @@ -2918,6 +2922,7 @@ def getfilms(filmfolder): #-------------Load gonzopi config--------------- def getconfig(camera): + oldmenu='' filmfolder='' if camera != None: version = camera.revision @@ -2977,7 +2982,7 @@ def getconfig(camera): menu = 'rev.C', 'rev.D', 'hq-camera' while True: settings = '', '', '' - writemenu(menu,settings,selected,header,showmenu) + oldmenu=writemenu(menu,settings,selected,header,showmenu,oldmenu) pressed, buttonpressed, buttontime, holdbutton, event, keydelay = getbutton(pressed, buttonpressed, buttontime, holdbutton) if pressed == 'right': if selected < (len(settings) - 1): @@ -3045,6 +3050,7 @@ def cleanupdisk(filmname, filmfolder): #-------------Load film--------------- def loadfilm(filmname, filmfolder, camera, overlay): + oldmenu='' pressed = '' buttonpressed = '' buttontime = time.time() @@ -3060,7 +3066,7 @@ def loadfilm(filmname, filmfolder, camera, overlay): menu = 'FILM:', 'BACK' while True: settings = films[selectedfilm][0], '' - writemenu(menu,settings,selected,header,showmenu) + oldmenu=writemenu(menu,settings,selected,header,showmenu,oldmenu) vumetermessage('filmsize: '+filmsize[selectedfilm]+' date: '+time.strftime('%Y-%m-%d %H:%M:%S',time.gmtime(films[selectedfilm][1]))) pressed, buttonpressed, buttontime, holdbutton, event, keydelay = getbutton(pressed, buttonpressed, buttontime, holdbutton) if pressed == 'down': @@ -3107,9 +3113,10 @@ def slide_menu(slidecommander): selected = 0 header = 'Future Tech Slide Commander' menu = 'BACK','SPEED:', 'SMOOTH:', 'PAN:', 'TILT:', 'MOVE:', 'ADD', '<', '>', 'SAVE', 'RESET', 'STATUS' + oldmenu='' while True: settings = '',str(speed), str(smooth), str(pan), str(tilt), str(move), '', '', '' , '', '', '' - writemenu(menu,settings,selected,header,showmenu) + oldmenu=writemenu(menu,settings,selected,header,showmenu,oldmenu) pressed, buttonpressed, buttontime, holdbutton, event, keydelay = getbutton(pressed, buttonpressed, buttontime, holdbutton) if pressed == 'down' and menu[selected] == 'SPEED:': if speed > 10: @@ -3680,9 +3687,10 @@ def timelapse(beeps,camera,filmname,foldername,filename,between,duration,backlig selected = 0 header = 'Adjust delay in seconds between videos' menu = 'DELAY:', 'DURATION:', 'SOUND:', 'START', 'BACK' + oldmenu='' while True: settings = str(round(between,2)), str(round(duration,2)), str(sound), '', '' - writemenu(menu,settings,selected,header,showmenu) + oldmenu=writemenu(menu,settings,selected,header,showmenu,oldmenu) seconds = (3600 / between) * duration vumetermessage('1 h timelapse filming equals ' + str(round(seconds,2)) + ' second clip ') pressed, buttonpressed, buttontime, holdbutton, event, keydelay = getbutton(pressed, buttonpressed, buttontime, holdbutton) @@ -3832,8 +3840,9 @@ def remove(filmfolder, filmname, scene, shot, take, sceneshotortake): otf_shot += 1 otf_take = counttakes(filmname+'_onthefloor', filmfolder, otf_scene, otf_shot) otf_take += 1 + oldmenu='' while True: - writemenu(menu,settings,selected,header,showmenu) + oldmenu=writemenu(menu,settings,selected,header,showmenu,oldmenu) pressed, buttonpressed, buttontime, holdbutton, event, keydelay = getbutton(pressed, buttonpressed, buttontime, holdbutton) if pressed == 'right': if selected < (len(settings) - 1): @@ -5069,8 +5078,9 @@ def removedub(dubfolder, dubnr): header = 'Are you sure you want to remove dub ' + str(dubnr) + '?' menu = 'NO', 'YES' settings = '', '' + oldmenu='' while True: - writemenu(menu,settings,selected,header,showmenu) + writemenu(menu,settings,selected,header,showmenu,oldmenu) pressed, buttonpressed, buttontime, holdbutton, event, keydelay = getbutton(pressed, buttonpressed, buttontime, holdbutton) if pressed == 'right': if selected < (len(menu) - 1): @@ -5139,6 +5149,7 @@ def clipsettings(filmfolder, filmname, scene, shot, take, plughw): newdub = [1.0, 1.0, 0.1, 0.1] dubselected = len(dubfiles) - 1 dubrecord = '' + oldmenu='' while True: nmix = round(newdub[0],1) ndub = round(newdub[1],1) @@ -5154,7 +5165,7 @@ def clipsettings(filmfolder, filmname, scene, shot, take, plughw): else: menu = 'BACK', 'ADD:', '', '' settings = '', 'd:' + str(nmix) + '/o:' + str(ndub), 'in:' + str(nfadein), 'out:' + str(nfadeout) - writemenu(menu,settings,selected,header,showmenu) + oldmenu=writemenu(menu,settings,selected,header,showmenu,oldmenu) pressed, buttonpressed, buttontime, holdbutton, event, keydelay = getbutton(pressed, buttonpressed, buttontime, holdbutton) #NEW DUB SETTINGS @@ -5303,6 +5314,7 @@ def playdub(filmname, filename, player_menu): trimfromstart=0 trimfromend=0 remove_shots = [] + oldmenu='' if video == True: if player_menu == 'dubbb': pause = False @@ -5393,7 +5405,7 @@ def playdub(filmname, filename, player_menu): header = 'Dubbing ' + str(round(t,1)) else: header = 'Playing ' + str(datetime.timedelta(seconds=round(t))) + ' of ' + str(datetime.timedelta(seconds=round(clipduration))) + ' s' - writemenu(menu,settings,selected,header,showmenu) + oldmenu=writemenu(menu,settings,selected,header,showmenu,oldmenu) pressed, buttonpressed, buttontime, holdbutton, event, keydelay = getbutton(pressed, buttonpressed, buttontime, holdbutton) if buttonpressed == True: flushbutton() @@ -6028,9 +6040,10 @@ def uploadfilm(filename, filmname): settings.append('') menu = mods selected = 0 + oldmenu='' while True: header = 'Where do you want to upload?' - writemenu(menu,settings,selected,header,showmenu) + oldmenu=writemenu(menu,settings,selected,header,showmenu,oldmenu) pressed, buttonpressed, buttontime, holdbutton, event, keydelay = getbutton(pressed, buttonpressed, buttontime, holdbutton) if pressed == 'right': if selected < (len(menu) - 1):