Plug-ins
Plugins are written in Python, and are registered to the appropriate hooks. Each plugin has its own version identifier, but also lists the plugin API versions that it supports. When loading a plugin, Picard first compares its list of API versions to the plugin’s supported versions to ensure that the plugin will operate correctly. The Picard API versions indicate the version of the program in which the plugin API was last updated and any plugin APIs with which it is backwards compatible.
Hooks zijn verbindingen met verschillende objecten in Picard die een specifiek soort plug-in kunnen aanroepen. Als Picard tijdens het werk een hook tegenkomt, haalt hij eerst een lijst met alle plug-ins die voor die hook zijn geregistreerd op en voert ze vervolgens uit op volgorde van de prioriteit die is ingesteld toen de plug-in voor de hook werd geregistreerd.
Er zijn verschillende soorten plug-ins, waaronder:
Metadataverwerkers: Wanneer metadata in Picard worden geladen, kunnen deze plug-ins die metadata gebruiken en bewerken. Ze worden geregistreerd met register_album_metadata_processor() of register_track_metadata_processor(). Deze plug-ins zijn ‘automatisch’, want ze werken zonder tussenkomst van de gebruiker. Een voorbeeld is de plug-in ‘Classical Extras’.
Bronnen voor afbeeldingen: Deze plug-ins voegen een bron van hoesafbeeldingen toe en worden geregistreerd met register_cover_art_provider(). Deze plug-ins zijn ook ‘automatisch’, want ze laden de afbeeldingen zonder tussenkomst van de gebruiker. Wel moeten ze door de gebruiker worden ingeschakeld in de opties voor hoesafbeeldingen. De plug-in ‘Fanart-tv’ is een voorbeeld.
Scriptfunctie: Sommige plug-ins bieden extra scripfuncties die je kan gebruiken in of het script voor bestandsnamen. Deze plug-ins worden geregistreerd met register_script_function(). ‘Keep Tag’, die de functie $keep() toevoegt, is hier een voorbeeld van.
Contextmenuhandelingen: Plug-ins kunnen handelingen registreren die via het contextmenu kunnen worden geactiveerd. Dit doet de plug-in ‘Load as non-album track’ bijvoorbeeld. Een ander voorbeeld is ‘Generate cuesheet’. Deze plug-ins worden geregistreerd met register_album_action(), register_track_action(), register_file_action(), register_cluster_action() of register_clusterlist_action().
Bestandsindelingen: Plug-ins kunnen ook ondersteuning toevoegen voor nieuwe bestandsindelingen die Picard nog niet ondersteunt. Deze plug-ins worden geregistreerd met register_format().
Gebeurtenisverwerkers: Plug-ins kunnen automatisch worden uitgevoerd zodra er een bepaalde gebeurtenis plaatsvindt. Deze plug-ins worden geregistreerd met file_post_load_processor(), file_post_save_processor(), file_post_addition_to_track_processor(), file_post_removal_from_track_processor() of album_post_removal_processor().
Plug-ins zijn niet beperkt tot één van deze soorten. Een plug-in kan al deze mogelijkheden hebben, maar de meeste plug-ins zijn op één functie gericht.
Zie ook
For more information regarding the plugin system, please see the Picard Plugin V3 Documentation items in the Picard repository on GitHub. There is also a list of the available plugins that have been submitted to the MusicBrainz Picard repository shown on the Picard website.