The Player module now verifies that commands sent to the server for controlling a squeezebox player actually took effect, which can help with scripts that require actions to be performed in a specific order. The coroutine does not complete until this verification has taken place. You can use `asyncio.create_task()` instead of `await` if you don't want to block until the task is complete. Or if you don't want to poll the server to verify the task is completely, call the player coroutine with the parameter `timeout=0`.
There is a new method, `Player.create_property_future(property, condition, inteval)`, which returns an `asyncio.Future` that completes when a player property enters a certain state. `condition` is a method that accepts the property as its only parameter and returns `True` if it is met. You can specify the maximum time between server polls withe the `interval` parameter; the default is one second. Pysqueezebox will consolidate these polls to avoid spamming the server.
Also, thank you to Greg X for contributing a patch exposing several additional player properties, including:
-Expose audio encoding details such as media type, bit rate, etc
-Expose LMS remote and remote_title fields for improved identification of internet radio stations
-Allow retrieval of elapsed time and total time with floating precision
-Allow caller to specify LMS tags to request additional information from the server