Audacious  $Id:Doxyfile42802007-03-2104:39:00Znenolod$
Classes | Defines | Functions | Variables
plugin-registry.c File Reference
#include <glib.h>
#include <pthread.h>
#include <stdio.h>
#include <string.h>
#include <libaudcore/audstrings.h>
#include "debug.h"
#include "interface.h"
#include "misc.h"
#include "plugin.h"
#include "plugins.h"
#include "util.h"

Go to the source code of this file.

Classes

struct  TransportPluginData
struct  PlaylistPluginData
struct  InputPluginData
struct  PluginHandle
struct  PluginWatch
struct  PluginForEnabledState
struct  TransportPluginForSchemeState
struct  PlaylistPluginForExtState
struct  InputPluginForKeyState

Defines

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

Functions

static PluginHandleplugin_new (char *path, bool_t confirmed, bool_t loaded, int timestamp, int type, Plugin *header)
static void plugin_free (PluginHandle *plugin)
static FILE * open_registry_file (const char *mode)
static void transport_plugin_save (PluginHandle *plugin, FILE *handle)
static void playlist_plugin_save (PluginHandle *plugin, FILE *handle)
static void input_plugin_save (PluginHandle *plugin, FILE *handle)
static void plugin_save (PluginHandle *plugin, FILE *handle)
void plugin_registry_save (void)
static void parse_next (FILE *handle)
static bool_t parse_integer (const char *key, int *value)
static char * parse_string (const char *key)
static void transport_plugin_parse (PluginHandle *plugin, FILE *handle)
static void playlist_plugin_parse (PluginHandle *plugin, FILE *handle)
static void input_plugin_parse (PluginHandle *plugin, FILE *handle)
static bool_t plugin_parse (FILE *handle)
void plugin_registry_load (void)
static void plugin_prune (PluginHandle *plugin)
int plugin_compare (PluginHandle *a, PluginHandle *b)
void plugin_registry_prune (void)
static int plugin_lookup_cb (PluginHandle *plugin, const char *path)
PluginHandleplugin_lookup (const char *path)
static int plugin_lookup_basename_cb (PluginHandle *plugin, const char *basename)
PluginHandleplugin_lookup_basename (const char *basename)
void plugin_register (const char *path)
void plugin_register_loaded (const char *path, Plugin *header)
int plugin_get_type (PluginHandle *plugin)
const char * plugin_get_filename (PluginHandle *plugin)
const void * plugin_get_header (PluginHandle *plugin)
static int plugin_by_header_cb (PluginHandle *plugin, const void *header)
PluginHandleplugin_by_header (const void *header)
void plugin_for_each (int type, PluginForEachFunc func, void *data)
const char * plugin_get_name (PluginHandle *plugin)
bool_t plugin_has_about (PluginHandle *plugin)
bool_t plugin_has_configure (PluginHandle *plugin)
bool_t plugin_get_enabled (PluginHandle *plugin)
static void plugin_call_watches (PluginHandle *plugin)
void plugin_set_enabled (PluginHandle *plugin, bool_t enabled)
static bool_t plugin_for_enabled_cb (PluginHandle *plugin, PluginForEnabledState *state)
void plugin_for_enabled (int type, PluginForEachFunc func, void *data)
void plugin_add_watch (PluginHandle *plugin, PluginForEachFunc func, void *data)
void plugin_remove_watch (PluginHandle *plugin, PluginForEachFunc func, void *data)
static bool_t transport_plugin_for_scheme_cb (PluginHandle *plugin, TransportPluginForSchemeState *state)
PluginHandletransport_plugin_for_scheme (const char *scheme)
static bool_t playlist_plugin_for_ext_cb (PluginHandle *plugin, PlaylistPluginForExtState *state)
PluginHandleplaylist_plugin_for_extension (const char *extension)
static bool_t input_plugin_for_key_cb (PluginHandle *plugin, InputPluginForKeyState *state)
void input_plugin_for_key (int key, const char *value, PluginForEachFunc func, void *data)
bool_t input_plugin_has_images (PluginHandle *plugin)
bool_t input_plugin_has_subtunes (PluginHandle *plugin)
bool_t input_plugin_can_write_tuple (PluginHandle *plugin)
bool_t input_plugin_has_infowin (PluginHandle *plugin)

Variables

static const char * plugin_type_names []
static const char * input_key_names []
static GList * plugin_list = NULL
static bool_t registry_locked = TRUE
static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER
static char parse_key [512]
static char * parse_value

Define Documentation

#define FILENAME   "plugin-registry"

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

Referenced by open_registry_file().

#define FORMAT   6

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

Referenced by plugin_registry_load(), and plugin_registry_save().


Function Documentation

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

Referenced by file_can_write_tuple().

