What's Changed
As could be guessed from the major version increase, there are breaking changes in this release. Lots of things have moved or have been renamed to better match YNCA terminology and structure. Too many things to list have changed, but it should still be recognizable if you used this package before.
Next to making the API more consistent the new implementation also makes adding new functionality a lot easier.
Check the README.md and `example.py` for an overview of the current state.
These were the API guidelines followed during the 4.0.0 rewrite which may help when you are looking for things:
* YNCA functions have the same name on the Python API, but lowercase. Except when not possible due to Python naming restrictions like for 2CHDECODER which starts with a number.
* YNCA functions that can be read (and optionally written) are represented as attributes
* YNCA functions that can _only_ be written are represented as methods
* YNCA functions where writing results in an action are represented with methods (e.g. `vol_up()` which would otherwise be part of `vol` attribute).
As a bonus there are some newly added functions also:
* Party, PartyVol and PartyMute
* InitVolMode and InitVolLvl
* RemoteCode
* TwoChDecoder
* PureDirect mode
**Full Changelog**: https://github.com/mvdwetering/ynca/compare/v3.11.0...v4.0.0