From 638a78ab6841cd082515aa06c49d160d820d11a4 Mon Sep 17 00:00:00 2001 From: Tristan Rowley Date: Sat, 29 Feb 2020 14:28:44 +0000 Subject: [PATCH] Save settings json on program quit -- shader modulation levels moved into settings data so they persist across restarts --- actions.py | 1 + video_centre/shaders.py | 15 ++++++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/actions.py b/actions.py index f353a75..d6892f9 100644 --- a/actions.py +++ b/actions.py @@ -725,6 +725,7 @@ class Actions(object): def quit_the_program(self): + self.data._update_json(self.data.SETTINGS_JSON, self.data.settings) self.video_driver.exit_all_players() self.exit_openframeworks() self.exit_osc_server('','') diff --git a/video_centre/shaders.py b/video_centre/shaders.py index f427e3c..0511afc 100644 --- a/video_centre/shaders.py +++ b/video_centre/shaders.py @@ -20,11 +20,16 @@ class Shaders(object): self.selected_speed_list = [1.0, 1.0, 1.0] self.selected_modulation_slot = 0 - self.selected_modulation_level = [[[0.0,0.0,0.0,0.0] for i in range(4)] for i in range(3)] + #self.modulation_level = [[[0.0,0.0,0.0,0.0] for i in range(4)] for i in range(3)] self.modulation_value = [0.0,0.0,0.0,0.0] #self.load_selected_shader() + @property + def modulation_level(self): + return self.data.settings['shader'].setdefault('modulation_level', + [[[0.0,0.0,0.0,0.0] for i in range(4)] for i in range(3)]) + def generate_shaders_list(self): shaders_menu_list = [] raw_list = self.shaders_menu.generate_raw_shaders_list() @@ -163,7 +168,7 @@ class Shaders(object): self.selected_modulation_slot = slot def reset_modulation(self, slot): - for layer in self.selected_modulation_level: + for layer in self.modulation_level: for layer,levels in enumerate(layer): levels[slot] = 0.0 @@ -224,7 +229,7 @@ class Shaders(object): self.modulation_value[param] = (value-0.5)*2 for layer,params in enumerate(self.selected_param_list): for ip,p in enumerate(params): - for p2,v in enumerate(self.selected_modulation_level[layer][ip]): + for p2,v in enumerate(self.modulation_level[layer][ip]): if v!=0: self.update_param_layer(ip,layer) break @@ -234,7 +239,7 @@ class Shaders(object): self.set_param_layer_modulation_level(param, layer, level) def set_param_layer_modulation_level(self, param, layer, level): - self.selected_modulation_level[layer][param][self.selected_modulation_slot] = level + self.modulation_level[layer][param][self.selected_modulation_slot] = level self.update_param_layer(param, layer) def update_param_layer(self, param, layer): @@ -244,7 +249,7 @@ class Shaders(object): self.get_modulation_value_list( self.selected_param_list[layer][param], self.modulation_value,#[0], #param], - self.selected_modulation_level[layer][param] + self.modulation_level[layer][param] ) )