Audacious  $Id:Doxyfile42802007-03-2104:39:00Znenolod$
Classes | Macros | 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 "i18n.h"
#include "interface.h"
#include "misc.h"
#include "plugin.h"
#include "plugins.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

Macros

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

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)
static void plugin_get_info (PluginHandle *plugin, bool_t new)
void plugin_register (const char *path, int timestamp)
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)
void * plugin_get_misc_data (PluginHandle *plugin, int size)
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

Macro Definition Documentation

#define FILENAME   "plugin-registry"

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

Referenced by open_registry_file().

#define FORMAT   8

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

Referenced by plugin_registry_load(), and plugin_registry_save().


Function Documentation

bool_t input_plugin_can_write_tuple ( PluginHandle plugin)

Definition at line 816 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 796 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 786 of file plugin-registry.c.

Referenced by input_plugin_for_key().

bool_t input_plugin_has_images ( PluginHandle plugin)

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

Referenced by file_read_image().

bool_t input_plugin_has_infowin ( PluginHandle plugin)

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

Referenced by custom_infowin().

bool_t input_plugin_has_subtunes ( PluginHandle plugin)

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

Referenced by add_file().

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

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

Referenced by plugin_parse().

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

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

Referenced by plugin_save().

static FILE* open_registry_file ( const char *  mode)
static

Definition at line 166 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 259 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 760 of file plugin-registry.c.

Referenced by playlist_plugin_for_extension().

PluginHandle* playlist_plugin_for_extension ( const char *  extension)

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

Referenced by get_plugin_silent().

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

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

Referenced by plugin_parse().

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

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

Referenced by plugin_save().

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

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

Referenced by button_update(), and fill_cb().

PluginHandle* plugin_by_header ( const void *  header)

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

Referenced by plugin_by_header().

static void plugin_call_watches ( PluginHandle plugin)
static

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

Referenced by plugin_set_enabled().

int 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 ( 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 682 of file plugin-registry.c.

Referenced by plugin_for_enabled().

static void plugin_free ( PluginHandle plugin)
static

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

Referenced by plugin_prune(), and plugin_registry_save().

bool_t plugin_get_enabled ( PluginHandle plugin)
const char* plugin_get_filename ( PluginHandle plugin)

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

Referenced by fill_cb().

const void* plugin_get_header ( PluginHandle plugin)
static void plugin_get_info ( PluginHandle plugin,
bool_t  new 
)
static

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

Referenced by plugin_register().

void* plugin_get_misc_data ( PluginHandle plugin,
int  size 
)
const char* plugin_get_name ( PluginHandle plugin)
int plugin_get_type ( PluginHandle plugin)

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

Referenced by plugin_enable().

bool_t plugin_has_about ( PluginHandle plugin)

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

Referenced by about_watcher(), and output_combo_update().

bool_t plugin_has_configure ( PluginHandle plugin)

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

Referenced by config_watcher(), and output_combo_update().

PluginHandle* plugin_lookup ( const char *  path)

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

Referenced by plugin_register().

PluginHandle* plugin_lookup_basename ( const char *  basename)

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

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

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

Referenced by plugin_lookup_basename().

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

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

Referenced by plugin_parse(), and plugin_register().

static bool_t plugin_parse ( FILE *  handle)
static

Definition at line 314 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 char *  path,
int  timestamp 
)

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

Referenced by scan_plugin_func().

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

Referenced by plugin_system_cleanup().

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

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

Referenced by plugin_registry_save().

void plugin_set_enabled ( PluginHandle plugin,
bool_t  enabled 
)

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

Referenced by lookup_transport().

static bool_t transport_plugin_for_scheme_cb ( PluginHandle plugin,
TransportPluginForSchemeState state 
)
static

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

Referenced by transport_plugin_for_scheme().

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

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

Referenced by plugin_parse().

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

Definition at line 174 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 90 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 97 of file plugin-registry.c.

Referenced by plugin_get_header().

char parse_key[512]
static

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

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

char* parse_value
static

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

Referenced by plugin_parse(), and plugin_save().

bool_t registry_locked = TRUE
static