diff --git a/doc/clapper/clapper-enhancers.html b/doc/clapper/clapper-enhancers.html index f9622d7f..c3b73d58 100644 --- a/doc/clapper/clapper-enhancers.html +++ b/doc/clapper/clapper-enhancers.html @@ -120,9 +120,9 @@ to add their own custom functionalities that they want to use individually.

Each enhancer is a libpeas compatible module. As such it follows its requirements for writing plugins and is a GObject sublass implementing one or more of interfaces that Clapper library provides.

-

Due to the plugins nature, written enhancer can be either submitted to the main Clapper Enhancers -repository when it seems useful for more than a single -application. Alternatively, it can be shipped as part your application. Users can also write their +

Due to plugins nature, written enhancer can be either submitted to the main Clapper Enhancers +repository when it seems useful for more than +a single application or it can be shipped as part your application. Users can also write their own/custom local enhancer plugins.

Loading Enhancers

Clapper will try to lazy load enhancer modules, meaning they will not be loaded unless they are used. @@ -162,33 +162,34 @@ player instances.

They should include one or more of ClapperEnhancerParamFlags. Properties in object can have global, local, neither or both flags at once.

-

The ones with [Clapper.EnhancerParamFlags.GLOBAL] are for user to configure. They should +

The ones with CLAPPER_ENHANCER_PARAM_GLOBAL are for user to configure. They should be exposed (ideally in the UI) and used for things that make sense to be set for all applications at once (e.g. supported media codec by user device, preferred language, etc.).

-

On the other hand, properties with [Clapper.EnhancerParamFlags.LOCAL] are for application scope +

On the other hand, properties with CLAPPER_ENHANCER_PARAM_LOCAL are for application scope usage only. They never carry over to other apps, nor they can be set on global enhancers list. Instead they are configured per player instance.

When property is neither global or local it is considered to be plugin internal property. Clapper will never access them, as such they can be of any type (not limited to above list). This also makes properties that are already installed in base classes of subclassed object not appear in the UI.

-

When both flags are set, property will initially use globally set value by user while still -allowing application to override this value locally per player instance.

-

Extra flags like [Clapper.EnhancerParamFlags.FILEPATH] and [Clapper.EnhancerParamFlags.DIRPATH] +

When both flags are set, property will initially use globally set value while still +allowing application to override it content locally per player instance.

+

Extra flags like CLAPPER_ENHANCER_PARAM_FILEPATH and CLAPPER_ENHANCER_PARAM_DIRPATH can be used (usually with string type of property) in order to let application know that this field holds a file/directory path and allow it to present file selection dialog to the user instead of text entry.

Configuring Enhancers

-

Applications browse properties of enhancer via clapper_enhancer_proxy_get_target_properties() -which returns a list of GParamSpec. By inspecting their flags application can know -whether property is global, local or both.

+

Applications can browse properties of enhancer via clapper_enhancer_proxy_get_target_properties() +which returns a list of GParamSpec. By inspecting their flags they can know whether +property is global, local or both. Properties without any of these 2 flags set (internal ones) +will not appear on this list.

Use clapper_enhancer_proxy_get_settings() to get a GSettings with global properties to read and write (note that only users should be able to change them, thus you might want to bind these into some UI widgets for that). These can be (with user consent) set on either proxy from global proxies list or the player one.

Use clapper_enhancer_proxy_set_locally() to set local properties. These are meant for applications to freely customize as they please. Remember that you can only set them on a enhancer proxy object belonging -to some player instance and not the global one.

+to some player instance and not the global list.

Plugin Info File

An enhancer plugin should be placed within directory that includes its [Peas] plugin description file. It should be a text file with a .plugin extension and contain at least @@ -217,6 +218,25 @@ in the requirements of each one in their documentation pages that are listed in

If you are using Clapper as part of a Flatpak application, you can get all the enhancers from their main repo as an extension (info here), thus you do not need to build them yourself.

+

Configuration Sharing in Flatpak

+

In native system packages/installations where property with CLAPPER_ENHANCER_PARAM_GLOBAL flag is set +for an enhancer, all apps get the same config values. In sandbox however, default permissions prevent access +to config of these properties, thus setting them will only affect ClapperPlayer instances in this +particular application. Keep this in mind when writing your own enhancer plugin.

+

You can allow configuration sharing in Flatpak by adding below permission to each application that uses +Clapper Enhancers plugins (including Clapper itself):

+
--filesystem=xdg-config/clapper-0.0/enhancers:create
+
+ +

This can be done manually through either sudo flatpak override or tools such as +Flatseal.