void input_plugin_for_key ( int  key,
const char *  value,
PluginForEachFunc  func,
void *  data 
)

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

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

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

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

Referenced by input_plugin_for_key().

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

Referenced by file_read_image().

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

Referenced by custom_infowin().

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

Referenced by add_file().

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

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

Referenced by plugin_parse().

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

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

Referenced by plugin_save().

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

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

Referenced by plugin_registry_load(), and plugin_registry_save().

static bool_t parse_integer ( const char *  key,
int value 
) [static]

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

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

static void parse_next ( FILE *  handle) [static]
static char* parse_string ( const char *  key) [static]
static bool_t playlist_plugin_for_ext_cb ( PluginHandle plugin,
PlaylistPluginForExtState state 
) [static]

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

Referenced by playlist_plugin_for_extension().

PluginHandle* playlist_plugin_for_extension ( const char *  extension)

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

Referenced by filename_is_playlist(), and get_plugin().

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

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

Referenced by plugin_parse().

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

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

Referenced by plugin_save().

void plugin_add_watch ( PluginHandle plugin,
PluginForEachFunc  func,
void *  data 
)

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

Referenced by button_update(), and fill_cb().

PluginHandle* plugin_by_header ( const void *  header)

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

Referenced by output_plugin_get_current().

static int plugin_by_header_cb ( PluginHandle plugin,
const void *  header 
) [static]

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

Referenced by plugin_by_header().

static void plugin_call_watches ( PluginHandle plugin) [static]

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

Referenced by plugin_set_enabled().

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

Referenced by effect_compare(), and plugin_registry_prune().

void plugin_for_each ( int  type,
PluginForEachFunc  func,
void *  data 
)
void plugin_for_enabled ( int  type,
PluginForEachFunc  func,
void *  data 
)
static bool_t plugin_for_enabled_cb ( PluginHandle plugin,
PluginForEnabledState state 
) [static]

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

Referenced by plugin_for_enabled().

static void plugin_free ( PluginHandle plugin) [static]

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

Referenced by plugin_prune(), and plugin_registry_save().

const char* plugin_get_filename ( PluginHandle plugin)

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

Referenced by fill_cb().

const void* plugin_get_header ( PluginHandle plugin)
const char* plugin_get_name ( PluginHandle plugin)

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

Referenced by plugin_enable().

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

Referenced by about_watcher(), and output_combo_update().

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

Referenced by config_watcher(), and output_combo_update().

PluginHandle* plugin_lookup ( const char *  path)

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

Referenced by plugin_register(), and plugin_register_loaded().

PluginHandle* plugin_lookup_basename ( const char *  basename)

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

static int plugin_lookup_basename_cb ( PluginHandle plugin,
const char *  basename 
) [static]

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

Referenced by plugin_lookup_basename().

static int plugin_lookup_cb ( PluginHandle plugin,
const char *  path 
) [static]

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

Referenced by plugin_lookup().

static PluginHandle* plugin_new ( char *  path,
bool_t  confirmed,
bool_t  loaded,
int  timestamp,
int  type,
Plugin *  header 
) [static]

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

Referenced by plugin_parse(), and plugin_register_loaded().

static bool_t plugin_parse ( FILE *  handle) [static]

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

Referenced by plugin_registry_load().

static void plugin_prune ( PluginHandle plugin) [static]

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

Referenced by plugin_registry_prune().

void plugin_register ( const char *  path)

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

Referenced by scan_plugin_func().

void plugin_register_loaded ( const char *  path,
Plugin *  header 
)

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

Referenced by plugin2_process().

void plugin_registry_load ( void  )

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

Referenced by plugin_system_init().

void plugin_registry_prune ( void  )

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

Referenced by plugin_system_init().

void plugin_registry_save ( void  )

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

Referenced by plugin_system_cleanup().

void plugin_remove_watch ( PluginHandle plugin,
PluginForEachFunc  func,
void *  data 
)

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

Referenced by button_destroy(), button_update(), and list_destroy().

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

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

Referenced by plugin_registry_save().

void plugin_set_enabled ( PluginHandle plugin,
bool_t  enabled 
)

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

Referenced by enable_multi(), enable_single(), start_multi_cb(), and start_single().

PluginHandle* transport_plugin_for_scheme ( const char *  scheme)

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

Referenced by lookup_transport().

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

Referenced by transport_plugin_for_scheme().

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

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

Referenced by plugin_parse().

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

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

Referenced by plugin_save().


Variable Documentation

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

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

Referenced by input_plugin_parse(), and input_plugin_save().

pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER [static]

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

Referenced by plugin_get_header().

char parse_key[512] [static]

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

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

char* parse_value [static]

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

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

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

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

Referenced by plugin_parse(), and plugin_save().