diff options
author | waker <wakeroid@gmail.com> | 2009-09-02 20:04:23 +0200 |
---|---|---|
committer | waker <wakeroid@gmail.com> | 2009-09-02 20:04:23 +0200 |
commit | e2babab016f02c1c91fde27f3a7a34e5baba333f (patch) | |
tree | 8fef95c1a016a56b6c865f742d0147b103fc99c6 | |
parent | b45d4421ab55a5c0770f7cb67e62143a1cf71bc4 (diff) |
added plugin blacklisting; fixed scroll-follows-playback menu item label
-rw-r--r-- | callbacks.c | 4 | ||||
-rw-r--r-- | callbacks.h | 4 | ||||
-rw-r--r-- | conf.c | 14 | ||||
-rw-r--r-- | conf.h | 1 | ||||
-rw-r--r-- | config-example | 4 | ||||
-rw-r--r-- | deadbeef.glade | 6 | ||||
-rw-r--r-- | gtkplaylist.c | 2 | ||||
-rw-r--r-- | interface.c | 16 | ||||
-rw-r--r-- | main.c | 2 | ||||
-rw-r--r-- | plugins.c | 23 | ||||
-rw-r--r-- | session.c | 16 | ||||
-rw-r--r-- | session.h | 4 |
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); @@ -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); } @@ -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"); @@ -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)); @@ -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); @@ -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; } @@ -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); |