Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement a DACP control interface #318

Open
aleszczynskig opened this issue Feb 25, 2021 · 4 comments
Open

Implement a DACP control interface #318

aleszczynskig opened this issue Feb 25, 2021 · 4 comments
Labels
enhancement New feature or request

Comments

@aleszczynskig
Copy link

Is your feature request related to a problem? Please describe.
When using forked-daapd, it can connect via a DACP interface to the source device to enable hardware control of the source (playback controls/ volume controls). It is particularly useful when using spocon with a pipe connecting forked-daapd. Can you implement a DACP interface so that playback controls and volume can be controlled. The control details will need to be send to forked-daapd over the metadata pipe. I have included the command in the bottom section.

Describe the solution you'd like
Implement a DACP interface and share the details over the metadata pipe.

Describe alternatives you've considered
Nothing. I do not believe there are any other options currently.

Additional context

Taken from https://github.com/mikebrady/shairport-sync-metadata-reader

daid -- this is the source's DACP-ID (if it has one -- it's not guaranteed), useful if you want to remotely control the source. Use this string to identify the source's remote control on the network.
acre -- this is the source's Active-Remote token, necessary if you want to send commands to the source's remote control (if it has one).
dapo -- the payload is the port number (as text) of the source's remote control, to which commands should be sent. It is 3689 for iTunes but varies for iOS devices.

@aleszczynskig aleszczynskig added the enhancement New feature or request label Feb 25, 2021
devgianlu added a commit that referenced this issue Apr 14, 2021
In preparation for #318 I decided to move DACP stuff to another module.
@devgianlu
Copy link
Member

@aleszczynskig Do you have a capture (like piping the data from the DACP controller to a file) of what the input data would look like? I am struggling to understand what the device being controlled receives.

@aleszczynskig
Copy link
Author

@devgianlu - sorry for the delay. Super busy at the moment. Unfortunately I do not have a capture. This project seems to offer an implementation though. I appreciate it is not in written in java however maybe this repo would provide some useful insight?

https://github.com/melloware/dacp-net

@devgianlu
Copy link
Member

Wait a second, is the control interface a pipe or an HTTP server? I thought it was a pipe and the stuff I found on the internet didn't make sense, but they do if it's HTTP.

@aleszczynskig
Copy link
Author

It's an HTTP interface. You provide the details of that interface over the metadata pipe so that forked-daapd or similar can establish a connection back to it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants