Audacious  $Id:Doxyfile42802007-03-2104:39:00Znenolod$
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 "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 (gchar *path, gboolean confirmed, gboolean loaded, gint timestamp, gint type, Plugin *header)
static void plugin_free (PluginHandle *plugin)
static FILE * open_registry_file (const gchar *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 gboolean parse_integer (const gchar *key, gint *value)
static gchar * parse_string (const gchar *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 gboolean plugin_parse (FILE *handle)
void plugin_registry_load (void)
static void plugin_prune (PluginHandle *plugin)
gint plugin_compare (PluginHandle *a, PluginHandle *b)
void plugin_registry_prune (void)
static gint plugin_lookup_cb (PluginHandle *plugin, const gchar *path)
PluginHandleplugin_lookup (const gchar *path)
void plugin_register (const gchar *path)
void plugin_register_loaded (const gchar *path, Plugin *header)
gint plugin_get_type (PluginHandle *plugin)
const gchar * plugin_get_filename (PluginHandle *plugin)
const void * plugin_get_header (PluginHandle *plugin)
static gint plugin_by_header_cb (PluginHandle *plugin, const void *header)
PluginHandleplugin_by_header (const 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)
static void plugin_call_watches (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)
void plugin_add_watch (PluginHandle *plugin, PluginForEachFunc func, void *data)
void plugin_remove_watch (PluginHandle *plugin, PluginForEachFunc func, void *data)
static gboolean transport_plugin_for_scheme_cb (PluginHandle *plugin, TransportPluginForSchemeState *state)
PluginHandletransport_plugin_for_scheme (const gchar *scheme)
static gboolean playlist_plugin_for_ext_cb (PluginHandle *plugin, PlaylistPluginForExtState *state)
PluginHandleplaylist_plugin_for_extension (const gchar *extension)
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)
gboolean input_plugin_has_images (PluginHandle *plugin)
gboolean input_plugin_has_subtunes (PluginHandle *plugin)
gboolean input_plugin_can_write_tuple (PluginHandle *plugin)
gboolean input_plugin_has_infowin (PluginHandle *plugin)

Variables

static const gchar * plugin_type_names []
static const gchar * input_key_names []
static GList * plugin_list = NULL
static gboolean registry_locked = TRUE
static GStaticMutex mutex = G_STATIC_MUTEX_INIT
static gchar parse_key [512]
static gchar * 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_save(), and plugin_registry_load().


Function Documentation

gboolean input_plugin_can_write_tuple ( PluginHandle plugin)

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

Referenced by file_can_write_tuple().

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

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

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

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

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

Referenced by input_plugin_for_key().

gboolean input_plugin_has_images ( PluginHandle plugin)

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

Referenced by file_read_image().

gboolean input_plugin_has_infowin ( PluginHandle plugin)

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

Referenced by custom_infowin().

gboolean input_plugin_has_subtunes ( PluginHandle plugin)

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

Referenced by add_file().

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

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

Referenced by plugin_parse().

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

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

Referenced by plugin_save().

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

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

Referenced by plugin_registry_save(), and plugin_registry_load().

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

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

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

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

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

Referenced by playlist_plugin_for_extension().

PluginHandle* playlist_plugin_for_extension ( const gchar *  extension)

Definition at line 738 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 283 of file plugin-registry.c.

Referenced by plugin_parse().

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

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

Referenced by plugin_save().

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

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

Referenced by fill_cb(), and button_update().

PluginHandle* plugin_by_header ( const void *  header)

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

Referenced by output_plugin_get_current().

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

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

Referenced by plugin_by_header().

static void plugin_call_watches ( PluginHandle plugin) [static]

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

Referenced by plugin_set_enabled().

gint plugin_compare ( PluginHandle a,
PluginHandle b 
)

Definition at line 396 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 665 of file plugin-registry.c.

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

Definition at line 657 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_registry_save(), and plugin_prune().

gboolean plugin_get_enabled ( PluginHandle plugin)
const gchar* plugin_get_filename ( PluginHandle plugin)

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

Referenced by fill_cb().

const void* plugin_get_header ( PluginHandle plugin)
const gchar* plugin_get_name ( PluginHandle plugin)
gint plugin_get_type ( PluginHandle plugin)

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

Referenced by plugin_enable().

gboolean plugin_has_about ( PluginHandle plugin)

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

Referenced by about_watcher(), and output_combo_update().

gboolean plugin_has_configure ( PluginHandle plugin)

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

Referenced by config_watcher(), and output_combo_update().

PluginHandle* plugin_lookup ( const gchar *  path)

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

Referenced by plugin_register(), and plugin_register_loaded().

static gint plugin_lookup_cb ( PluginHandle plugin,
const gchar *  path 
) [static]

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

Referenced by plugin_lookup().

static PluginHandle* plugin_new ( gchar *  path,
gboolean  confirmed,
gboolean  loaded,
gint  timestamp,
gint  type,
Plugin *  header 
) [static]

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

Referenced by plugin_parse(), and plugin_register_loaded().

static gboolean plugin_parse ( FILE *  handle) [static]

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

Referenced by plugin_registry_load().

static void plugin_prune ( PluginHandle plugin) [static]

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

Referenced by plugin_registry_prune().

void plugin_register ( const gchar *  path)

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

Referenced by scan_plugin_func().

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

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

Referenced by plugin2_process().

void plugin_registry_load ( void  )

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

Referenced by plugin_system_init().

void plugin_registry_prune ( void  )

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

Referenced by plugin_system_init().

void plugin_registry_save ( void  )

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

Referenced by plugin_system_cleanup().

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

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

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

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

Referenced by plugin_registry_save().

void plugin_set_enabled ( PluginHandle plugin,
gboolean  enabled 
)

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

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

PluginHandle* transport_plugin_for_scheme ( const gchar *  scheme)

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

Referenced by lookup_transport().

static gboolean transport_plugin_for_scheme_cb ( PluginHandle plugin,
TransportPluginForSchemeState state 
) [static]

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

Referenced by transport_plugin_for_scheme().

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

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

Referenced by plugin_parse().

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

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

Referenced by plugin_save().


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 91 of file plugin-registry.c.

Referenced by input_plugin_save(), and input_plugin_parse().

GStaticMutex mutex = G_STATIC_MUTEX_INIT [static]

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

Referenced by plugin_get_header().

gchar parse_key[512] [static]

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

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

gchar* parse_value [static]

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

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

GList* plugin_list = NULL [static]
const gchar* 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_save(), and plugin_parse().

gboolean registry_locked = TRUE [static]