1. DACP Support in Rhythmbox
This project will implement DACP support in Rhythmbox. DACP is the protocol used by the Remote application found on iPhone and iPod Touch.
Please note: Partial patches have been submitted for early review for libdmapsharing and Rhythmbox. There is also the place where the final patches will be posted on pencil's down date and also where further discussion to integrate both patches will happen.
The implementation will be done inside libdmapsharing. There is a patch that integrates libdmapsharing inside Rhythmbox, which is being used as a base for this project. The libdmapsharing patch was commited into Rhythmbox some time ago, so my patches only need to be applied on top of master in both libdmapsharing and Rhythmbox.
You can follow my blog for more updates. The code is hosted on Gitorious, both the Rhythmbox modifications and the libdmapsharing modifications (you'll need both).
1.1. Planning
This is (as of 2010-08-11) the missing parts of the project:
Fix filter bug
Implement /databases/1/groups:
Probably just the same as /databases/1/browse
Finish signals methods/properties:
now-playing-artwork (Missing Rhythmbox implementation)
lookup-guid
add-guid
play-status-update
play-pause (Missing Rhythmbox implementation)
next-item (Missing Rhythmbox implementation)
prev-item (Missing Rhythmbox implementation)
get-shuffle-state
set-shuffle-state
get-repeat-state
set-repeat-state
get-volume
set-volume
- Add playlist control - One of the following:
Create "Remote" playlist as iTunes does - Implemented in libdmapsharing, missing in Rhythmbox
Use Queue - will be great if it allows everything I need Can't do what is required.
1.2. Screenshot
This is a screenshot of the pairing process:
1.3. Implementation diagrams
This is how the remote talks with Rhythmbox:
This is more or less the current implementation:
(Note that a recent refactor added a DACPPlayer interface in libdmapsharing which is implemented by RBDACPPlayer)
1.4. Links
Also, here is a few links that are helping me with this task: