DACP in Rhythmbox: Week 2
Last week there was the inclusion of libdmapsharing in Rhythmbox (by the way, for all of you alpha testing Ubuntu, DAAP isn’t working in Rhythmbox because they haven’t included libdmapsharing in Ubuntu yet). So now I’m just a git pull and git merge away from following Rhythmbox master, which makes my job much easier.
Last week didn’t see much work from me, I was mostly fixing some bugs and some bad decisions. But I noticed I never showed screenshots of my work here. Because I love screenshots, here they are.
First you open your Remote application in iPhone, iPod Touch or Android device (note that on Android there is no passcode):
Then in Rhythmbox, you type the passcode shown in your Remote. This allows Rhythmbox to pair with your Remote:
Then Rhythmbox magically appears at your Remote list of libraries:
“DACP on Rhythmbox” will become your library’s name over time. And of course, this doesn’t fully work yet, because Rhythmbox segfaults when the iPhone tries to connect. Well, what did you expected for about two weeks of work? I was pretty excited already when I saw my iPhone on the list of devices in Rhythmbox (by the way, I think I will create a new group called Remotes, I just didn’t find out how yet).
Stay tuned for more later.




So, congrats for this. It’s good to see the library I created based on rhythmbox code being used by rhythmbox itself. Keep up the good work. Btw where is the code being maintained (repository)? I would like to take a look at it
BR
Great to see more people from Brazil
Even better people that worked on this library before. You created libdmapsharing?
Everything is being pushed at http://gitorious.org/arosenfeld-gsoc-2010
More information is also availiable at http://live.gnome.org/SummerOfCode2010/AlexandreRosenfeld_Rhythmbox
Yep, I created libdmapsharing back in time, when I was working for INdT in Canola. Then when Canola stopped supporting DMAP I decided to stop maintaining it. Good to see someone is improving it
What kind of widget is used in Rhythmbox to enter the passcode? (Curious about its accessibility and how to access it with keyboard only)
It’s the standard GtkEntry, the only thing I do is get the callbacks for text entered, so it only allows numbers to get in and as soon as a number is entered it moves the focus to the next Entry. I still have to follow the backspace event, which would move the focus to the last entry. As far as I know this allows the same kind of accessibility as present in Gtk.
Do you really think you need to replicate the UI of mobile devices? I mean: no need to have three different boxes, only one allowing only four numbers to be typed would do. That would look less awkward in a desktop app.
Here’s the function you use to create a new source group:
http://library.gnome.org/devel/rhythmbox/unstable/rhythmbox-RBSourceGroup.html#rb-source-group-register
You’d do something like this:
RBSourceGroup *group;
group = rb_source_group_get_by_name (“remotes”)
if (group == NULL) {
group = rb_source_group_register (“remotes”, _(“Remotes”), RB_SOURCE_GROUP_CATEGORY_REMOVABLE);
}
then pass ‘group’ into the source constructor.
This is some really good work, but can it not be integrated with the existing bluetooth widget? I assume that DACP sits on top of an existing bluetooth profile? In which case, wouldn’t it be really neat to abstract that DACP away into some kind of dbus advertising goodness, and then link that bit with rhythmbox?
Not at all, DACP sits on top of DAAP, a HTTP based protocol. The work is generic enough to be availiable to any application willing to implement it, but DBus is too slow for this kind of thing, so a C api is needed (hopefully with introspection, any language later will be able to use too).
I use Fedora and it have a firewall.
What port open to use this features?