From 5cbe70bbcf646db0b3cbd823015de1f531297f5a Mon Sep 17 00:00:00 2001 From: waker Date: Fri, 20 May 2011 18:02:54 +0200 Subject: reload dsp and encoder presets on every converter access --- plugins/converter/converter.c | 7 ++++++- plugins/converter/converter.h | 12 ++++++++++++ plugins/converter/convgui.c | 15 +++++++++++++-- 3 files changed, 31 insertions(+), 3 deletions(-) (limited to 'plugins') diff --git a/plugins/converter/converter.c b/plugins/converter/converter.c index 0eb68634..e97a7cc3 100644 --- a/plugins/converter/converter.c +++ b/plugins/converter/converter.c @@ -999,7 +999,7 @@ static ddb_converter_t plugin = { .misc.plugin.api_vmajor = DB_API_VERSION_MAJOR, .misc.plugin.api_vminor = DB_API_VERSION_MINOR, .misc.plugin.version_major = 1, - .misc.plugin.version_minor = 0, + .misc.plugin.version_minor = 1, .misc.plugin.type = DB_PLUGIN_MISC, .misc.plugin.name = "Converter", .misc.plugin.id = "converter", @@ -1048,6 +1048,11 @@ static ddb_converter_t plugin = { .dsp_preset_replace = dsp_preset_replace, .get_output_path = get_output_path, .convert = convert, + // 1.1 entry points + .load_encoder_presets = load_encoder_presets, + .load_dsp_presets = load_dsp_presets, + .free_encoder_presets = free_encoder_presets, + .free_dsp_presets = free_dsp_presets, }; DB_plugin_t * diff --git a/plugins/converter/converter.h b/plugins/converter/converter.h index 36daa023..d58c5b0b 100644 --- a/plugins/converter/converter.h +++ b/plugins/converter/converter.h @@ -145,6 +145,18 @@ typedef struct { int (*convert) (DB_playItem_t *it, const char *outfolder, const char *outfile, int output_bps, int output_is_float, int preserve_folder_structure, const char *root_folder, ddb_encoder_preset_t *encoder_preset, ddb_dsp_preset_t *dsp_preset, int *abort); + ///////////////////////////// + // new APIs for converter-1.1 + ///////////////////////////// + + int + (*load_encoder_presets) (void); + int + (*load_dsp_presets) (void); + void + (*free_encoder_presets) (void); + void + (*free_dsp_presets) (void); } ddb_converter_t; #endif diff --git a/plugins/converter/convgui.c b/plugins/converter/convgui.c index a3f60eab..b94e0aef 100644 --- a/plugins/converter/convgui.c +++ b/plugins/converter/convgui.c @@ -355,6 +355,13 @@ converter_show_cb (void *ctx) { static int converter_show (DB_plugin_action_t *act, DB_playItem_t *it) { + if (converter_plugin->misc.plugin.version_minor >= 1) { + // reload all presets + converter_plugin->free_encoder_presets (); + converter_plugin->load_encoder_presets (); + converter_plugin->free_dsp_presets (); + converter_plugin->load_dsp_presets (); + } // this can be called from non-gtk thread gdk_threads_add_idle (converter_show_cb, NULL); return 0; @@ -1269,14 +1276,18 @@ convgui_connect (void) { DB_misc_t plugin = { DB_PLUGIN_SET_API_VERSION .plugin.version_major = 1, - .plugin.version_minor = 0, + .plugin.version_minor = 1, .plugin.type = DB_PLUGIN_MISC, .plugin.name = "Converter GTK UI", .plugin.descr = "GTK2 User interface for the Converter plugin\n" "Usage:\n" "· select some tracks in playlist\n" "· right click\n" - "· select «Convert»", + "· select «Convert»\n\n" + "ChangeLog:\n" + "version 1.1\n" + " Reload DSP and encoder presets on every converter access\n" + " Write 0 wave data size into waveheader when using pipe, for oggenc compatibility\n", .plugin.copyright = "Copyright (C) 2009-2011 Alexey Yakovenko \n" "\n" -- cgit v1.2.3