Changes between Version 5 and Version 6 of libroar/plugins


Ignore:
Timestamp:
03/20/12 14:37:18 (12 years ago)
Author:
ph3-der-loewe
Comment:

makeup fix

Legend:

Unmodified
Added
Removed
Modified
  • libroar/plugins

    v5 v6  
    11[[TOC]] 
    22 
    3 = Introduction = 
     3== Introduction == 
    44libroar contains a plugin loader API. It can be used by any application to load plugins. It is not specific to audio or any of the RoarAudio software packages. It is designed universally and handles tasks common to all plugin interfaces such as loading of needed files, handling meta data (such as plugin name, author and description) as well as passing data between the plugin and the host application. 
    55 
    66The plugin loader is build on top of the dynamic loader abstraction and can be used at different levels of abstraction. 
    77 
    8 = Main layers = 
     8== Main layers )== 
    99The plugin API consists of 3 main layers: the Dynamic Loader, the Llugin Loader and the Plugin Container. 
    1010 
    11 == The Dynamic Loader == 
     11=== The Dynamic Loader === 
    1212The Dynamic Loader is a abstraction of the system's dynamic loader. It is abled to load all shared libraries and shared library formats as used by the system. It is designed similar to the POSIX dlopen() and friends. 
    1313 
    14 == The Plugin Loader == 
     14=== The Plugin Loader === 
    1515The Plugin Loader is build directly into the Dynamic Loader and can be activated by a single boolean setting (ra_init). If enabled it will try to find a plugin entry symbol and start loading the plugin. This includes setting up an new context for the plugin with global data and error states as well as registering all the services the plugin provides. This also checks if the plugin is actually be written for the host application so it can not crash later because of mismatching ABIs. 
    1616 
    17 == The Plugin Container == 
     17=== The Plugin Container === 
    1818The Plugin Container is a separate module. It can store multiple plugins at the same time and makes it easy for an application to handle them. A application using the container does not need to keep a list of plugins or send events to them individually but just pass the stuff to the container. 
    1919 
    20 = Common Services = 
     20== Common Services == 
    2121The plugin API provides some common services as found in a lot application specific plugin interfaces. 
    2222 
    23 == AppSched == 
     23=== AppSched === 
    2424The AppSched is a way to allow the plugin to run event independed code. For example if the plugin copies data from one to another location AppSched is used to do that job. It is normally used to implement a main loop like structure. 
    2525 
     
    3535Every AppSched using application (every should in fact!) will send INIT, FREE and UPDATE. The usage of TICK and WAIT is optional by the application. 
    3636 
    37 == Context separation == 
     37=== Context separation === 
    3838The Plugin API supports context separation. This means that the plugin runs in it's own context and will not see the context of the host application or of other plugins. This also allows the same plugin to be loaded multiple times without them interacting. 
    3939 
     
    4444* global notify core 
    4545 
    46 = List of Subtopics = 
     46== List of Subtopics == 
    4747 
    4848[[TitleIndex(libroar/plugins/)]]