--------------
Some significant and breaking changes merits bumping the major version
number. For this release the web control widget was moved to a
separate repository to let it have its own version numbering.
Breaking changes
To support the additional daemons (see below) and simplifying the code
in general, codplayer is now fully dependent on ZeroMQ for all
intra-component communication. This led to changes in the
configuration file structure to make configuration of the
all-important ZeroMQ endpoints easy.
The old state publishing and command factory classes used in
`codplayer.conf` has been removed. In its place are ZeroMQ channel
definitions in `codmq.conf`.
`codctl` now reads `codmq.conf`, instead of `codplayer.conf`.
`codplayer.conf` has changed format, removing the state and command
factory lists and instead just having a new parameter referencing the
`codmq.conf` file.
The old FIFO command interface and the state files have been removed,
on the assumption that the ZeroMQ interface is much more useful. If
these old interfaces are needed, they could be reimplemented as
components using the the ZeroMQ API.
`codrestd` is now a daemon and behaves in the same way as all the
other codplayer daemons. Thus `codrest.conf` have additional required
configuration properties: `pid_file` and `log_file`.
Hardware support
An IO control board, connected to a Raspberry Pi GPIO port, is now
supported (and described in the `doc` directory). This board has two
corresponding daemons:
* `codlircd`: read remote control events from `lircd` and send
keypress ZeroMQ events
* `codlcd`: Display player status on an LCD and status LED
Daemon plugins
The various daemons can have plugins, listed in the config files.
This release adds one such plugin for `codplayerd`:
* `codplayer.remotecontrol.RemoteControl`: consumes keypress events
and translates them into commands.
Other fixes
* All daemons support new config parameter `initgroups`. If set to
`True` and the daemons are started with root and then drops
privileges, they will acquire all the groups the daemon user
belongs to, and not just the one specified in the config.
* codctl: new flag -q/--quiet to suppress output from action commands.
* https://github.com/petli/codplayer/issues/37: handle multiple error
alerts in the database admin web UI.
* Eject discs in background process to avoid hanging the IO loop
while the hardware spits out the disc.