diff --git a/actions.py b/actions.py index a331759..561efb8 100644 --- a/actions.py +++ b/actions.py @@ -47,6 +47,13 @@ class Actions(object): def move_browser_selection_up(self): self.display.browser_menu.navigate_menu_up() + def move_browser_selection_page_down(self): + self.display.browser_menu.navigate_menu_page_down() + + def move_browser_selection_page_up(self): + self.display.browser_menu.navigate_menu_page_up() + + def enter_on_browser_selection(self): self.display.browser_menu.enter_on_browser_selection() @@ -56,6 +63,13 @@ class Actions(object): def move_settings_selection_up(self): self.display.settings_menu.navigate_menu_up() + def move_settings_selection_page_down(self): + self.display.settings_menu.navigate_menu_page_down() + + def move_settings_selection_page_up(self): + self.display.settings_menu.navigate_menu_page_up() + + def enter_on_settings_selection(self): is_setting, setting = self.display.settings_menu.enter_on_setting_selection() if is_setting: @@ -71,6 +85,13 @@ class Actions(object): def move_shaders_selection_up(self): self.shaders.shaders_menu.navigate_menu_up() + def move_shaders_selection_page_down(self): + self.shaders.shaders_menu.navigate_menu_page_down() + + def move_shaders_selection_page_up(self): + self.shaders.shaders_menu.navigate_menu_page_up() + + def enter_on_shaders_selection(self): ##want to select shader if its not selected, and want to enter 'param' mode if it already is is_shader, is_selected_shader, selected_shader = self.shaders.enter_on_shaders_selection() diff --git a/display_centre/display.py b/display_centre/display.py index 17afa99..b86fc59 100644 --- a/display_centre/display.py +++ b/display_centre/display.py @@ -139,7 +139,7 @@ class Display(object): self.display_text.insert(END, '{:40} {:5} \n'.format(path['name'][0:38], path['slot'])) number_of_lines_displayed = number_of_lines_displayed + 1 - for index in range(self.MENU_HEIGHT - number_of_browser_items): + for index in range(self.browser_menu.top_menu_index + self.browser_menu.menu_height - number_of_browser_items): self.display_text.insert(END, '\n') self._highlight_this_row(self.browser_menu.selected_list_index - self.browser_menu.top_menu_index) @@ -159,7 +159,7 @@ class Display(object): self.display_text.insert(END, '{:<23} {:<22} \n'.format(setting['name'][0:22], setting['value'])) line_count = line_count + 1 - for index in range(self.MENU_HEIGHT - number_of_settings_items): + for index in range(self.settings_menu.top_menu_index + self.settings_menu.menu_height - number_of_settings_items): self.display_text.insert(END, '\n') self._highlight_this_row(self.settings_menu.selected_list_index - self.settings_menu.top_menu_index) @@ -190,8 +190,10 @@ class Display(object): shader_line = shaders_list[index] self.display_text.insert(END, '{:<40} {:<5} \n'.format(shader_line['name'][0:30], shader_line['shad_type'])) line_count = line_count + 1 - for index in range(self.MENU_HEIGHT - number_of_shader_items): + + for index in range(self.shaders.shaders_menu.top_menu_index + self.shaders.shaders_menu.menu_height - number_of_shader_items): self.display_text.insert(END, '\n') + self._highlight_this_row(self.shaders.shaders_menu.selected_list_index - self.shaders.shaders_menu.top_menu_index) if self.data.control_mode == "SHADER_PARAM": self._highlight_this_param(self.shaders.focused_param) diff --git a/display_centre/menu.py b/display_centre/menu.py index d6b141f..67e3fe9 100644 --- a/display_centre/menu.py +++ b/display_centre/menu.py @@ -23,6 +23,15 @@ class Menu(object): if self.top_menu_index < 0: self.top_menu_index = 0 + def navigate_menu_page_up(self): + if self.top_menu_index < self.menu_height: + self.top_menu_index = 0 + self.selected_list_index = 0 + else: + self.top_menu_index -= self.menu_height + self.selected_list_index -= self.menu_height + print('self.top_menu_index ', self.top_menu_index) + def navigate_menu_down(self): last_list_index = len(self.menu_list) - 1 if self.selected_list_index != last_list_index: @@ -33,6 +42,14 @@ class Menu(object): else: self.top_menu_index = 0 self.selected_list_index = self.top_menu_index + + def navigate_menu_page_down(self): + if self.top_menu_index >= len(self.menu_list) - self.menu_height: + self.selected_list_index = (len(self.menu_list) - 1) + else: + self.top_menu_index += self.menu_height + self.selected_list_index = min(self.menu_height + self.selected_list_index, len(self.menu_list) - 1) + def update_open_folders(self, folder_name): if folder_name not in self.open_folders: diff --git a/json_objects/keypad_action_mapping.json b/json_objects/keypad_action_mapping.json index 836e46e..4c8ba12 100644 --- a/json_objects/keypad_action_mapping.json +++ b/json_objects/keypad_action_mapping.json @@ -1,19 +1,19 @@ { "a": { - "NAV_BROWSER": ["move_browser_selection_up"], + "NAV_BROWSER": ["move_browser_selection_up", "move_browser_selection_page_up"], "DEFAULT": ["seek_back_on_player", "decrease_seek_time"], - "NAV_SETTINGS": ["move_settings_selection_up"], - "NAV_SHADERS": ["move_shaders_selection_up"], + "NAV_SETTINGS": ["move_settings_selection_up", "move_settings_selection_page_up"], + "NAV_SHADERS": ["move_shaders_selection_up", "move_shaders_selection_page_up"], "LENGTH_SET": ["return_to_default_control_mode"], "CONFIRM": ["return_to_default_control_mode"], "SHADER_PARAM": ["decrease_this_param", "decrease_shader_param"], "PLAY_SHADER": ["decrease_this_param", "decrease_shader_param"] }, "b": { - "NAV_BROWSER": ["move_browser_selection_down"], + "NAV_BROWSER": ["move_browser_selection_down", "move_browser_selection_page_down"], "DEFAULT": ["seek_forward_on_player", "increase_seek_time"], - "NAV_SETTINGS": ["move_settings_selection_down"], - "NAV_SHADERS": ["move_shaders_selection_down"], + "NAV_SETTINGS": ["move_settings_selection_down", "move_settings_selection_page_down"], + "NAV_SHADERS": ["move_shaders_selection_down", "move_shaders_selection_page_down"], "LENGTH_SET": ["return_to_default_control_mode"], "CONFIRM": ["return_to_default_control_mode"], "SHADER_PARAM": ["increase_this_param", "increase_shader_param"], diff --git a/json_objects/midi_action_mapping.json b/json_objects/midi_action_mapping.json index c2eae1b..e50ce45 100644 --- a/json_objects/midi_action_mapping.json +++ b/json_objects/midi_action_mapping.json @@ -43,26 +43,25 @@ "DEFAULT": ["set_strobe_amount_continuous"] }, "note_on 72": { - "NAV_BROWSER": ["move_browser_selection_up"], + "NAV_BROWSER": ["move_browser_selection_up", "move_browser_selection_page_up"], "DEFAULT": ["seek_back_on_player", "decrease_seek_time"], - "NAV_SETTINGS": ["move_settings_selection_up"], - "NAV_SHADERS": ["move_shaders_selection_up"], + "NAV_SETTINGS": ["move_settings_selection_up", "move_settings_selection_page_up"], + "NAV_SHADERS": ["move_shaders_selection_up", "move_shaders_selection_page_up"], "LENGTH_SET": ["return_to_default_control_mode"], "CONFIRM": ["return_to_default_control_mode"], "SHADER_PARAM": ["decrease_this_param", "decrease_shader_param"], "PLAY_SHADER": ["decrease_this_param", "decrease_shader_param"] }, "note_on 73": { - "NAV_BROWSER": ["move_browser_selection_down"], + "NAV_BROWSER": ["move_browser_selection_down", "move_browser_selection_page_down"], "DEFAULT": ["seek_forward_on_player", "increase_seek_time"], - "NAV_SETTINGS": ["move_settings_selection_down"], - "NAV_SHADERS": ["move_shaders_selection_down"], + "NAV_SETTINGS": ["move_settings_selection_down", "move_settings_selection_page_down"], + "NAV_SHADERS": ["move_shaders_selection_down", "move_shaders_selection_page_down"], "LENGTH_SET": ["return_to_default_control_mode"], "CONFIRM": ["return_to_default_control_mode"], "SHADER_PARAM": ["increase_this_param", "increase_shader_param"], "PLAY_SHADER": ["increase_this_param", "increase_shader_param"] - - }, + }, "note_on 74": { "NAV_BROWSER": ["enter_on_browser_selection"], "DEFAULT": ["toggle_action_on_player","toggle_show_on_player"], diff --git a/json_objects/osc_action_mapping.json b/json_objects/osc_action_mapping.json index aeaa23f..48a3b24 100644 --- a/json_objects/osc_action_mapping.json +++ b/json_objects/osc_action_mapping.json @@ -16,25 +16,25 @@ "NAV_DETOUR": ["set_detour_end_continuous"] }, "a": { - "NAV_BROWSER": ["move_browser_selection_up"], - "DEFAULT": ["seek_back_on_player", "decrease_seek_time"], - "NAV_SETTINGS": ["move_settings_selection_up"], - "NAV_SHADERS": ["move_shaders_selection_up"], - "LENGTH_SET": ["return_to_default_control_mode"], - "CONFIRM": ["return_to_default_control_mode"], - "SHADER_PARAM": ["decrease_this_param", "decrease_shader_param"], - "PLAY_SHADER": ["decrease_this_param", "decrease_shader_param"] - }, - "b": { - "NAV_BROWSER": ["move_browser_selection_down"], + "NAV_BROWSER": ["move_browser_selection_down", "move_browser_selection_page_down"], "DEFAULT": ["seek_forward_on_player", "increase_seek_time"], - "NAV_SETTINGS": ["move_settings_selection_down"], - "NAV_SHADERS": ["move_shaders_selection_down"], + "NAV_SETTINGS": ["move_settings_selection_down", "move_settings_selection_page_down"], + "NAV_SHADERS": ["move_shaders_selection_down", "move_shaders_selection_page_down"], "LENGTH_SET": ["return_to_default_control_mode"], "CONFIRM": ["return_to_default_control_mode"], "SHADER_PARAM": ["increase_this_param", "increase_shader_param"], "PLAY_SHADER": ["increase_this_param", "increase_shader_param"] - + }, + "b": { + "NAV_BROWSER": ["enter_on_browser_selection"], + "DEFAULT": ["toggle_action_on_player","toggle_show_on_player"], + "NAV_SETTINGS": ["enter_on_settings_selection"], + "NAV_SHADERS": ["enter_on_shaders_selection", "map_on_shaders_selection"], + "LENGTH_SET": ["record_fixed_length"], + "SHADER_PARAM": ["return_to_default_control_mode"], + "CONFIRM": ["perform_confirm_action"], + "NAV_DETOUR": ["toggle_detour_play"], + "PLAY_SHADER": ["toggle_shaders", "toggle_shader_speed"] }, "c": { "NAV_BROWSER": ["enter_on_browser_selection"], diff --git a/video_centre/shaders.py b/video_centre/shaders.py index da7f9cf..46adf66 100644 --- a/video_centre/shaders.py +++ b/video_centre/shaders.py @@ -254,7 +254,7 @@ class Shaders(object): def set_speed_to_amount(self, amount, layer_offset=0): layer = (self.data.shader_layer + layer_offset) % 3 - self.set_speed_to_amount_layer(layer) + self.set_speed_layer_to_amount(layer, amount) def set_speed_layer_to_amount(self, layer, amount): self.osc_client.send_message("/shader/{}/speed".format(str(layer)), amount )