summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2012-04-02 22:14:18 +0200
committerGravatar waker <wakeroid@gmail.com>2012-04-02 22:14:18 +0200
commitfdb239390d5339cd7ae8784abdd3fe9f35401b7d (patch)
tree6fd4fa88d1da65d62a7374ff7a9cca52c0289b6d
parent04fcf6384e2415e2eedc3b8caad442f455632655 (diff)
extended plugin api to trigger dsp chain saving from plugins
-rw-r--r--deadbeef.h6
-rw-r--r--plugins.c2
-rw-r--r--streamer.c17
-rw-r--r--streamer.h2
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);