コード例 #1
0
def main():
    """Initialize Backend and start Preset Manager application."""
    #configure base file logger
    logging.basicConfig(filename='preset_manager.log',
                        level=logging.DEBUG,
                        format='%(asctime)s %(message)s')

    # create console handler and set level to info
    handler = logging.StreamHandler()
    handler.setLevel(logging.DEBUG)
    formatter = logging.Formatter("%(asctime)s | %(levelname)s - %(message)s")
    handler.setFormatter(formatter)
    logging.getLogger().addHandler(handler)

    #start application
    logging.debug('Starting Preset manager main, V0.5.1, 11.06.2020')

    #set application folder
    glob.init(os.path.dirname(os.path.realpath(__file__)))
    logging.debug('Setting Application Path: %s', glob.application_folder)

    #read tags from file
    logging.debug('Loading tag file: %s', tags.tag_file())
    tags.load()
    logging.debug('Saving tag file: %s', tags.tag_file())
    tags.save()

    #Create command queue
    command_queue = queue.Queue()

    #start server
    server.start(command_queue)

    #start UI
    ui.start_main(command_queue)
コード例 #2
0
ファイル: actions.py プロジェクト: dimentorium/PresetManager
def edit_preset(evt):
    """Edit Preset

    Edits the currently selected preset by calling the editor

    Arguments:
        evt {event} -- Event Reference needed from TKInter but not used in code
    """
    #check if a preset is selected
    selected_preset = glob.main_window._selected_item
    if selected_preset != None:
        #call dialog to edit preset
        if ui.edit_preset_dialog(selected_preset):
            logging.debug('Editing Preset: ' + selected_preset.preset_name)
            item_list.update(selected_preset)
            #check if tags are already in list
            tags.update(selected_preset.tags)
            tags.save()
            #update user interface
            update_ui()
        else:
            logging.debug('Cancel Editing Preset: ' +
                          selected_preset.preset_name)
    else:
        logging.debug('No Preset selected')
        simpledialog.messagebox.showinfo("Warning", "Please select Preset")
コード例 #3
0
ファイル: actions.py プロジェクト: brummbrum/PresetManager
def import_presets():
    """Import presets from Folder

    Currently experimental function for loading NKSF files
    directly into the preset manager
    """
    #ask user to select folder for presets
    folder = filedialog.askdirectory(title="Select Directory")

    if os.path.exists(folder):
        logging.debug('Starting import: %s', folder)
        #loop over files, not yet recursively
        for filename in os.listdir(folder):
            #if it is an nksf file, add it to list and update presets
            if filename.endswith(".nksf"):
                logging.debug('Import: %s', filename)
                preset_to_add = items.nksfpreset(os.path.join(
                    folder, filename))

                #check for preview
                preview_file = folder + "\\.previews\\" + filename + ".ogg"
                if os.path.exists(preview_file):
                    preset_to_add.preview_path = preview_file

                item_list.add(preset_to_add)
                tags.update(preset_to_add.tags)
        tags.save()
        update_ui()
    elif folder == "":
        #user cancelled dialog
        logging.debug('Import cancelled')
コード例 #4
0
ファイル: actions.py プロジェクト: dimentorium/PresetManager
def import_presets():
    """Import presets from Folder

    Currently experimental function for loading NKSF files
    directly into the preset manager
    """
    #ask user to select folder for presets
    folder = filedialog.askdirectory(title="Select Directory")

    if os.path.exists(folder):
        logging.debug('Starting import: %s', folder)
        inksf.import_folder(folder)
        tags.save()
        update_ui()
    elif folder == "":
        #user cancelled dialog
        logging.debug('Import cancelled')
コード例 #5
0
ファイル: actions.py プロジェクト: dimentorium/PresetManager
def save_preset():
    """Save preset.

    Saves the preset from the selected Reaper Track and updates UI.
    If no track is selected, the user is warned.
    """
    preset_available = rp.available()

    if preset_available:
        new_preset, init_name = rp.save()

        new_item = items.list_item(init_name, new_preset)
        if ui.edit_preset_dialog(new_item):
            logging.debug('Saving Preset: ' + new_item.preset_name)
            item_list.add(new_item)
            tags.update(new_item.tags)
            tags.save()
            update_ui()
    else:
        logging.debug('No Preset available')
        simpledialog.messagebox.showinfo("Warning",
                                         "Please select appropriate Track")