Don't pin tracks already in cache unless requested.
- add lock screen controls
- use empty buffer instead of null to signal eos for server
- some minor fixes