From fdb239390d5339cd7ae8784abdd3fe9f35401b7d Mon Sep 17 00:00:00 2001 From: waker Date: Mon, 2 Apr 2012 22:14:18 +0200 Subject: extended plugin api to trigger dsp chain saving from plugins --- deadbeef.h | 6 +++++- plugins.c | 2 ++ streamer.c | 17 ++++++++++------- streamer.h | 2 +- 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/deadbeef.h b/deadbeef.h index eb02603e..4a127110 100644 --- a/deadbeef.h +++ b/deadbeef.h @@ -61,6 +61,7 @@ extern "C" { // api version history: // 9.9 -- devel +// 1.3 -- deadbeef-0.5.3 // 1.2 -- deadbeef-0.5.2 // 1.1 -- deadbeef-0.5.1 // adds pass_through method to dsp plugins for optimization purposes @@ -77,7 +78,7 @@ extern "C" { // 0.1 -- deadbeef-0.2.0 #define DB_API_VERSION_MAJOR 1 -#define DB_API_VERSION_MINOR 2 +#define DB_API_VERSION_MINOR 3 #define DDB_PLUGIN_SET_API_VERSION\ .plugin.api_vmajor = DB_API_VERSION_MAJOR,\ @@ -741,6 +742,9 @@ typedef struct { // this function must return original un-overriden value (ignoring the keys prefixed with '!') const char *(*pl_find_meta_raw) (DB_playItem_t *it, const char *key); + + // ******* new 1.3 APIs ******** + int (*streamer_dsp_chain_save) (void); } DB_functions_t; // NOTE: an item placement must be selected like this diff --git a/plugins.c b/plugins.c index 011fa2f9..4d83444b 100644 --- a/plugins.c +++ b/plugins.c @@ -329,6 +329,8 @@ static DB_functions_t deadbeef_api = { .metacache_ref = metacache_ref, .metacache_unref = metacache_unref, .pl_find_meta_raw = (const char *(*) (DB_playItem_t *it, const char *key))pl_find_meta_raw, + // ******* new 1.3 APIs ******** + .streamer_dsp_chain_save = streamer_dsp_chain_save, }; DB_functions_t *deadbeef = &deadbeef_api; diff --git a/streamer.c b/streamer.c index 737354a2..69db8029 100644 --- a/streamer.c +++ b/streamer.c @@ -1549,7 +1549,7 @@ error: } int -streamer_dsp_chain_save (const char *fname, ddb_dsp_context_t *chain) { +streamer_dsp_chain_save_internal (const char *fname, ddb_dsp_context_t *chain) { FILE *fp = fopen (fname, "w+t"); if (!fp) { return -1; @@ -1575,6 +1575,13 @@ streamer_dsp_chain_save (const char *fname, ddb_dsp_context_t *chain) { return 0; } +int +streamer_dsp_chain_save (void) { + char fname[PATH_MAX]; + snprintf (fname, sizeof (fname), "%s/dspconfig", plug_get_config_dir ()); + return streamer_dsp_chain_save_internal (fname, dsp_chain); +} + void streamer_dsp_postinit (void) { // note about EQ hack: @@ -1728,9 +1735,7 @@ streamer_free (void) { mutex_free (mutex); mutex = 0; - char fname[PATH_MAX]; - snprintf (fname, sizeof (fname), "%s/dspconfig", plug_get_config_dir ()); - streamer_dsp_chain_save (fname, dsp_chain); + streamer_dsp_chain_save(); streamer_dsp_chain_free (dsp_chain); dsp_chain = NULL; @@ -2208,9 +2213,7 @@ streamer_set_dsp_chain (ddb_dsp_context_t *chain) { formatchanged = 1; } - char fname[PATH_MAX]; - snprintf (fname, sizeof (fname), "%s/dspconfig", plug_get_config_dir ()); - streamer_dsp_chain_save (fname, dsp_chain); + streamer_dsp_chain_save(); streamer_reset (1); mutex_unlock (decodemutex); diff --git a/streamer.h b/streamer.h index 79d252f1..6b77f382 100644 --- a/streamer.h +++ b/streamer.h @@ -125,7 +125,7 @@ void streamer_dsp_postinit (void); int -streamer_dsp_chain_save (const char *fname, ddb_dsp_context_t *chain); +streamer_dsp_chain_save (void); void streamer_notify_order_changed (int prev_order, int new_order); -- cgit v1.2.3