diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 8a3ffbe..887ed5e 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,22 +2,11 @@ - - - - - - - - - - + + + + - - - - - - video_driver logger - browser_list is_file_in_memory_bank create_new_bank_mapping_in_first_open generate_browser_list @@ -178,7 +182,6 @@ load_message create_new_slot_mapping_in_first_open get_context_options_from_settings - data get_info settings_list extract_file_type_and_name_from_browser_format @@ -191,11 +194,14 @@ self.read_json self.write_json get_the_current_dir_path - Data PATH_TO_BROWSER PATH_TO_DATA_OBJECTS - SETTINGS_JSON selected_list_index + SETTINGS_JSON + Data + browser_list + update_nex + data read_json @@ -226,11 +232,11 @@ @@ -263,17 +269,6 @@ - - - - - - - - - - - @@ -484,19 +479,19 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -515,13 +510,21 @@ - - - - - - - + + + + + + + + + + + + + + + @@ -547,11 +550,10 @@ - - - - - + + + + @@ -578,19 +580,19 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -600,11 +602,10 @@ - - - - - + + + + @@ -631,13 +632,21 @@ - - - - - - - + + + + + + + + + + + + + + + @@ -680,19 +689,19 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -702,11 +711,10 @@ - - - - - + + + + @@ -733,13 +741,21 @@ - - - - - - - + + + + + + + + + + + + + + + @@ -792,11 +808,10 @@ - - - - - + + + + @@ -862,16 +877,6 @@ - - - - - - - - - - @@ -880,51 +885,33 @@ - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - + + @@ -932,35 +919,80 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + - - + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/actions.py b/actions.py index fbef769..7bba743 100644 --- a/actions.py +++ b/actions.py @@ -8,30 +8,26 @@ class Actions(object): def move_browser_selection_down(self): - # self.display.move_browser_down() - self.display.navigate_menu('down', len(self.display.browser_list)) + self.display.navigate_menu('down', len(self.data.return_browser_list())) def move_browser_selection_up(self): # self.display.move_browser_up() - self.display.navigate_menu('up', len(self.display.browser_list)) + self.display.navigate_menu('up', len(self.data.return_browser_list())) def enter_on_browser_selection(self): - is_file, name = self.data.browser_data.extract_file_type_and_name_from_browser_format( - self.data.browser_list[self.display.selected_list_index][0]) + self.data.return_browser_list()[self.display.selected_list_index]['name']) if is_file: self.data.create_new_bank_mapping_in_first_open(name) else: self.data.browser_data.update_open_folders(name) - self.display.browser_list = self.data.rewrite_browser_list() + self.data.rewrite_browser_list() def move_settings_selection_down(self): - # self.display.move_settings_down() - self.display.navigate_menu('down', len(self.display.settings_list)) + self.display.navigate_menu('down', len(self.data.get_settings_data())) def move_settings_selection_up(self): - # self.display.move_settings_up() - self.display.navigate_menu('up', len(self.display.settings_list)) + self.display.navigate_menu('up', len(self.data.get_settings_data())) def enter_on_settings_selection(self): self.data.switch_settings(self.display.selected_list_index) @@ -45,7 +41,7 @@ class Actions(object): self.tk.destroy() def load_this_slot_into_next_player(self, slot): - update_next_slot_number(slot) + self.data.update_next_slot_number(slot) self.video_driver.next_player.reload() def trigger_next_player(self): diff --git a/data_centre/browser_data.py b/data_centre/browser_data.py index 5847749..40e60e4 100644 --- a/data_centre/browser_data.py +++ b/data_centre/browser_data.py @@ -4,7 +4,8 @@ import data_centre.data class BrowserData(object): ######## a data class used mainly for managing the browser list ######## - def __init__(self): + def __init__(self, initial_path): + self.initial_path = initial_path self.open_folders = [] self.browser_list = [] self.memory_bank = [] @@ -19,7 +20,7 @@ class BrowserData(object): def generate_browser_list(self): ######## starts the recursive process of listing all folders and video files to display ######## self.browser_list = [] - self._add_folder_to_browser_list(data_centre.data.PATH_TO_BROWSER, 0) + self._add_folder_to_browser_list(self.initial_path, 0) self.memory_bank = data_centre.data.read_json(data_centre.data.BANK_DATA_JSON) diff --git a/data_centre/data.py b/data_centre/data.py index 83cd73d..1bbb7f7 100644 --- a/data_centre/data.py +++ b/data_centre/data.py @@ -23,7 +23,7 @@ def read_json(file_name): def update_json(file_name, data): - with open('{}{}'.format(Data.PATH_TO_DATA_OBJECTS, file_name), 'w') as data_file: + with open('{}{}'.format(PATH_TO_DATA_OBJECTS, file_name), 'w') as data_file: json.dump(data, data_file) @@ -36,10 +36,10 @@ PATH_TO_BROWSER = get_path_to_browser() class Data(object): def __init__(self, message_handler): - self.browser_data = BrowserData() + self.browser_data = BrowserData(PATH_TO_BROWSER) self.message_handler = message_handler - self.has_omx = self.try_import_omx() + self.has_omx = self._try_import_omx() self.DEV_MODE = read_json(SETTINGS_JSON)[6]["value"] @@ -92,7 +92,7 @@ class Data(object): return self.browser_data.generate_browser_list() def return_browser_list(self): - return self.browser_data.browser_list() + return self.browser_data.browser_list @staticmethod def get_settings_data(): @@ -220,7 +220,7 @@ class Data(object): update_json('next_bank_number.json',next_slot_number) @staticmethod - def try_import_omx(): + def _try_import_omx(): try: from omxplayer.player import OMXPlayer return True diff --git a/data_centre/json_objects/settings.json b/data_centre/json_objects/settings.json index 84790c2..5e0f0ac 100644 --- a/data_centre/json_objects/settings.json +++ b/data_centre/json_objects/settings.json @@ -1 +1 @@ -[{"value": "PLAYLIST", "name": "PLAYBACK_MODE"}, {"value": "[1,1,1,4,1,2,1,4]", "name": "PLAYLIST"}, {"value": "ON", "name": "SYNC_LENGTHS"}, {"value": "00:08", "name": "SYNC_LENGTHS_TO"}, {"value": "ON", "name": "RAND_START"}, {"value": "COMPOSITE", "name": "VIDEO_OUTPUT"}, {"value": "ON", "name": "DEV_MODE"}] \ No newline at end of file +[{"value": "RANDOM", "name": "PLAYBACK_MODE"}, {"value": "[1,1,1,4,1,2,1,4]", "name": "PLAYLIST"}, {"value": "ON", "name": "SYNC_LENGTHS"}, {"value": "00:08", "name": "SYNC_LENGTHS_TO"}, {"value": "ON", "name": "RAND_START"}, {"value": "COMPOSITE", "name": "VIDEO_OUTPUT"}, {"value": "ON", "name": "DEV_MODE"}] \ No newline at end of file diff --git a/display_centre/display.py b/display_centre/display.py index 4ab1d9e..9b05bb9 100644 --- a/display_centre/display.py +++ b/display_centre/display.py @@ -85,17 +85,18 @@ class Display(object): self.selected_list_index = self.video_driver.current_player.bank_number def _load_browser(self): + browser_list = self.data.return_browser_list() number_of_lines_displayed = 0 self.display_text.insert(END, '------------------ ------------------ \n') self.display_text.tag_add("DISPLAY_MODE", 4.19, 4.29) self.display_text.insert(END, '{:40} {:5} \n'.format('path', 'bank')) - number_of_browser_items = len(self.browser_list) + number_of_browser_items = len(browser_list) for index in range(number_of_browser_items): if number_of_lines_displayed >= self.MENU_HEIGHT: break if index >= self.top_menu_index: - path = self.browser_list[index] + path = browser_list[index] self.display_text.insert(END, '{:40} {:5} \n'.format(path['name'][0:35], path['bank'])) number_of_lines_displayed = number_of_lines_displayed + 1