mirror of
https://github.com/cyberboy666/r_e_c_u_r.git
synced 2025-12-13 20:00:12 +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:
|
else:
|
||||||
self.message_handler.set_message('INFO', 'cant mirror in dev mode')
|
self.message_handler.set_message('INFO', 'cant mirror in dev mode')
|
||||||
|
|
||||||
def toggle_shaders(self):
|
def toggle_shader_layer(self, layer):
|
||||||
if self.shaders.selected_status_list[self.data.shader_layer] == '▶':
|
if self.shaders.selected_status_list[layer] == '▶':
|
||||||
self.shaders.stop_selected_shader()
|
self.shaders.stop_shader(layer)
|
||||||
elif self.shaders.selected_status_list[self.data.shader_layer] == '■':
|
elif self.shaders.selected_status_list[layer] == '■':
|
||||||
self.shaders.start_selected_shader()
|
self.shaders.start_shader(layer)
|
||||||
else:
|
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):
|
def toggle_shader_speed(self):
|
||||||
self.shaders.toggle_shader_speed()
|
self.shaders.toggle_shader_speed()
|
||||||
@@ -872,7 +875,8 @@ class Actions(object):
|
|||||||
@property
|
@property
|
||||||
def parserlist(self):
|
def parserlist(self):
|
||||||
return {
|
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"],
|
"DEFAULT": ["set_the_shader_param_3_layer_offset_2_continuous"],
|
||||||
"NAV_DETOUR": ["set_detour_end_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": {
|
"note_on 32": {
|
||||||
"DEFAULT": ["play_shader_0_0"]
|
"DEFAULT": ["play_shader_0_0"]
|
||||||
|
|||||||
@@ -69,21 +69,30 @@ class Shaders(object):
|
|||||||
return i
|
return i
|
||||||
return max_amount
|
return max_amount
|
||||||
|
|
||||||
def load_selected_shader(self):
|
def load_shader_layer(self, layer):
|
||||||
selected_shader = self.selected_shader_list[self.data.shader_layer]
|
selected_shader = self.selected_shader_list[layer]
|
||||||
#self.selected_param_list[self.data.shader_layer] = [0.0,0.0,0.0,0.0]
|
#self.selected_param_list[self.data.shader_layer] = [0.0,0.0,0.0,0.0]
|
||||||
print("select shader: ", selected_shader)
|
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']])
|
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[self.data.shader_layer] == '▶':
|
if not self.selected_status_list[layer] == '▶':
|
||||||
self.selected_status_list[self.data.shader_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):
|
def start_selected_shader(self):
|
||||||
self.osc_client.send_message("/shader/{}/is_active".format(str(self.data.shader_layer)), True)
|
self.start_shader(self.data.shader_layer)
|
||||||
self.selected_status_list[self.data.shader_layer] = '▶'
|
|
||||||
|
|
||||||
def stop_selected_shader(self):
|
def stop_selected_shader(self):
|
||||||
self.osc_client.send_message("/shader/{}/is_active".format(str(self.data.shader_layer)), False)
|
self.stop_shader(self.data.shader_layer)
|
||||||
self.selected_status_list[self.data.shader_layer] = '■'
|
|
||||||
|
|
||||||
def map_on_shaders_selection(self):
|
def map_on_shaders_selection(self):
|
||||||
index = self.shaders_menu.selected_list_index
|
index = self.shaders_menu.selected_list_index
|
||||||
@@ -112,13 +121,13 @@ class Shaders(object):
|
|||||||
self.shaders_menu_list = self.generate_shaders_list()
|
self.shaders_menu_list = self.generate_shaders_list()
|
||||||
return is_file, is_selected_shader, selected_shader
|
return is_file, is_selected_shader, selected_shader
|
||||||
|
|
||||||
def play_that_shader(self, bank, slot):
|
def play_that_shader(self, layer, slot):
|
||||||
if self.data.shader_bank_data[bank][slot]['path']:
|
if self.data.shader_bank_data[layer][slot]['path']:
|
||||||
self.selected_shader_list[bank] = self.data.shader_bank_data[bank][slot]
|
self.selected_shader_list[layer] = self.data.shader_bank_data[layer][slot]
|
||||||
self.selected_shader_list[bank]['slot'] = slot
|
self.selected_shader_list[layer]['slot'] = slot
|
||||||
self.load_selected_shader()
|
self.load_shader_layer(layer)
|
||||||
else:
|
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):
|
def play_this_shader(self, slot):
|
||||||
print(self.data.shader_bank_data[self.data.shader_layer])
|
print(self.data.shader_bank_data[self.data.shader_layer])
|
||||||
@@ -158,7 +167,8 @@ class Shaders(object):
|
|||||||
if layer_offset is None:
|
if layer_offset is None:
|
||||||
start_layer = self.data.shader_layer
|
start_layer = self.data.shader_layer
|
||||||
layer_offset = 0
|
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:
|
if self.data.settings['shader']['X3_AS_SPEED']['value'] == 'enabled' and param == 3:
|
||||||
self.set_speed_to_amount(amount, layout_offset=layout_offset)
|
self.set_speed_to_amount(amount, layout_offset=layout_offset)
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user