Permalink
Browse files

Allow keyboard shortcuts to be disabled

Something like

	act_foobar = disabled

disables the command foobar completely now. Useful if you don't use
software volume control. See issue #78.
  • Loading branch information...
1 parent 0a76b72 commit 58398e4b2a9666a94aacced30453c1fc46b4a2e8 @PromyLOPh committed Feb 2, 2011
Showing with 26 additions and 10 deletions.
  1. +7 −2 contrib/pianobar.1
  2. +10 −5 src/main.c
  3. +6 −2 src/settings.c
  4. +2 −0 src/settings.h
  5. +1 −1 src/ui_act.c
View
@@ -32,9 +32,14 @@ http://xiph.org/ao/doc/config.html
The configuration file consists of simple
.B key = value
lines. Each terminated with a newline (\\n) character. Keys and values are both
-case sensitive. act_*-keys control
+case sensitive.
+
+act_* keys control
.B pianobar's
-key-bindings.
+key-bindings. Every one-byte character except for \\x00 and the
+special value
+.B disabled
+are allowed here.
.TP
.B act_help = ?
View
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2008-2010
+Copyright (c) 2008-2011
Lars-Dominik Braun <lars@6xq.net>
Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -174,7 +174,8 @@ static void BarMainHandleUserInput (BarApp_t *app) {
size_t i;
for (i = 0; i < BAR_KS_COUNT; i++) {
- if (app->settings.keys[i] == buf) {
+ if (app->settings.keys[i] != BAR_KS_DISABLED &&
+ app->settings.keys[i] == buf) {
static const BarKeyShortcutFunc_t idToF[] = {BarUiActHelp,
BarUiActLoveSong, BarUiActBanSong,
BarUiActAddMusic, BarUiActCreateStation,
@@ -425,9 +426,13 @@ int main (int argc, char **argv) {
BarSettingsInit (&app.settings);
BarSettingsRead (&app.settings);
- BarUiMsg (MSG_NONE, "Welcome to " PACKAGE " (" VERSION ")! "
- "Press %c for a list of commands.\n",
- app.settings.keys[BAR_KS_HELP]);
+ BarUiMsg (MSG_NONE, "Welcome to " PACKAGE " (" VERSION ")! ");
+ if (app.settings.keys[BAR_KS_HELP] == BAR_KS_DISABLED) {
+ BarUiMsg (MSG_NONE, "\n");
+ } else {
+ BarUiMsg (MSG_NONE, "Press %c for a list of commands.\n",
+ app.settings.keys[BAR_KS_HELP]);
+ }
/* init fds */
FD_ZERO(&app.readSet);
View
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2008-2010
+Copyright (c) 2008-2011
Lars-Dominik Braun <lars@6xq.net>
Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -150,7 +150,11 @@ void BarSettingsRead (BarSettings_t *settings) {
/* keyboard shortcuts */
for (i = 0; i < BAR_KS_COUNT; i++) {
if (streq (shortcutFileKeys[i], key)) {
- settings->keys[i] = val[0];
+ if (streq (val, "disabled")) {
+ settings->keys[i] = BAR_KS_DISABLED;
+ } else {
+ settings->keys[i] = val[0];
+ }
break;
}
}
View
@@ -58,6 +58,8 @@ typedef enum {
BAR_KS_COUNT = 24,
} BarKeyShortcutId_t;
+#define BAR_KS_DISABLED '\x00'
+
typedef enum {
BAR_SORT_NAME_AZ = 0,
BAR_SORT_NAME_ZA = 1,
View
@@ -111,7 +111,7 @@ BarUiActCallback(BarUiActHelp) {
BarUiMsg (MSG_NONE, "\r");
for (i = 0; i < BAR_KS_COUNT; i++) {
- if (idToDesc[i] != NULL) {
+ if (idToDesc[i] != NULL && app->settings.keys[i] != BAR_KS_DISABLED) {
BarUiMsg (MSG_LIST, "%c %s\n", app->settings.keys[i], idToDesc[i]);
}
}

0 comments on commit 58398e4

Please sign in to comment.