gonzopi

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

commit 6df682f5ceeac937e45d708e129696924cfc1aeb
parent 3f0974635f010e89958231eba259b4743d213187
Author: rbckman <rob@tarina.org>
Date:   Sun,  6 Jul 2025 13:23:27 +0100

select shots and scenes with middle button, func and right is now dub button

Diffstat:
Mgonzopi.py | 114++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 108 insertions(+), 6 deletions(-)

diff --git a/gonzopi.py b/gonzopi.py @@ -242,6 +242,9 @@ def main(): comp = 0 yanked = '' copying = '' + shots_selected=[] + scenes_selected=[] + films_selected=[] moving = False stream = '' live = 'no' @@ -602,9 +605,37 @@ def main(): folder = filmfolder + filmname + '/scene' + str(scene).zfill(3) +'/shot' + str(shot).zfill(3) + '/' filename = 'take' + str(take).zfill(3) vumetermessage('New crossfade made!') - crossfadesave(folder,crossfade,filename) + crossfadesave(folder,crossfade,filename) + elif pressed == 'middle' and menu[selected] == 'SHOT:': + folder = filmfolder + filmname + '/scene' + str(scene).zfill(3) +'/shot' + str(shot).zfill(3) + '/' + if folder in shots_selected: + shots_selected.remove(folder) + shots_sel = '' + vumetermessage(str(len(shots_selected))+' shots selected') + else: + shots_selected.append(folder) + shots_sel = '*' + vumetermessage(str(len(shots_selected))+' shots selected') + elif pressed == 'middle' and menu[selected] == 'SCENE:': + folder = filmfolder + filmname + '/scene' + str(scene).zfill(3) +'/' + if folder in scenes_selected: + scenes_selected.remove(folder) + scenes_sel = '' + vumetermessage(str(len(scenes_selected))+' scenes selected') + else: + scenes_selected.append(folder) + scenes_sel = '*' + vumetermessage(str(len(scenes_selected))+' scenes selected') + elif pressed == 'middle' and menu[selected] == 'FILM:': + folder = filmfolder + filmname + '/' + if folder in films_selected: + films_selected.remove(folder) + vumetermessage(str(len(films_selected))+' films selected') + else: + films_selected.append(folder) + vumetermessage(str(len(films_selected))+' films selected') #DUB SHOT - elif pressed == 'middle' and menu[selected] == 'SHOT:' and recordable == False: + elif pressed == 'dub' and menu[selected] == 'SHOT:' and recordable == False: newdub, yanked = clipsettings(filmfolder, filmname, scene, shot, take, plughw,yanked) take = counttakes(filmname, filmfolder, scene, shot) if newdub: @@ -635,7 +666,7 @@ def main(): vumetermessage('see ya around!') rendermenu = True #DUB SCENE - elif pressed == 'middle' and menu[selected] == 'SCENE:': + elif pressed == 'dub' and menu[selected] == 'SCENE:': newdub, yanked = clipsettings(filmfolder, filmname, scene, 0, take, plughw,yanked) if newdub: camera.stop_preview() @@ -657,7 +688,7 @@ def main(): vumetermessage('see ya around!') rendermenu = True #DUB FILM - elif pressed == 'middle' and menu[selected] == 'FILM:': + elif pressed == 'dub' and menu[selected] == 'FILM:': newdub, yanked = clipsettings(filmfolder, filmname, 0, 0, take, plughw,yanked) if newdub: camera.stop_preview() @@ -791,6 +822,61 @@ def main(): else: vumetermessage('') rendermenu = True + + #PASTE MANY SCENES + elif pressed == 'copy' and menu[selected] == 'SCENE:' and scenes_selected != [] or pressed == 'move' and menu[selected] == 'SCENE:' and scenes_selected != []: + for yanked in scenes_selected: + vumetermessage('Pasting scene, please wait...') + paste = filmfolder + filmname + '/' + 'scene' + str(scene-1).zfill(3) + '_yanked' + os.system('cp -r ' + yanked + ' ' + paste) + add_organize(filmfolder, filmname) + if pressed == 'move': + for yanked in scenes_selected: + os.system('rm -r ' + yanked+'/*') + #Remove hidden placeholder + #os.system('rm ' + yanked + '/.placeholder') + scenes_selected = [] + organize(filmfolder, filmname) + organize(filmfolder, filmname) + updatethumb = True + scenes, shots, takes = browse(filmname,filmfolder,scene,shot,take) + if scene > scenes: + scene = scenes + if shot > shots: + shot = shots + vumetermessage('All scenes pasted!') + + #PASTE MANY SHOTS + elif pressed == 'copy' and menu[selected] == 'SHOT:' and shots_selected != [] or pressed == 'move' and menu[selected] == 'SHOT:' and shots_selected != []: + for yanked in shots_selected: + take = counttakes(filmname, filmfolder, scene, shot) + if shot == 0: + shot=1 + vumetermessage('Pasting shot, please wait...') + paste = filmfolder + filmname + '/' + 'scene' + str(scene).zfill(3) +'/shot' + str(shot-1).zfill(3) + '_yanked' + try: + os.makedirs(filmfolder + filmname + '/' + 'scene' + str(scene).zfill(3)) + except: + pass + os.system('cp -r ' + yanked + ' ' + paste) + add_organize(filmfolder, filmname) + yanked = '' + if pressed == 'move': + for yanked in shots_selected: + os.system('rm -r ' + yanked+'/*') + #Remove hidden placeholder + #os.system('rm ' + yanked + '/.placeholder') + shots_selected = [] + organize(filmfolder, filmname) + organize(filmfolder, filmname) + updatethumb = True + scenes, shots, takes = browse(filmname,filmfolder,scene,shot,take) + if scene > scenes: + scene = scenes + if shot > shots: + shot = shots + vumetermessage('All shots pasted!') + #(YANK) COPY FILM elif pressed == 'copy' and menu[selected] == 'FILM:': copying = 'film' @@ -829,6 +915,7 @@ def main(): moving = True yanked = filmfolder + filmname + '/' + 'scene' + str(scene).zfill(3) vumetermessage('Moving scene ' + str(scene) + ' (I)nsert button to place it...') + #PASTE SHOT and PASTE SCENE elif pressed == 'insert' and yanked: if copying == 'take' and menu[selected] == 'TAKE:': @@ -2294,6 +2381,19 @@ def main(): 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) + '/' + scenename = filmfolder + filmname + '/' + 'scene' + str(scene).zfill(3) +'/' + if foldername in shots_selected: + shots_sel = '*' + else: + shots_sel = '' + if scenename in scenes_selected: + scenes_sel = '*' + else: + scenes_sel = '' + if filmname in films_selected: + films_sel = '*' + else: + films_sel = '' 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) @@ -2369,12 +2469,12 @@ def main(): lastmenu = menu[selected] if showgonzopictrl == False: menu = standardmenu - 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(round(reclength,2)), str(plughw), str(channels), str(miclevel), str(headphoneslevel), str(comp), '',blendmodes[blendselect], cammode, '', serverstate, searchforcameras, wifistate, '', '', '', '', '', live, mux, str(slide) + settings = storagedrives[dsk][0]+' '+diskleft, filmname+films_sel, str(scene)+scenes_sel+ '/' + str(scenes), str(shot)+shots_sel+ '/' + 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(round(reclength,2)), str(plughw), str(channels), str(miclevel), str(headphoneslevel), str(comp), '',blendmodes[blendselect], cammode, '', serverstate, searchforcameras, wifistate, '', '', '', '', '', live, mux, str(slide) else: #gonzopictrlmenu = 'FILM:', 'SCENE:', 'SHOT:', 'TAKE:', '', 'SHUTTER:', 'ISO:', 'RED:', 'BLUE:', 'FPS:', 'Q:', 'BRIGHT:', 'CONT:', 'SAT:', 'FLIP:', 'BEEP:', 'LENGTH:', 'HW:', 'CH:', 'MIC:', 'PHONES:', 'COMP:', 'TIMELAPSE', 'BLEND:', 'FADE:', 'L:', 'MODE:', 'DSK:', 'SHUTDOWN', 'SRV:', 'SEARCH:', 'WIFI:', 'CAMERA:', 'Add CAMERA', 'New FILM', 'Sync FILM', 'Sync SCENE' menu = gonzopictrlmenu #settings = '',str(camselected),'','',rectime,'','','','','','','','','','' - 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), '', '', '', '', '', '', '' + settings = storagedrives[dsk][0]+' '+diskleft, filmname, str(scene) + scene_sel+ '/' + str(scenes), str(shot) + shots_sel+ '/' + 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: oldmenu=writemenu(menu,settings,selected,'',showmenu,oldmenu) @@ -6966,6 +7066,8 @@ def getbutton(lastbutton, buttonpressed, buttontime, holdbutton): pressed = 'screen' elif event == 'P' or (readbus2 == 245 and readbus == 127): pressed = 'insert' + elif event == 'D' or (readbus2 == 245 and readbus == 251): + pressed = 'dub' elif event == 'O' or (readbus2 == 245 and readbus == 239): pressed = 'changemode' elif event == 'H' or (readbus2 == 245 and readbus == 247):