Contribution
Actually this is not an issue, but should rather be a pull request. Before I put in the work to open a pull request, I wanted to know if the changes are appreciated and how many pull requests I should open. I implemented the following features in my fork of RAOP-Player (they might still need a little bit of cleanup / testing):
- Python bindings
- Support for password protected Airplay targets
- Support for requesting and adding a new pin to an Apple TV
To implement 3. I had to break the currently existing API. I split the raopcl_connect in two functions. The first one is still called raopcl_connect, the second one is named raopcl_pair. raopcl_connect calls rtspcl_connect, while raopcl_pair will send the SETUP, ANNOUNCE etc. stuff. To request a new pin from an Apple TV, the following steps need to be performed:
- Call
raopcl_connect - Call
raopcl_request_pin - Call
raopcl_pairwith the Apple TV pin - Airplay will start
You can get the newly created secret using raopcl_secret. The next time you can just use this secret with the existing -s flag. I reimplemented the raop_player script in python with the additional new features and removed the raop_player.c file, since I wanted to test the python bindings and did not want to implement every change twice.
I can review these changes but I need to evaluate the "ripple effects" to my other projects as I have a few that use the library underneath RAOP_player. In fact, the player was just used for verifying the library