summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2009-09-02 20:04:23 +0200
committerGravatar waker <wakeroid@gmail.com>2009-09-02 20:04:23 +0200
commite2babab016f02c1c91fde27f3a7a34e5baba333f (patch)
tree8fef95c1a016a56b6c865f742d0147b103fc99c6
parentb45d4421ab55a5c0770f7cb67e62143a1cf71bc4 (diff)
added plugin blacklisting; fixed scroll-follows-playback menu item label
-rw-r--r--callbacks.c4
-rw-r--r--callbacks.h4
-rw-r--r--conf.c14
-rw-r--r--conf.h1
-rw-r--r--config-example4
-rw-r--r--deadbeef.glade6
-rw-r--r--gtkplaylist.c2
-rw-r--r--interface.c16
-rw-r--r--main.c2
-rw-r--r--plugins.c23
-rw-r--r--session.c16
-rw-r--r--session.h4
12 files changed, 67 insertions, 29 deletions
diff --git a/callbacks.c b/callbacks.c
index 452e473f..222a961f 100644
--- a/callbacks.c
+++ b/callbacks.c
@@ -1192,9 +1192,9 @@ on_mainwin_configure_event (GtkWidget *widget,
void
-on_cursor_follows_playback_activate (GtkMenuItem *menuitem,
+on_scroll_follows_playback_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
- session_set_cursor_follows_playback (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (menuitem)));
+ session_set_scroll_follows_playback (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (menuitem)));
}
diff --git a/callbacks.h b/callbacks.h
index a79215c1..417a49d6 100644
--- a/callbacks.h
+++ b/callbacks.h
@@ -496,3 +496,7 @@ on_mainwin_configure_event (GtkWidget *widget,
void
on_cursor_follows_playback_activate (GtkMenuItem *menuitem,
gpointer user_data);
+
+void
+on_scroll_follows_playback_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
diff --git a/conf.c b/conf.c
index c2d036b0..bd28f2ec 100644
--- a/conf.c
+++ b/conf.c
@@ -25,6 +25,7 @@ int conf_samplerate = 48000;
int conf_src_quality = 1;
char conf_hvsc_path[1024] = "";
int conf_hvsc_enable = 0;
+char conf_blacklist_plugins[1024]; // plugins listed in this option will not be loaded
int
conf_load (void) {
@@ -70,19 +71,24 @@ conf_load (void) {
conf_samplerate = atoi (value);
}
else if (!strcasecmp (str, "alsa_soundcard")) {
- strncpy (conf_alsa_soundcard, value, 1024);
- conf_alsa_soundcard[1023] = 0;
+ strncpy (conf_alsa_soundcard, value, sizeof (conf_alsa_soundcard));
+ conf_alsa_soundcard[sizeof (conf_alsa_soundcard) - 1] = 0;
}
else if (!strcasecmp (str, "src_quality")) {
conf_src_quality = atoi (value);
}
else if (!strcasecmp (str, "hvsc_path")) {
- strncpy (conf_hvsc_path, value, 1024);
- conf_hvsc_path[1023] = 0;
+ strncpy (conf_hvsc_path, value, sizeof (conf_hvsc_path));
+ conf_hvsc_path[sizeof (conf_hvsc_path)-1] = 0;
}
else if (!strcasecmp (str, "hvsc_enable")) {
conf_hvsc_enable = atoi (value);
}
+ else if (!strcasecmp (str, "blacklist_plugins")) {
+ fprintf (stderr, "blacklisted plugins: %s\n", value);
+ strncpy (conf_blacklist_plugins, value, sizeof (conf_blacklist_plugins));
+ conf_blacklist_plugins[sizeof (conf_blacklist_plugins)-1] = 0;
+ }
else {
fprintf (stderr, "error in config file line %d\n", line);
}
diff --git a/conf.h b/conf.h
index e9a21f5b..b393e46b 100644
--- a/conf.h
+++ b/conf.h
@@ -23,6 +23,7 @@ extern int conf_samplerate;
extern int conf_src_quality;
extern char conf_hvsc_path[1024];
extern int conf_hvsc_enable;
+extern char conf_blacklist_plugins[1024];
int
conf_load (void);
diff --git a/config-example b/config-example
index 69f748c4..04549e21 100644
--- a/config-example
+++ b/config-example
@@ -29,3 +29,7 @@ src_quality 2
# in case you don't know what HVSC is - keep disabled
#hvsc_path /home/waker/hvsc/C64Music/DOCUMENTS/Songlengths.txt
#hvsc_enable 1
+
+# plugin blacklisting
+# i use it for testing
+#blacklist_plugins ape hotkeys
diff --git a/deadbeef.glade b/deadbeef.glade
index 94b5f8bf..d36486d7 100644
--- a/deadbeef.glade
+++ b/deadbeef.glade
@@ -288,12 +288,12 @@
</child>
<child>
- <widget class="GtkCheckMenuItem" id="cursor_follows_playback">
+ <widget class="GtkCheckMenuItem" id="scroll_follows_playback">
<property name="visible">True</property>
- <property name="label" translatable="yes">Cursor follows playback</property>
+ <property name="label" translatable="yes">Scroll follows playback</property>
<property name="use_underline">True</property>
<property name="active">True</property>
- <signal name="activate" handler="on_cursor_follows_playback_activate" last_modification_time="Thu, 27 Aug 2009 18:17:17 GMT"/>
+ <signal name="activate" handler="on_scroll_follows_playback_activate" last_modification_time="Wed, 02 Sep 2009 17:46:43 GMT"/>
</widget>
</child>
</widget>
diff --git a/gtkplaylist.c b/gtkplaylist.c
index e1fb904a..5b60c419 100644
--- a/gtkplaylist.c
+++ b/gtkplaylist.c
@@ -762,7 +762,7 @@ void
gtkpl_songchanged (gtkplaylist_t *ps, int from, int to) {
if (!dragwait && to != -1) {
GtkWidget *widget = ps->playlist;
- if (session_get_cursor_follows_playback ()) {
+ if (session_get_scroll_follows_playback ()) {
if (to < ps->scrollpos || to >= ps->scrollpos + ps->nvisiblefullrows) {
gtk_range_set_value (GTK_RANGE (ps->scrollbar), to - ps->nvisiblerows/2);
}
diff --git a/interface.c b/interface.c
index 347cf149..1dafe8b9 100644
--- a/interface.c
+++ b/interface.c
@@ -65,7 +65,7 @@ create_mainwin (void)
GtkWidget *loop_all;
GtkWidget *loop_single;
GtkWidget *loop_disable;
- GtkWidget *cursor_follows_playback;
+ GtkWidget *scroll_follows_playback;
GtkWidget *menuitem4;
GtkWidget *menuitem4_menu;
GtkWidget *about1;
@@ -240,10 +240,10 @@ create_mainwin (void)
gtk_container_add (GTK_CONTAINER (looping1_menu), loop_disable);
gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (loop_disable), TRUE);
- cursor_follows_playback = gtk_check_menu_item_new_with_mnemonic ("Cursor follows playback");
- gtk_widget_show (cursor_follows_playback);
- gtk_container_add (GTK_CONTAINER (playlist1_menu), cursor_follows_playback);
- gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (cursor_follows_playback), TRUE);
+ scroll_follows_playback = gtk_check_menu_item_new_with_mnemonic ("Scroll follows playback");
+ gtk_widget_show (scroll_follows_playback);
+ gtk_container_add (GTK_CONTAINER (playlist1_menu), scroll_follows_playback);
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (scroll_follows_playback), TRUE);
menuitem4 = gtk_menu_item_new_with_mnemonic ("_Help");
gtk_widget_show (menuitem4);
@@ -424,8 +424,8 @@ create_mainwin (void)
g_signal_connect ((gpointer) loop_disable, "activate",
G_CALLBACK (on_loop_disable_activate),
NULL);
- g_signal_connect ((gpointer) cursor_follows_playback, "activate",
- G_CALLBACK (on_cursor_follows_playback_activate),
+ g_signal_connect ((gpointer) scroll_follows_playback, "activate",
+ G_CALLBACK (on_scroll_follows_playback_activate),
NULL);
g_signal_connect ((gpointer) about1, "activate",
G_CALLBACK (on_about1_activate),
@@ -586,7 +586,7 @@ create_mainwin (void)
GLADE_HOOKUP_OBJECT (mainwin, loop_all, "loop_all");
GLADE_HOOKUP_OBJECT (mainwin, loop_single, "loop_single");
GLADE_HOOKUP_OBJECT (mainwin, loop_disable, "loop_disable");
- GLADE_HOOKUP_OBJECT (mainwin, cursor_follows_playback, "cursor_follows_playback");
+ GLADE_HOOKUP_OBJECT (mainwin, scroll_follows_playback, "scroll_follows_playback");
GLADE_HOOKUP_OBJECT (mainwin, menuitem4, "menuitem4");
GLADE_HOOKUP_OBJECT (mainwin, menuitem4_menu, "menuitem4_menu");
GLADE_HOOKUP_OBJECT (mainwin, about1, "about1");
diff --git a/main.c b/main.c
index 39d8c7a8..e4cf43f7 100644
--- a/main.c
+++ b/main.c
@@ -647,7 +647,7 @@ main (int argc, char *argv[]) {
gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (lookup_widget (mainwin, w)), TRUE);
w = loopingwidgets[session_get_playlist_looping ()];
gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (lookup_widget (mainwin, w)), TRUE);
- gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (lookup_widget (mainwin, "cursor_follows_playback")), session_get_cursor_follows_playback () ? TRUE : FALSE);
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (lookup_widget (mainwin, "scroll_follows_playback")), session_get_scroll_follows_playback () ? TRUE : FALSE);
searchwin = create_searchwin ();
gtk_window_set_transient_for (GTK_WINDOW (searchwin), GTK_WINDOW (mainwin));
diff --git a/plugins.c b/plugins.c
index dd7060e3..dcf7d2b7 100644
--- a/plugins.c
+++ b/plugins.c
@@ -37,6 +37,7 @@
#include "streamer.h"
#include "playback.h"
#include "common.h"
+#include "conf.h"
// deadbeef api
DB_functions_t deadbeef_api = {
@@ -292,6 +293,28 @@ plug_load_all (void) {
if (strcasecmp (&namelist[i]->d_name[l-3], ".so")) {
continue;
}
+ // no blacklisted
+ const uint8_t *p = conf_blacklist_plugins;
+ while (*p) {
+ const uint8_t *e = p;
+ while (*e && *e > 0x20) {
+ e++;
+ }
+ if (l-3 == e-p) {
+ if (!strncmp (p, namelist[i]->d_name, e-p)) {
+ p = NULL;
+ break;
+ }
+ }
+ p = e;
+ while (*p && *p <= 0x20) {
+ p++;
+ }
+ }
+ if (!p) {
+ fprintf (stderr, "plugin %s is blacklisted in config file\n", namelist[i]->d_name);
+ continue;
+ }
char fullname[1024];
strcpy (fullname, dirname);
strncat (fullname, "/", 1024);
diff --git a/session.c b/session.c
index c76bfe7a..73b1eda5 100644
--- a/session.c
+++ b/session.c
@@ -29,7 +29,7 @@ char session_dir[2048];
float session_volume;
int8_t session_playlist_order;
int8_t session_playlist_looping;
-int8_t session_cursor_follows_playback = 1;
+int8_t session_scroll_follows_playback = 1;
int session_win_attrs[5] = { 40, 40, 500, 300, 0 };
static uint8_t sessfile_magic[] = { 0xdb, 0xef, 0x5e, 0x55 }; // dbefsess in hexspeak
@@ -39,7 +39,7 @@ session_reset (void) {
session_dir[0] = 0;
session_playlist_looping = 0;
session_playlist_order = 0;
- session_cursor_follows_playback = 1;
+ session_scroll_follows_playback = 1;
session_win_attrs[0] = 40;
session_win_attrs[1] = 40;
session_win_attrs[2] = 500;
@@ -154,7 +154,7 @@ session_save (const char *fname) {
if (fwrite (&session_playlist_looping, 1, 1, fp) != 1) {
goto session_save_fail;
}
- if (fwrite (&session_cursor_follows_playback, 1, 1, fp) != 1) {
+ if (fwrite (&session_scroll_follows_playback, 1, 1, fp) != 1) {
goto session_save_fail;
}
for (int k = 0; k < 5; k++) {
@@ -217,7 +217,7 @@ session_load (const char *fname) {
if (session_playlist_looping < 0 || session_playlist_looping > 2) {
goto session_load_fail;
}
- if (fread (&session_cursor_follows_playback, 1, 1, fp) != 1) {
+ if (fread (&session_scroll_follows_playback, 1, 1, fp) != 1) {
goto session_load_fail;
}
for (int k = 0; k < 5; k++) {
@@ -278,11 +278,11 @@ session_get_playlist_looping (void) {
}
void
-session_set_cursor_follows_playback (int on) {
- session_cursor_follows_playback = on;
+session_set_scroll_follows_playback (int on) {
+ session_scroll_follows_playback = on;
}
int
-session_get_cursor_follows_playback (void) {
- return session_cursor_follows_playback;
+session_get_scroll_follows_playback (void) {
+ return session_scroll_follows_playback;
}
diff --git a/session.h b/session.h
index 9e530695..9368736e 100644
--- a/session.h
+++ b/session.h
@@ -52,10 +52,10 @@ int
session_get_playlist_order (void);
void
-session_set_cursor_follows_playback (int on);
+session_set_scroll_follows_playback (int on);
int
-session_get_cursor_follows_playback (void);
+session_get_scroll_follows_playback (void);
void
session_set_playlist_looping (int looping);