Fonctions communes aux greffons

Tous les greffons héritent d'un dérivé de PluginClient. Ce dérivé de PluginClient implémente la plupart des méthodes requises dans PluginClient, mais les utilisateurs doivent quand même définir des méthodes pour PluginClient. les méthodes les plus couramment utilisées sont prédéfinies sous forme de macros pour simplifier la saisie tout en conservant le maximum de flexibilité.

Les fichiers qu'ils incluent dépendent du type de greffon. Les greffons audio incluent pluginaclient.h et les greffons vidéo incluent pluginvclient.h. Ils héritent respectivement de PluginAClient et PluginVClient.

Cinelerra crée au moins deux instances de tous les greffons lorsqu'ils sont utilisés sur un film. Une instance est réservée à l'interface utilisateur graphique. L'autre instance est réservée au traitement du signal. L'entrée utilisateur, à travers une séquence compliquée, est propagée depuis l'instance de l'interface graphique à l'instance de traitement du signal. Si le traitement du signal à besoin de modifier l'interface graphique, il propage les données en retour vers l'instance de l'interface. Il y a des fonctions utilitaires pour effectuer tout ça.

Les greffons définissent au moins trois objets :

  • L'objet traitement - il contient des pointeurs vers tous les autres objets et exécute le traitement du signal. Cet objet comporte un certain nombre de requêtes pour s'identifier lui-même et c'est l'objet qu'il faut enregistrer pour enregistrer le greffon.
  • L'objet interface utilisateur - il est défini selon ce que désire le programmeur. Il peut soit utiliser la boîte à outils de Cinelerra, soit une autre boîte à outils (toolkit). Il affiche les données sur l'écran et récupère les paramètres en provenance de l'utilisateur. Lorsqu'il utilise la boîte à outils de Cinelerra, le seul objet de l'interface utilisateur dont le programmeur doit se soucier est la Fenêtre. La fenêtre comporte des pointeurs vers un certain nombre d'éléments graphiques (widgets), quelques méthodes d'initialisation et un pointeur arrière vers l'objet de traitement du greffon. Cette documentation traite de l'utilisation de la boîte à outils de Cinelerra. Selon la boîte à outils utilisée pour l'interface utilisateur, un processus léger (thread) peut être créé pour faire tourner l'interface utilisateur de manière complètement asynchrone. La synchronisation de l'interface utilisateur avec les modifications de configuration du greffon est un des aspects les plus compliqués du greffon, le processus et l'objet de l'interface utilisateur sont largement gérés par des macros si vous utilisez la boîte à outils de Cinelerra.
  • L'objet de configuration - il enregistre les paramètres de l'utilisateur et a toujours besoin de fonctions d'interpolation, de copie et de comparaison. Les macros pour le greffon client appellent automatiquement des méthodes pour interpoler les images clés.