SqueezeButtonPi is a tool some of you might find useful if you are trying to build a Raspberry Pi based Squeezebox player and you want to use various buttons or rotary encoders.
It's currently a bit limited - only supports playback control commands without feedback (play, pause, power, skip, volume) but it could easily be extended to take server feedback and support things like "favorites" although for the latter someone should take the time to create a "hold" gesture detection for a button, something I didn't have the time for so far.
One nice feature is that it's able to autodetect a common Squeezebox setup so you often don't need to manually configure the MAC, the server etc. and it can do automatic server switching.
Main features:
Here's the source code and more documentation:
https://github.com/coolio107/SqueezeButtonPi-Daemon
Usage:
Options arguments:
Non-Option arguments.
At least one needs to be specified for the daemon to do anything useful
Arguments are a comma-separated list of configuration parameters:
It's currently a bit limited - only supports playback control commands without feedback (play, pause, power, skip, volume) but it could easily be extended to take server feedback and support things like "favorites" although for the latter someone should take the time to create a "hold" gesture detection for a button, something I didn't have the time for so far.
One nice feature is that it's able to autodetect a common Squeezebox setup so you often don't need to manually configure the MAC, the server etc. and it can do automatic server switching.
Main features:
- Supports buttons and rotary encoders
- Can be run as a daemon at startup and is fully command-line configurable
- Automatically detects the MAC address of your RPi (or you can configure it manually)
- Automatically detects what server your player is connected to and switches the server if your player does so it can be used in multi-server setups without a configuration change
- can use authenticating servers, although only with manual username/password configuration
Here's the source code and more documentation:
https://github.com/coolio107/SqueezeButtonPi-Daemon
Usage:
Code:
sbpd [OPTION...] [e,pin1,pin2,CMD,edge] [b,pin,CMD,edge...]
Code:
-A, --address=Server-Address Set server address. Default: autodetect
-M, --mac=MAC-Address Set MAC address of player. Deafult: autodetect
-p, --password=password Set password for server. Default: none
-P, --port=xxxx Set server control port. Default: autodetect
-u, --username=user name Set user name for server. Default: none
-d, --daemonize Daemonize
-k, --kill Kill daemon
-s, --silent Don't produce output
-v, --verbose Produce verbose output
-?, --help Give this help list
--usage Give a short usage message
-V, --version Print program version
At least one needs to be specified for the daemon to do anything useful
Arguments are a comma-separated list of configuration parameters:
Code:
For rotary encoders (one, volume only):
e,pin1,pin2,CMD[,edge]
"e" for "Encoder"
p1, p2: GPIO PIN numbers in BCM-notation
CMD: Command. Unused for encoders, always VOLM for Volume
edge: Optional. one of
1 - falling edge
2 - rising edge
0, 3 - both
For buttons:
b,pin,CMD[,edge]
"b" for "Button"
pin: GPIO PIN numbers in BCM-notation
CMD: Command. One of:
PLAY: Play/pause
PREV: Jump to previous track
NEXT: Jump to next track
VOL+: Increase volume
VOL-: Decrease volume
POWR: Toggle power state
edge: Optional. one of
1 - falling edge
2 - rising edge
0, 3 - both