+

When this permission is set, users can configure enhancers from within Clapper application +preferences in cases when a 3rd party app does not have any UI to configure them.

+

Please note that when doing so, any properties storing file/directory paths as values also +need a permission override from user to access this specific file/directory. A good practice is +to create a single directory for such files and allow all Flatpak with enhancers to access +this directory (including subdirectories) or just store them somewhere in allowed above +user config directory (usually: ~/.config/clapper-0.0/enhancers).

@@ -256,6 +276,9 @@ thus you do not need to build them yourself.

  • Adding Enhancers to Flatpak App
  • +
  • Configuration Sharing in Flatpak
  • + + diff --git a/doc/clapper/method.EnhancerProxy.extra_data_lists_value.html b/doc/clapper/method.EnhancerProxy.extra_data_lists_value.html index 9230e18c..ff666cbf 100644 --- a/doc/clapper/method.EnhancerProxy.extra_data_lists_value.html +++ b/doc/clapper/method.EnhancerProxy.extra_data_lists_value.html @@ -167,7 +167,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later Description - [src] + [src] diff --git a/doc/clapper/method.EnhancerProxy.get_description.html b/doc/clapper/method.EnhancerProxy.get_description.html index 08193076..458a70ae 100644 --- a/doc/clapper/method.EnhancerProxy.get_description.html +++ b/doc/clapper/method.EnhancerProxy.get_description.html @@ -165,7 +165,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later Description - [src] + [src] diff --git a/doc/clapper/method.EnhancerProxy.get_extra_data.html b/doc/clapper/method.EnhancerProxy.get_extra_data.html index 07be7b9a..0bcfdc71 100644 --- a/doc/clapper/method.EnhancerProxy.get_extra_data.html +++ b/doc/clapper/method.EnhancerProxy.get_extra_data.html @@ -166,7 +166,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later Description - [src] + [src] diff --git a/doc/clapper/method.EnhancerProxy.get_friendly_name.html b/doc/clapper/method.EnhancerProxy.get_friendly_name.html index b68cdb43..e0099394 100644 --- a/doc/clapper/method.EnhancerProxy.get_friendly_name.html +++ b/doc/clapper/method.EnhancerProxy.get_friendly_name.html @@ -165,7 +165,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later Description - [src] + [src] diff --git a/doc/clapper/method.EnhancerProxy.get_module_dir.html b/doc/clapper/method.EnhancerProxy.get_module_dir.html index c459f5c6..a0e221f5 100644 --- a/doc/clapper/method.EnhancerProxy.get_module_dir.html +++ b/doc/clapper/method.EnhancerProxy.get_module_dir.html @@ -165,7 +165,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later Description - [src] + [src] diff --git a/doc/clapper/method.EnhancerProxy.get_module_name.html b/doc/clapper/method.EnhancerProxy.get_module_name.html index 8b3b0715..783cd67e 100644 --- a/doc/clapper/method.EnhancerProxy.get_module_name.html +++ b/doc/clapper/method.EnhancerProxy.get_module_name.html @@ -165,7 +165,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later Description - [src] + [src] diff --git a/doc/clapper/method.EnhancerProxy.get_settings.html b/doc/clapper/method.EnhancerProxy.get_settings.html index 66b87ee4..9e85c1fa 100644 --- a/doc/clapper/method.EnhancerProxy.get_settings.html +++ b/doc/clapper/method.EnhancerProxy.get_settings.html @@ -165,7 +165,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later Description - [src] + [src] diff --git a/doc/clapper/method.EnhancerProxy.get_target_creation_allowed.html b/doc/clapper/method.EnhancerProxy.get_target_creation_allowed.html index 419f821a..b9415df2 100644 --- a/doc/clapper/method.EnhancerProxy.get_target_creation_allowed.html +++ b/doc/clapper/method.EnhancerProxy.get_target_creation_allowed.html @@ -165,7 +165,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later Description - [src] + [src] diff --git a/doc/clapper/method.EnhancerProxy.get_target_interfaces.html b/doc/clapper/method.EnhancerProxy.get_target_interfaces.html index dbfe4a82..767a05d6 100644 --- a/doc/clapper/method.EnhancerProxy.get_target_interfaces.html +++ b/doc/clapper/method.EnhancerProxy.get_target_interfaces.html @@ -166,7 +166,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later Description - [src] + [src] diff --git a/doc/clapper/method.EnhancerProxy.get_target_properties.html b/doc/clapper/method.EnhancerProxy.get_target_properties.html index 7615a486..58a9f2ba 100644 --- a/doc/clapper/method.EnhancerProxy.get_target_properties.html +++ b/doc/clapper/method.EnhancerProxy.get_target_properties.html @@ -166,7 +166,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later Description - [src] + [src] diff --git a/doc/clapper/method.EnhancerProxy.get_version.html b/doc/clapper/method.EnhancerProxy.get_version.html index c73a2f14..bddf5325 100644 --- a/doc/clapper/method.EnhancerProxy.get_version.html +++ b/doc/clapper/method.EnhancerProxy.get_version.html @@ -165,7 +165,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later Description - [src] + [src] diff --git a/doc/clapper/method.EnhancerProxy.set_locally.html b/doc/clapper/method.EnhancerProxy.set_locally.html index 4686f083..5f0fe728 100644 --- a/doc/clapper/method.EnhancerProxy.set_locally.html +++ b/doc/clapper/method.EnhancerProxy.set_locally.html @@ -167,7 +167,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later Description - [src] + [src] diff --git a/doc/clapper/method.EnhancerProxy.set_locally_with_table.html b/doc/clapper/method.EnhancerProxy.set_locally_with_table.html index 8197e7e9..c6943774 100644 --- a/doc/clapper/method.EnhancerProxy.set_locally_with_table.html +++ b/doc/clapper/method.EnhancerProxy.set_locally_with_table.html @@ -166,7 +166,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later Description - [src] + [src] diff --git a/doc/clapper/method.EnhancerProxy.set_target_creation_allowed.html b/doc/clapper/method.EnhancerProxy.set_target_creation_allowed.html index 9679aebd..53a7f9cc 100644 --- a/doc/clapper/method.EnhancerProxy.set_target_creation_allowed.html +++ b/doc/clapper/method.EnhancerProxy.set_target_creation_allowed.html @@ -166,7 +166,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later Description - [src] + [src] diff --git a/doc/clapper/method.EnhancerProxy.target_has_interface.html b/doc/clapper/method.EnhancerProxy.target_has_interface.html index 80ffc85a..dc4a6a7b 100644 --- a/doc/clapper/method.EnhancerProxy.target_has_interface.html +++ b/doc/clapper/method.EnhancerProxy.target_has_interface.html @@ -166,7 +166,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later Description - [src] + [src] diff --git a/doc/clapper/property.EnhancerProxy.description.html b/doc/clapper/property.EnhancerProxy.description.html index 4aae18d4..5f4417b1 100644 --- a/doc/clapper/property.EnhancerProxy.description.html +++ b/doc/clapper/property.EnhancerProxy.description.html @@ -138,7 +138,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later Description - [src] + [src] diff --git a/doc/clapper/property.EnhancerProxy.friendly-name.html b/doc/clapper/property.EnhancerProxy.friendly-name.html index 6bd77cb7..25ac4345 100644 --- a/doc/clapper/property.EnhancerProxy.friendly-name.html +++ b/doc/clapper/property.EnhancerProxy.friendly-name.html @@ -138,7 +138,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later Description - [src] + [src] diff --git a/doc/clapper/property.EnhancerProxy.module-dir.html b/doc/clapper/property.EnhancerProxy.module-dir.html index 12f66194..19e2cf65 100644 --- a/doc/clapper/property.EnhancerProxy.module-dir.html +++ b/doc/clapper/property.EnhancerProxy.module-dir.html @@ -138,7 +138,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later Description - [src] + [src] diff --git a/doc/clapper/property.EnhancerProxy.module-name.html b/doc/clapper/property.EnhancerProxy.module-name.html index cb2100ea..88963d0e 100644 --- a/doc/clapper/property.EnhancerProxy.module-name.html +++ b/doc/clapper/property.EnhancerProxy.module-name.html @@ -138,7 +138,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later Description - [src] + [src] diff --git a/doc/clapper/property.EnhancerProxy.target-creation-allowed.html b/doc/clapper/property.EnhancerProxy.target-creation-allowed.html index dc568bba..8b325275 100644 --- a/doc/clapper/property.EnhancerProxy.target-creation-allowed.html +++ b/doc/clapper/property.EnhancerProxy.target-creation-allowed.html @@ -138,7 +138,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later Description - [src] + [src] diff --git a/doc/clapper/property.EnhancerProxy.version.html b/doc/clapper/property.EnhancerProxy.version.html index 1749b299..c4f42634 100644 --- a/doc/clapper/property.EnhancerProxy.version.html +++ b/doc/clapper/property.EnhancerProxy.version.html @@ -138,7 +138,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later Description - [src] + [src]