Almost all USB media players are missing "portable_audio_player" capability
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
hal-info (Ubuntu) |
Fix Released
|
Critical
|
Martin Pitt |
Bug Description
Binary package hint: hal
This probably has a bunch of existing duplicates, but since we've already debugged this on IRC, I figured I'd just open a new bug with the pertinent information for you and weed the duplicates out in a little bit.
In order for Rhythmbox to use a portable audio player, it needs "portable_
information/
At the bottom, it attempts to match portable_
HOWEVER as noted in a couple of places in that file, portable_
This means that the only players which will work are iPod (sets type), Motorola phones (sets type), Archos GMini (sets type), iFP (sets type), LG Fusic Phone (explicitly adds capability) and PSP (explicitly adds capability).
The stuff at the bottom to add the capability looks logically wrong to me:
<!-- Set common keys for detected audio player if you have special cases add
the player below this match -->
<match key="portable_
<match key="portable_
<!-- NOTE: for backward compatibility until key get removed finally -->
<merge key="portable_
<!-- NOTE: for backward compatibility until key get removed finally -->
<merge key="portable_
<merge key="portable_
</match>
<append key="info.
<merge key="info.category" type="string"
<!-- all player in the list above support this output format -->
<append key="portable_
</match>
It matches those with an existing type, then matches those with storage in their protocols list (which everything does have, I've checked) and then sets type to "generic"; which is somewhat strange since that means it overrides whatever was already set.
I think that inner match is supposed to be a previous match in the opposite direction.
<match key="portable_
<match key="portable_
<!-- NOTE: for backward compatibility until key get removed finally -->
<merge key="portable_
<!-- NOTE: for backward compatibility until key get removed finally -->
<merge key="portable_
<merge key="portable_
</match>
</match>
So if we _DON'T_ have type set, but have set access_
THEN:
<match key="portable_
<append key="info.
<merge key="info.category" type="string"
<!-- all player in the list above support this output format -->
<append key="portable_
</match>
For everything (since type is now set) add the capability and category.
That fix works for me, does it look reasonable to you?
(setting OMGRC because this is a rather big regression for a release we're claiming to have better media support for :p)