Classes | Defines | Functions | Variables

plugin-registry.c File Reference

#include <glib.h>
#include <limits.h>
#include <stdio.h>
#include <string.h>
#include <libaudcore/audstrings.h>
#include "debug.h"
#include "interface.h"
#include "main.h"
#include "misc.h"
#include "plugin.h"
#include "pluginenum.h"
#include "plugins.h"
#include "util.h"

Go to the source code of this file.

Classes

struct  ModuleData
struct  InputPluginData
struct  PluginHandle
struct  PluginLookupState
struct  PluginForEnabledState
struct  InputPluginForKeyState

Defines

#define FILENAME   "plugin-registry"
#define FORMAT   2

Functions

static ModuleDatamodule_new (gchar *path, gboolean confirmed, gint timestamp, gboolean loaded)
static PluginHandleplugin_new (ModuleData *module, gint type, gint number, gboolean confirmed, void *header)
static void plugin_free (PluginHandle *plugin, ModuleData *module)
static void module_free (ModuleData *module)
static FILE * open_registry_file (const gchar *mode)
static void input_plugin_save (PluginHandle *plugin, FILE *handle)
static void plugin_save (PluginHandle *plugin, FILE *handle)
static gint plugin_not_handled_cb (PluginHandle *plugin)
static void module_save (ModuleData *module, FILE *handle)
void plugin_registry_save (void)
static void parse_next (FILE *handle)
static gboolean parse_integer (const gchar *key, gint *value)
static gchar * parse_string (const gchar *key)
static void input_plugin_parse (PluginHandle *plugin, FILE *handle)
static gboolean plugin_parse (ModuleData *module, FILE *handle)
static gboolean module_parse (FILE *handle)
void plugin_registry_load (void)
static void plugin_prune (PluginHandle *plugin, ModuleData *module)
static void module_prune (ModuleData *module)
gint plugin_compare (PluginHandle *a, PluginHandle *b)
void plugin_registry_prune (void)
static gint module_lookup_cb (ModuleData *module, const gchar *path)
static ModuleDatamodule_lookup (const gchar *path)
void module_register (const gchar *path)
static gint plugin_lookup_cb (PluginHandle *plugin, PluginLookupState *state)
static PluginHandleplugin_lookup (ModuleData *module, gint type, gint number)
void plugin_register (const gchar *path, gint type, gint number, void *header)
void plugin_get_path (PluginHandle *plugin, const gchar **path, gint *type, gint *number)
PluginHandleplugin_by_path (const gchar *path, gint type, gint number)
void * plugin_get_header (PluginHandle *plugin)
static gint plugin_by_header_cb (PluginHandle *plugin, void *header)
PluginHandleplugin_by_header (void *header)
void plugin_for_each (gint type, PluginForEachFunc func, void *data)
const gchar * plugin_get_name (PluginHandle *plugin)
gboolean plugin_has_about (PluginHandle *plugin)
gboolean plugin_has_configure (PluginHandle *plugin)
gboolean plugin_get_enabled (PluginHandle *plugin)
void plugin_set_enabled (PluginHandle *plugin, gboolean enabled)
static gboolean plugin_for_enabled_cb (PluginHandle *plugin, PluginForEnabledState *state)
void plugin_for_enabled (gint type, PluginForEachFunc func, void *data)
static gboolean input_plugin_for_key_cb (PluginHandle *plugin, InputPluginForKeyState *state)
void input_plugin_for_key (gint key, const gchar *value, PluginForEachFunc func, void *data)
static void input_plugin_add_key (InputPlugin *header, gint key, const gchar *value)
void uri_set_plugin (const gchar *scheme, InputPlugin *header)
void mime_set_plugin (const gchar *mime, InputPlugin *header)

Variables

static const gchar * plugin_type_names []
static const gchar * input_key_names []
static GList * module_list = NULL
static GList * plugin_list = NULL
static gboolean registry_locked = TRUE
static gchar parse_key [512]
static gchar * parse_value

Define Documentation

#define FILENAME   "plugin-registry"

Definition at line 38 of file plugin-registry.c.

Referenced by open_registry_file().

#define FORMAT   2

Definition at line 39 of file plugin-registry.c.

Referenced by plugin_registry_load(), and plugin_registry_save().


Function Documentation

static void input_plugin_add_key ( InputPlugin *  header,
gint  key,
const gchar *  value 
) [static]

Definition at line 669 of file plugin-registry.c.

Referenced by mime_set_plugin(), and uri_set_plugin().

void input_plugin_for_key ( gint  key,
const gchar *  value,
PluginForEachFunc  func,
void *  data 
)

Definition at line 661 of file plugin-registry.c.

Referenced by probe_by_extension(), probe_by_mime(), and probe_by_scheme().

static gboolean input_plugin_for_key_cb ( PluginHandle plugin,
InputPluginForKeyState state 
) [static]

Definition at line 651 of file plugin-registry.c.

Referenced by input_plugin_for_key().

static void input_plugin_parse ( PluginHandle plugin,
FILE *  handle 
) [static]

Definition at line 255 of file plugin-registry.c.

Referenced by plugin_parse().

static void input_plugin_save ( PluginHandle plugin,
FILE *  handle 
) [static]

Definition at line 164 of file plugin-registry.c.

Referenced by plugin_save().

void mime_set_plugin ( const gchar *  mime,
InputPlugin *  header 
)

Definition at line 683 of file plugin-registry.c.

static void module_free ( ModuleData module  )  [static]

Definition at line 147 of file plugin-registry.c.

Referenced by module_prune(), and plugin_registry_save().

static ModuleData* module_lookup ( const gchar *  path  )  [static]

Definition at line 409 of file plugin-registry.c.

Referenced by module_register(), plugin_by_path(), and plugin_register().

static gint module_lookup_cb ( ModuleData module,
const gchar *  path 
) [static]

Definition at line 404 of file plugin-registry.c.

Referenced by module_lookup().

static ModuleData* module_new ( gchar *  path,
gboolean  confirmed,
gint  timestamp,
gboolean  loaded 
) [static]

Definition at line 83 of file plugin-registry.c.

Referenced by module_parse(), and module_register().

static gboolean module_parse ( FILE *  handle  )  [static]

Definition at line 302 of file plugin-registry.c.

Referenced by plugin_registry_load().

static void module_prune ( ModuleData module  )  [static]

Definition at line 359 of file plugin-registry.c.

Referenced by plugin_registry_prune().

void module_register ( const gchar *  path  ) 

Definition at line 416 of file plugin-registry.c.

Referenced by scan_plugin_func().

static void module_save ( ModuleData module,
FILE *  handle 
) [static]

Definition at line 195 of file plugin-registry.c.

Referenced by plugin_registry_save().

static FILE* open_registry_file ( const gchar *  mode  )  [static]

Definition at line 157 of file plugin-registry.c.

Referenced by plugin_registry_load(), and plugin_registry_save().

static gboolean parse_integer ( const gchar *  key,
gint value 
) [static]

Definition at line 243 of file plugin-registry.c.

Referenced by module_parse(), plugin_parse(), and plugin_registry_load().

static void parse_next ( FILE *  handle  )  [static]
static gchar* parse_string ( const gchar *  key  )  [static]

Definition at line 249 of file plugin-registry.c.

Referenced by input_plugin_parse(), module_parse(), and plugin_parse().

PluginHandle* plugin_by_header ( void *  header  ) 
static gint plugin_by_header_cb ( PluginHandle plugin,
void *  header 
) [static]

Definition at line 577 of file plugin-registry.c.

Referenced by plugin_by_header().

PluginHandle* plugin_by_path ( const gchar *  path,
gint  type,
gint  number 
)

Definition at line 557 of file plugin-registry.c.

gint plugin_compare ( PluginHandle a,
PluginHandle b 
)

Definition at line 372 of file plugin-registry.c.

Referenced by effect_compare(), and plugin_registry_prune().

void plugin_for_each ( gint  type,
PluginForEachFunc  func,
void *  data 
)
void plugin_for_enabled ( gint  type,
PluginForEachFunc  func,
void *  data 
)

Definition at line 638 of file plugin-registry.c.

static gboolean plugin_for_enabled_cb ( PluginHandle plugin,
PluginForEnabledState state 
) [static]

Definition at line 630 of file plugin-registry.c.

Referenced by plugin_for_enabled().

static void plugin_free ( PluginHandle plugin,
ModuleData module 
) [static]

Definition at line 129 of file plugin-registry.c.

Referenced by module_free(), and plugin_prune().

gboolean plugin_get_enabled ( PluginHandle plugin  ) 

Definition at line 615 of file plugin-registry.c.

Referenced by interface_get_default(), and on_plugin_view_realize().

void* plugin_get_header ( PluginHandle plugin  ) 
const gchar* plugin_get_name ( PluginHandle plugin  ) 
void plugin_get_path ( PluginHandle plugin,
const gchar **  path,
gint type,
gint number 
)

Definition at line 549 of file plugin-registry.c.

Referenced by interface_set_default(), and save_output_path().

gboolean plugin_has_about ( PluginHandle plugin  ) 

Definition at line 605 of file plugin-registry.c.

gboolean plugin_has_configure ( PluginHandle plugin  ) 

Definition at line 610 of file plugin-registry.c.

static PluginHandle* plugin_lookup ( ModuleData module,
gint  type,
gint  number 
) [static]

Definition at line 453 of file plugin-registry.c.

Referenced by plugin_by_path(), and plugin_register().

static gint plugin_lookup_cb ( PluginHandle plugin,
PluginLookupState state 
) [static]

Definition at line 447 of file plugin-registry.c.

Referenced by plugin_lookup().

static PluginHandle* plugin_new ( ModuleData module,
gint  type,
gint  number,
gboolean  confirmed,
void *  header 
) [static]

Definition at line 99 of file plugin-registry.c.

Referenced by plugin_parse(), and plugin_register().

static gint plugin_not_handled_cb ( PluginHandle plugin  )  [static]

Definition at line 190 of file plugin-registry.c.

Referenced by module_save().

static gboolean plugin_parse ( ModuleData module,
FILE *  handle 
) [static]

Definition at line 269 of file plugin-registry.c.

Referenced by module_parse().

static void plugin_prune ( PluginHandle plugin,
ModuleData module 
) [static]

Definition at line 349 of file plugin-registry.c.

Referenced by module_prune().

void plugin_register ( const gchar *  path,
gint  type,
gint  number,
void *  header 
)

Definition at line 461 of file plugin-registry.c.

Referenced by plugin2_process().

void plugin_registry_load ( void   ) 

Definition at line 326 of file plugin-registry.c.

Referenced by plugin_system_init().

void plugin_registry_prune ( void   ) 

Definition at line 397 of file plugin-registry.c.

Referenced by plugin_system_init().

void plugin_registry_save ( void   ) 

Definition at line 207 of file plugin-registry.c.

Referenced by plugin_system_cleanup().

static void plugin_save ( PluginHandle plugin,
FILE *  handle 
) [static]

Definition at line 175 of file plugin-registry.c.

Referenced by module_save().

void plugin_set_enabled ( PluginHandle plugin,
gboolean  enabled 
)
void uri_set_plugin ( const gchar *  scheme,
InputPlugin *  header 
)

Definition at line 678 of file plugin-registry.c.


Variable Documentation

const gchar* input_key_names[] [static]
Initial value:
 {
 [INPUT_KEY_SCHEME] = "scheme",
 [INPUT_KEY_EXTENSION] = "ext",
 [INPUT_KEY_MIME] = "mime"}

Definition at line 75 of file plugin-registry.c.

Referenced by input_plugin_parse(), and input_plugin_save().

GList* module_list = NULL [static]
gchar parse_key[512] [static]

Definition at line 221 of file plugin-registry.c.

Referenced by parse_integer(), parse_next(), and parse_string().

gchar* parse_value [static]

Definition at line 222 of file plugin-registry.c.

Referenced by parse_integer(), parse_next(), and parse_string().

GList* plugin_list = NULL [static]
const gchar* plugin_type_names[] [static]
Initial value:
 {
 [PLUGIN_TYPE_BASIC] = NULL,
 [PLUGIN_TYPE_INPUT] = "input",
 [PLUGIN_TYPE_OUTPUT] = "output",
 [PLUGIN_TYPE_EFFECT] = "effect",
 [PLUGIN_TYPE_VIS] = "vis",
 [PLUGIN_TYPE_IFACE] = "iface",
 [PLUGIN_TYPE_GENERAL] = "general"}

Definition at line 67 of file plugin-registry.c.

Referenced by plugin_not_handled_cb(), plugin_parse(), and plugin_save().

gboolean registry_locked = TRUE [static]