Skip to content

DACP in Rhythmbox: Week 11

August 6, 2010

I just went from week 2 to week 11 in the GSoC progress in my blog ;) Well, there is not much to tell in a blog if there is not a picture to show (and showing off the iPhone remote working with Rhythmbox should not be any different than iTunes if I’m doing my job correctly).

I realized these last weeks that I had completely mis-planned my project, because I had no idea what I was getting into. I thought DACP would be quite easy to implement and I would focus on other things (making a client library for instance). But I discovered it is a much more complex protocol then I thought, mostly because of DAAP.

What I discovered is that DACP is just an extension for DAAP, and being an Apple protocol, it’s closed and has been reverse-engineered and re-implemented several times in the open source world. The problem is that DACP uses several features in DAAP that were not implemented in libdmapsharing, simply because there is no real standard on DAAP. It took some time for me to learn DAAP enough to find out what was missing in libdmapsharing for DACP to work.

So I spent most of the time fixing, tweaking and implementing stuff on DAAP in libdmapsharing. Which was pretty cool, I improved a lot of my C skills, learned GObject (and quite frankly, liked it a lot) and learned a lot about DAAP and libdmapharing.

By the way, thanks for all the people who have reverse-engineered DACP and the pairing process, you have greatly simplified my life. It’s truly great to work in the open-source world.

Advertisement

From → Uncategorized

3 Comments
  1. Gordon Dracup permalink

    Good luck with this … very much looking forward to the finished article, as I am sure so many people are!

    All the best

    Gordon

  2. I couldn’t agree with you more. I am the author of MonkeyTunes which is the DACP Server for the awesome MediaMonkey product.

    http://melloware.com/products/monkeytunes/

    I took me about 2 months to decode and figure out all of the DACP commands and how Apple was using them. Then they released Remote v2 which changed some of the way things are called.

    Anyway I am also the owner of TunesREmote+ a fork of Jeff Sharkey’s TunesRemote project. One user of yours reported a defect…

    http://code.google.com/p/tunesremote-plus/issues/detail?id=25

    Hopefully we can work together to figure it out!

  3. Emiliano Sauvisky permalink

    i’m looking forward for this project to be finished! you could make a mailing list for updates, i would subscribe immediately :)

    good work,

    Emiliano.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.