Closed KobaltRo closed 10 years ago
The metadata case seems a bit more complex, still looking at that. But Position (or BytePosition) is not evented in UPnP, is it? You could argue that dleyna should query it periodically... but whatever period we choose, it's going to be wrong for someone.
Hi Jussi, from what I've dug, Position or BytePosition is not evented by UPnP. Implementing an polling thread will raise a couple of questions: 1) How often do we interrogate for Position 2) Would querying for Position at an interval lower than 1 sec, cause a dbus stack overrun and increase resource usage?
L.E: I think that whoever wants the position should query dleyna for it.
I agree about Position: dleyna should not do more about it -- the documentation could be clearer though.
I'm having trouble reproducing the problem with "MediaPlayer2.Player.Metadata": As far as I can see the property is in the property change signals dictionary when it should be -- e.g. when the renderer sets a new uri.
I also can't see anything wrong with the code yet (although it's not as simple as it could be): To me it looks like prv_last_change_cb() will emit property changes for "Metadata" like it should (possibly even sometimes when it doesn't need to).
Do you have a specific way to reproduce this problem: maybe I'm not testing the right way?
For debugging purposes I've modified rygel to emit a LastChange with "CurrentTrackMetaData" in it every second. dleyna-renderer sees those LastChanges and does send a property change notification for "Metadata".
As far as I can see it's working as intended. If you are still seeing missing property change notifications, I'm going to need more specific reproduction steps.
Closing issue as invalid.
dleyna doesnt notify about changed properties, for sure 1) Position 2) Metadata
are not notified.
If the upper middleware query manually a GetPropertyPosition and a GetPropertyMetadata dleyna renderer gives correct and current metadata AND THEN it sends the expected event ChangedPosition and ChangedMetadata... but if there is not polling, the events are not sent