diff options
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/converter/converter.c | 2 | ||||
-rw-r--r-- | plugins/dsp_libsrc/src.c | 1 | ||||
-rw-r--r-- | plugins/gtkui/dspconfig.c | 10 | ||||
-rw-r--r-- | plugins/gtkui/eq.c | 11 | ||||
-rw-r--r-- | plugins/supereq/supereq.c | 33 |
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, |