mirror of
https://github.com/Rafostar/clapper.git
synced 2025-08-30 07:42:23 +02:00
Add support for configuring Clapper Enhancers. In order to do that, introduce enhancer proxy object that act as intermediary between player and enhancer plugin. We cannot give direct access to enhancer instances from code, since they are managed (created and destroyed) by player as/when needed. Also due to some interpreted languages not working with multiple threads. Instead, give proxy objects that will store each enhancer configuration to be applied when an enhancer instance is created. With this, implementations also gain ability to browse available enhancers, see what they support and change their properties. Enhancers are now also assigned to player, instead of being only global. This allows to configure them separately on a per player instance basis. Writing configurable enhancers is super easy too, as all plugin has to do is install standard GParamSpec properties to its class with a corresponding gschema file (for global props only) and its done.