mirror of
https://github.com/cyberboy666/r_e_c_u_r.git
synced 2025-12-11 19:00:04 +01:00
fix bugs in shader selection from my previous commits, can toggle shader layer on/off using midi command 'toggle_shader_layer_X', fix bug when controlling shaders via CC with offset layer
This commit is contained in:
18
actions.py
18
actions.py
@@ -272,13 +272,16 @@ class Actions(object):
|
||||
else:
|
||||
self.message_handler.set_message('INFO', 'cant mirror in dev mode')
|
||||
|
||||
def toggle_shaders(self):
|
||||
if self.shaders.selected_status_list[self.data.shader_layer] == '▶':
|
||||
self.shaders.stop_selected_shader()
|
||||
elif self.shaders.selected_status_list[self.data.shader_layer] == '■':
|
||||
self.shaders.start_selected_shader()
|
||||
def toggle_shader_layer(self, layer):
|
||||
if self.shaders.selected_status_list[layer] == '▶':
|
||||
self.shaders.stop_shader(layer)
|
||||
elif self.shaders.selected_status_list[layer] == '■':
|
||||
self.shaders.start_shader(layer)
|
||||
else:
|
||||
self.message_handler.set_message('INFO', 'no shader loaded')
|
||||
self.message_handler.set_message('INFO', "no shader loaded into layer %s" % layer)
|
||||
|
||||
def toggle_shaders(self):
|
||||
self.toggle_shader_layer(self.data.shader_layer)
|
||||
|
||||
def toggle_shader_speed(self):
|
||||
self.shaders.toggle_shader_speed()
|
||||
@@ -872,7 +875,8 @@ class Actions(object):
|
||||
@property
|
||||
def parserlist(self):
|
||||
return {
|
||||
( r"play_shader_([0-9])_([0-9])", self.shaders.play_that_shader )
|
||||
( r"play_shader_([0-9])_([0-9])", self.shaders.play_that_shader ),
|
||||
( r"toggle_shader_layer_([0-9])", self.toggle_shader_layer )
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -87,6 +87,15 @@
|
||||
"DEFAULT": ["set_the_shader_param_3_layer_offset_2_continuous"],
|
||||
"NAV_DETOUR": ["set_detour_end_continuous"]
|
||||
},
|
||||
"note_on 82": {
|
||||
"DEFAULT": ["toggle_shader_layer_0"]
|
||||
},
|
||||
"note_on 83": {
|
||||
"DEFAULT": ["toggle_shader_layer_1"]
|
||||
},
|
||||
"note_on 84": {
|
||||
"DEFAULT": ["toggle_shader_layer_2"]
|
||||
},
|
||||
|
||||
"note_on 32": {
|
||||
"DEFAULT": ["play_shader_0_0"]
|
||||
|
||||
@@ -69,21 +69,30 @@ class Shaders(object):
|
||||
return i
|
||||
return max_amount
|
||||
|
||||
def load_selected_shader(self):
|
||||
selected_shader = self.selected_shader_list[self.data.shader_layer]
|
||||
def load_shader_layer(self, layer):
|
||||
selected_shader = self.selected_shader_list[layer]
|
||||
#self.selected_param_list[self.data.shader_layer] = [0.0,0.0,0.0,0.0]
|
||||
print("select shader: ", selected_shader)
|
||||
self.osc_client.send_message("/shader/{}/load".format(str(self.data.shader_layer)), [selected_shader['path'],selected_shader['shad_type'] == '2in',selected_shader['param_number']])
|
||||
if not self.selected_status_list[self.data.shader_layer] == '▶':
|
||||
self.selected_status_list[self.data.shader_layer] = '■'
|
||||
self.osc_client.send_message("/shader/{}/load".format(str(layer)), [selected_shader['path'],selected_shader['shad_type'] == '2in',selected_shader['param_number']])
|
||||
if not self.selected_status_list[layer] == '▶':
|
||||
self.selected_status_list[layer] = '■'
|
||||
|
||||
def load_selected_shader(self):
|
||||
self.load_shader_layer(self.data.shader_layer)
|
||||
|
||||
def start_shader(self, layer):
|
||||
self.osc_client.send_message("/shader/{}/is_active".format(str(layer)), True)
|
||||
self.selected_status_list[layer] = '▶'
|
||||
|
||||
def stop_shader(self, layer):
|
||||
self.osc_client.send_message("/shader/{}/is_active".format(str(layer)), False)
|
||||
self.selected_status_list[layer] = '■'
|
||||
|
||||
def start_selected_shader(self):
|
||||
self.osc_client.send_message("/shader/{}/is_active".format(str(self.data.shader_layer)), True)
|
||||
self.selected_status_list[self.data.shader_layer] = '▶'
|
||||
self.start_shader(self.data.shader_layer)
|
||||
|
||||
def stop_selected_shader(self):
|
||||
self.osc_client.send_message("/shader/{}/is_active".format(str(self.data.shader_layer)), False)
|
||||
self.selected_status_list[self.data.shader_layer] = '■'
|
||||
self.stop_shader(self.data.shader_layer)
|
||||
|
||||
def map_on_shaders_selection(self):
|
||||
index = self.shaders_menu.selected_list_index
|
||||
@@ -112,13 +121,13 @@ class Shaders(object):
|
||||
self.shaders_menu_list = self.generate_shaders_list()
|
||||
return is_file, is_selected_shader, selected_shader
|
||||
|
||||
def play_that_shader(self, bank, slot):
|
||||
if self.data.shader_bank_data[bank][slot]['path']:
|
||||
self.selected_shader_list[bank] = self.data.shader_bank_data[bank][slot]
|
||||
self.selected_shader_list[bank]['slot'] = slot
|
||||
self.load_selected_shader()
|
||||
def play_that_shader(self, layer, slot):
|
||||
if self.data.shader_bank_data[layer][slot]['path']:
|
||||
self.selected_shader_list[layer] = self.data.shader_bank_data[layer][slot]
|
||||
self.selected_shader_list[layer]['slot'] = slot
|
||||
self.load_shader_layer(layer)
|
||||
else:
|
||||
self.message_handler.set_message('INFO', "shader slot %s:%s is empty"%(bank,slot))
|
||||
self.message_handler.set_message('INFO', "shader slot %s:%s is empty"%(layer,slot))
|
||||
|
||||
def play_this_shader(self, slot):
|
||||
print(self.data.shader_bank_data[self.data.shader_layer])
|
||||
@@ -158,7 +167,8 @@ class Shaders(object):
|
||||
if layer_offset is None:
|
||||
start_layer = self.data.shader_layer
|
||||
layer_offset = 0
|
||||
layer = start_layer + layer_offset % 4
|
||||
layer = (start_layer + layer_offset) % 3 #4
|
||||
print ("got transposed layer %s" % layer)
|
||||
if self.data.settings['shader']['X3_AS_SPEED']['value'] == 'enabled' and param == 3:
|
||||
self.set_speed_to_amount(amount, layout_offset=layout_offset)
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user