summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2010-12-30 20:23:23 +0100
committerGravatar waker <wakeroid@gmail.com>2010-12-30 20:23:23 +0100
commit2d0b6eda861e5bfcdce1ca43afb013d15b9d73b5 (patch)
tree18467f2ae9871dd0677ac0b3de9760a12abac317 /plugins
parent44a0f104bdf326e87ae5d3d36234b19c2d81f8d8 (diff)
streamer dsp chain WIP
Diffstat (limited to 'plugins')
-rw-r--r--plugins/converter/converter.c2
-rw-r--r--plugins/dsp_libsrc/src.c1
-rw-r--r--plugins/gtkui/dspconfig.c10
-rw-r--r--plugins/gtkui/eq.c11
-rw-r--r--plugins/supereq/supereq.c33
5 files changed, 27 insertions, 30 deletions
diff --git a/plugins/converter/converter.c b/plugins/converter/converter.c
index 061306b6..78c25d40 100644
--- a/plugins/converter/converter.c
+++ b/plugins/converter/converter.c
@@ -390,7 +390,7 @@ dsp_preset_save (ddb_dsp_preset_t *p, int overwrite) {
}
}
- FILE *fp = fopen (path, "w+b");
+ FILE *fp = fopen (path, "w+t");
if (!fp) {
return -1;
}
diff --git a/plugins/dsp_libsrc/src.c b/plugins/dsp_libsrc/src.c
index fdb96d14..1909fa6e 100644
--- a/plugins/dsp_libsrc/src.c
+++ b/plugins/dsp_libsrc/src.c
@@ -177,6 +177,7 @@ ddb_src_process (ddb_dsp_context_t *_src, float *samples, int nframes, ddb_wavef
//}
//fwrite (input, 1, numoutframes*sizeof(float)*(*nchannels), out);
+ fmt->samplerate = src->samplerate;
return numoutframes;
}
diff --git a/plugins/gtkui/dspconfig.c b/plugins/gtkui/dspconfig.c
index ad2e34a1..6853e8a7 100644
--- a/plugins/gtkui/dspconfig.c
+++ b/plugins/gtkui/dspconfig.c
@@ -47,6 +47,7 @@ dsp_clone (ddb_dsp_context_t *from) {
dsp->plugin->set_param (dsp, i, param);
}
}
+ dsp->enabled = from->enabled;
return dsp;
}
@@ -114,6 +115,11 @@ fill_dsp_plugin_list (GtkListStore *mdl) {
}
}
+static void
+update_streamer (void) {
+ deadbeef->streamer_set_dsp_chain (chain);
+}
+
void
on_dsp_add_clicked (GtkButton *button,
gpointer user_data)
@@ -161,6 +167,7 @@ on_dsp_add_clicked (GtkButton *button,
GtkListStore *mdl = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW(list)));
gtk_list_store_clear (mdl);
fill_dsp_chain (mdl);
+ update_streamer ();
}
else {
fprintf (stderr, "prefwin: failed to add DSP plugin to chain\n");
@@ -216,6 +223,7 @@ on_dsp_remove_clicked (GtkButton *button,
GtkTreeViewColumn *col;
gtk_tree_view_set_cursor (GTK_TREE_VIEW (list), path, col, FALSE);
gtk_tree_path_free (path);
+ update_streamer ();
}
}
@@ -327,6 +335,7 @@ on_dsp_up_clicked (GtkButton *button,
GtkTreeViewColumn *col;
gtk_tree_view_set_cursor (GTK_TREE_VIEW (list), path, col, FALSE);
gtk_tree_path_free (path);
+ update_streamer ();
}
@@ -347,5 +356,6 @@ on_dsp_down_clicked (GtkButton *button,
GtkTreeViewColumn *col;
gtk_tree_view_set_cursor (GTK_TREE_VIEW (list), path, col, FALSE);
gtk_tree_path_free (path);
+ update_streamer ();
}
diff --git a/plugins/gtkui/eq.c b/plugins/gtkui/eq.c
index 1917e871..a985cf50 100644
--- a/plugins/gtkui/eq.c
+++ b/plugins/gtkui/eq.c
@@ -57,14 +57,6 @@ set_param (ddb_dsp_context_t *eq, int i, float v) {
char fv[100];
snprintf (fv, sizeof (fv), "%f", v);
eq->plugin->set_param (eq, i, fv);
- if (i == 0) {
- deadbeef->conf_set_float ("eq.preamp", v);
- }
- else {
- char s[100];
- snprintf (s, sizeof (s), "eq.band%d", i-1);
- deadbeef->conf_set_float (s, v);
- }
}
void
@@ -85,8 +77,7 @@ on_enable_toggled (GtkToggleButton *togglebutton,
ddb_dsp_context_t *eq = get_supereq ();
if (eq) {
int enabled = gtk_toggle_button_get_active (togglebutton) ? 1 : 0;
- eq->plugin->enable (eq, enabled);
- deadbeef->conf_set_int ("eq.enable", enabled);
+ eq->enabled = enabled;
}
}
diff --git a/plugins/supereq/supereq.c b/plugins/supereq/supereq.c
index 9e957116..79a0bd5d 100644
--- a/plugins/supereq/supereq.c
+++ b/plugins/supereq/supereq.c
@@ -37,6 +37,7 @@ typedef struct {
int params_changed;
uintptr_t mutex;
SuperEqState state;
+ int enabled;
} ddb_supereq_ctx_t;
void supereq_reset (ddb_dsp_context_t *ctx);
@@ -78,6 +79,19 @@ supereq_plugin_stop (void) {
int
supereq_process (ddb_dsp_context_t *ctx, float *samples, int frames, ddb_waveformat_t *fmt) {
ddb_supereq_ctx_t *supereq = (ddb_supereq_ctx_t *)ctx;
+ if (supereq->enabled != ctx->enabled) {
+ if (ctx->enabled && !supereq->enabled) {
+ supereq_reset (ctx);
+ }
+ supereq->enabled = ctx->enabled;
+
+ DB_playItem_t *it = deadbeef->streamer_get_playing_track ();
+ if (it) {
+ float playpos = deadbeef->streamer_get_playpos ();
+ deadbeef->streamer_seek (playpos);
+ deadbeef->pl_item_unref (it);
+ }
+ }
if (supereq->params_changed) {
recalc_table (supereq);
supereq->params_changed = 0;
@@ -138,24 +152,6 @@ supereq_reset (ddb_dsp_context_t *ctx) {
deadbeef->mutex_unlock (supereq->mutex);
}
-void
-supereq_enable (ddb_dsp_context_t *ctx, int e) {
- ddb_supereq_ctx_t *supereq = (ddb_supereq_ctx_t *)ctx;
- if (e != supereq->ctx.enabled) {
- if (e && !supereq->ctx.enabled) {
- supereq_reset (ctx);
- }
- supereq->ctx.enabled = e;
- }
-
- DB_playItem_t *it = deadbeef->streamer_get_playing_track ();
- if (it) {
- float playpos = deadbeef->streamer_get_playpos ();
- deadbeef->streamer_seek (playpos);
- deadbeef->pl_item_unref (it);
- }
-}
-
int
supereq_num_params (void) {
return 19;
@@ -303,7 +299,6 @@ static DB_dsp_t plugin = {
.close = supereq_close,
.process = supereq_process,
.reset = supereq_reset,
- .enable = supereq_enable,
.num_params = supereq_num_params,
.get_param_name = supereq_get_param_name,
.set_param = supereq_set_param,