GNOME Bugzilla – Bug 732057
It's not currently possible to reimplement the rygel-player-controller
Last modified: 2014-08-19 19:38:20 UTC
Created attachment 278938 [details] [review] Patch implementing the change This limits the possibility of integrating an external player. For instance the playlist is currently kept inside the player-controller. A change in the player can not be propagated to rygel. The player does not currently get the next URI and can not start to prebuffer. prev/next calls is handled by the player-controller... The attached patch turns rygel-player-controller into an interface. The current implementation is moved to rygel-default-player-controller which is instantiated by the get_controller function of the renderer plugin. The get_controller function is now virtual making it possible for plugins to reimplement and return another controller.
Review of attachment 278938 [details] [review]: Lessons learned from making the player API public: It's abysmally ugly to implement from C due to the use of properties. I'm not sure whether we should go down the same route here
Yep it's not optional with properties and C. On the other hand the API is about assigning or reading properties and get notified on changes... It's not that painful, override the properties and implement a set:er and get:er. And the API looks similar to the player API, furthermore it require no changes to other parts of rygel-renderer.