diff --git a/actions.py b/actions.py index c6ee383..0e17948 100644 --- a/actions.py +++ b/actions.py @@ -728,6 +728,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 348a992..c5f5da0 100644 --- a/video_centre/shaders.py +++ b/video_centre/shaders.py @@ -24,11 +24,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() @@ -170,7 +175,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 @@ -234,7 +239,7 @@ class Shaders(object): plugin.set_modulation_value(param, self.modulation_value[param]) 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 @@ -244,7 +249,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): @@ -254,7 +259,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] ) )