Posts: 1,946
Joined: Jan 2015
Reputation:
137
ksooo
Team-Kodi Developer
Posts: 1,946
Much appreciated. Will look at the code and give it a try asap.
Posts: 2,127
Joined: Jan 2015
Reputation:
60
Razze
Team-Kodi Member
Posts: 2,127
Btw. I think these topics might make sense in the non team section. Probably the read only forum?
Posts: 173
Joined: Aug 2008
Reputation:
6
alwinus
Team-Kodi Developer
Posts: 173
You're right Razze, how can be it moved?
Posts: 173
Joined: Aug 2008
Reputation:
6
alwinus
Team-Kodi Developer
Posts: 173
The commits are updated, has cleaned up several places and has also added on end 2 other fixes.
On my side are the following conditions fixed with all changes:
- Fixed Kodi crash if PVR system becomes disabled and a channel playback is active
- Fixed audio DSP database initialization error "Audio DSP - CreateTables - failed to get add-ons from the add-on manager"
- Fixed Kodi crash if DSP basic add-on becomes enabled (Hopefully now)
Posts: 173
Joined: Aug 2008
Reputation:
6
alwinus
Team-Kodi Developer
Posts: 173
Also added the CAddonBinaryManager, which is on the moment really small, but for me a place to introduce more in future about binary add-ons and to separate them from other places e.g CApplication or Login sceen.
Posts: 6,255
Joined: Jun 2009
Reputation:
115
da-anda
Team-Kodi Member
Posts: 6,255
can you share some schema/diagram on what you plan architecture wise? I think it would be a good idea to first come up with a concept that's being discussed with others before actually coding it in order to not have to refactor stuff again once a PR is up.
Posts: 603
Joined: Jan 2014
Reputation:
21
Hi Alwin,
do you also use cpluff as basic add-on management?
Latest news about AudioDSP and my libraries is available on
Twitter.
Developers can follow me on
Github.
Posts: 6,255
Joined: Jun 2009
Reputation:
115
da-anda
Team-Kodi Member
Posts: 6,255
2015-10-21, 20:56
(This post was last modified: 2015-10-21, 20:58 by da-anda.)
would it make sense to have a compatibility layer/wrapper in between? Like for PVR add-ons, each time the API is extended, stub functions have to be added to each and every PVR client that do nothing but annoy every dev. Wouldn't it be much wiser to have a compatibility layer in between? It could basically work like this:
- PVR manager checks for activated add-ons and their supported API version
- if API version matches, the add-on is directly instantiated
- if API version differs and core has a compatibile wrapper for it, instantiate that wrapper instead of the add-on and hand it over the add-on instance and configuration
The compatibility layer would then forward all functions supported by the API version directly to the add-on and provide sane stubs for new stuff. And to not end in a flood of compatibility layers we can define a support timeframe (like max 2 Kodi Versions).
As a bonus, if in addition to the incompatible API versions EVERY PVR add-on would be wrapped, we'd have the possibility to run the very same PVR add-on multiple times with different configurations. This ofc requies also changes on settings level, so that an enabled PVR add-on is not automatically instantiated but only available for selection in something like a PVR connection manager. In this manager you could then add any number of connections, choose the backend type (add-on type) for the connection and give it a individual configuration (open the add-on settings dialog and save it bound to this connection).
Posts: 173
Joined: Aug 2008
Reputation:
6
alwinus
Team-Kodi Developer
Posts: 173
Hi da-anda, yes you have the same ideas like me. To have a compatibility layer make much sense, then also older versions can be used and brings not so much problems if the API changes can not implemented direct.
Also to allow usage of several same add-ons together is planned from me to use of different PVR backends.
The current changes are primary to have for all binaries the same standard functions e.g. UpdateAndInitialiseAddons(...) or RegisterAddon(...)
Hi wisler, changes are not related to cpluff, this are primary for inside kodi it self.