diff options
author | waker <wakeroid@gmail.com> | 2012-04-02 22:14:18 +0200 |
---|---|---|
committer | waker <wakeroid@gmail.com> | 2012-04-02 22:14:18 +0200 |
commit | fdb239390d5339cd7ae8784abdd3fe9f35401b7d (patch) | |
tree | 6fd4fa88d1da65d62a7374ff7a9cca52c0289b6d | |
parent | 04fcf6384e2415e2eedc3b8caad442f455632655 (diff) |
extended plugin api to trigger dsp chain saving from plugins
-rw-r--r-- | deadbeef.h | 6 | ||||
-rw-r--r-- | plugins.c | 2 | ||||
-rw-r--r-- | streamer.c | 17 | ||||
-rw-r--r-- | streamer.h | 2 |
4 files changed, 18 insertions, 9 deletions
@@ -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 @@ -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; @@ -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); @@ -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); |