VLC 4.0.0-dev
|
Data Structures | |
struct | addon_entry_owner |
struct | addons_manager_private_t |
Macros | |
#define | INIT_QUEUE(name) |
#define | FREE_QUEUE(name) |
Typedefs | |
typedef struct addon_entry_owner | addon_entry_owner_t |
Functions | |
static void * | FinderThread (void *) |
static void | LoadLocalStorage (addons_manager_t *p_manager) |
addon_entry_t * | addon_entry_New (void) |
addon entry lifecycle | |
addon_entry_t * | addon_entry_Hold (addon_entry_t *p_entry) |
void | addon_entry_Release (addon_entry_t *p_entry) |
addons_manager_t * | addons_manager_New (vlc_object_t *p_this, const struct addons_manager_owner *restrict owner) |
void | addons_manager_Delete (addons_manager_t *p_manager) |
void | addons_manager_Gather (addons_manager_t *p_manager, const char *psz_uri) |
Gather addons info from repository (default "addons finder" module) If psz_uri is not NULL, only gather info from the pointed package. | |
static addon_entry_t * | getHeldEntryByUUID (addons_manager_t *p_manager, const addon_uuid_t uuid) |
static void | MergeSources (addons_manager_t *p_manager, addon_entry_t **pp_addons, int i_count) |
static void | finder_thread_interrupted (void *p_data) |
static int | addons_manager_WriteCatalog (addons_manager_t *p_manager) |
int | addons_manager_LoadCatalog (addons_manager_t *p_manager) |
Charge currently installed, usable and manageable addons (default "addons storage" module) | |
static int | installOrRemoveAddon (addons_manager_t *p_manager, addon_entry_t *p_entry, bool b_install) |
static void | installer_thread_interrupted (void *p_data) |
static void * | InstallerThread (void *p_data) |
static int | InstallEntry (addons_manager_t *p_manager, addon_entry_t *p_entry) |
int | addons_manager_Install (addons_manager_t *p_manager, const addon_uuid_t uuid) |
Install or Remove the addon identified by its uuid. | |
int | addons_manager_Remove (addons_manager_t *p_manager, const addon_uuid_t uuid) |
#define FREE_QUEUE | ( | name | ) |
#define INIT_QUEUE | ( | name | ) |
typedef struct addon_entry_owner addon_entry_owner_t |
addon_entry_t * addon_entry_Hold | ( | addon_entry_t * | p_entry | ) |
References addon_entry_owner::rc, and vlc_atomic_rc_inc().
Referenced by getHeldEntryByUUID(), and InstallerThread().
addon_entry_t * addon_entry_New | ( | void | ) |
addon entry lifecycle
References ARRAY_INIT, addon_entry_owner::entry, addon_entry_t::files, addon_entry_t::lock, addon_entry_owner::rc, unlikely, vlc_atomic_rc_init(), and vlc_mutex_init().
void addon_entry_Release | ( | addon_entry_t * | p_entry | ) |
References ARRAY_FOREACH, ARRAY_RESET, addon_entry_t::files, addon_entry_t::p_custom, addon_entry_t::psz_archive_uri, addon_entry_t::psz_author, addon_entry_t::psz_description, addon_file_t::psz_download_uri, addon_file_t::psz_filename, addon_entry_t::psz_image_data, addon_entry_t::psz_image_uri, addon_entry_t::psz_name, addon_entry_t::psz_source_module, addon_entry_t::psz_source_uri, addon_entry_t::psz_summary, addon_entry_t::psz_version, addon_entry_owner::rc, and vlc_atomic_rc_dec().
Referenced by addons_manager_Install(), InstallerThread(), and MergeSources().
void addons_manager_Delete | ( | addons_manager_t * | p_manager | ) |
References ARRAY_FOREACH, ARRAY_RESET, addons_manager_private_t::b_live, addons_manager_private_t::finder, FREE_QUEUE, addons_manager_private_t::installer, addons_manager_private_t::lock, addons_manager_private_t::p_interrupt, addons_manager_t::p_priv, addons_manager_private_t::thread, addons_manager_private_t::uris, vlc_interrupt_kill(), vlc_join(), vlc_mutex_lock(), and vlc_mutex_unlock().
void addons_manager_Gather | ( | addons_manager_t * | p_manager, |
const char * | psz_uri | ||
) |
Gather addons info from repository (default "addons finder" module) If psz_uri is not NULL, only gather info from the pointed package.
References ARRAY_APPEND, addons_manager_private_t::b_live, addons_manager_private_t::finder, FinderThread(), addons_manager_private_t::lock, msg_Err, addons_manager_private_t::p_parent, addons_manager_t::p_priv, strdup(), addons_manager_private_t::thread, addons_manager_private_t::uris, vlc_clone(), vlc_cond_signal(), vlc_mutex_lock(), vlc_mutex_unlock(), and addons_manager_private_t::waitcond.
int addons_manager_Install | ( | addons_manager_t * | p_manager, |
const addon_uuid_t | uuid | ||
) |
Install or Remove the addon identified by its uuid.
References addon_entry_Release(), getHeldEntryByUUID(), InstallEntry(), and VLC_EGENERIC.
Referenced by addons_manager_Remove().
int addons_manager_LoadCatalog | ( | addons_manager_t * | p_manager | ) |
Charge currently installed, usable and manageable addons (default "addons storage" module)
References LoadLocalStorage(), and VLC_SUCCESS.
addons_manager_t * addons_manager_New | ( | vlc_object_t * | p_this, |
const struct addons_manager_owner *restrict | owner | ||
) |
References ARRAY_INIT, addons_manager_private_t::finder, INIT_QUEUE, addons_manager_private_t::installer, addons_manager_t::owner, addons_manager_private_t::p_interrupt, addons_manager_private_t::p_parent, addons_manager_t::p_priv, addons_manager_private_t::uris, vlc_interrupt_create(), and vlc_interrupt_destroy().
int addons_manager_Remove | ( | addons_manager_t * | p_manager, |
const addon_uuid_t | uuid | ||
) |
References addons_manager_Install().
|
static |
References addons_manager_private_t::entries, addons_manager_private_t::finder, addons_manager_private_t::i_size, addons_manager_private_t::lock, module_need, module_unneed, vlc_object_t::no_interact, addons_storage_t::obj, addons_manager_private_t::p_elems, addons_manager_private_t::p_parent, addons_manager_t::p_priv, addons_storage_t::pf_catalog, vlc_custom_create, VLC_EGENERIC, vlc_mutex_lock(), vlc_mutex_unlock(), and vlc_object_delete.
Referenced by InstallerThread().
|
static |
|
static |
References ARRAY_INIT, ARRAY_REMOVE, ARRAY_RESET, addons_manager_private_t::b_live, addons_manager_owner::discovery_ended, addons_finder_t::entries, addons_manager_private_t::finder, finder_thread_interrupted(), addons_finder_t::i_size, addons_manager_private_t::i_size, addons_manager_private_t::lock, MergeSources(), module_need, module_unneed, vlc_object_t::no_interact, addons_finder_t::obj, addons_manager_t::owner, addons_finder_t::p_elems, addons_manager_private_t::p_elems, addons_manager_private_t::p_interrupt, addons_manager_private_t::p_parent, addons_manager_t::p_priv, addons_finder_t::pf_find, addons_finder_t::psz_uri, addons_manager_private_t::uris, vlc_cond_wait(), vlc_custom_create, vlc_interrupt_register(), vlc_interrupt_set(), vlc_interrupt_unregister(), vlc_mutex_lock(), vlc_mutex_unlock(), vlc_object_delete, vlc_restorecancel(), vlc_savecancel(), vlc_thread_set_name(), and addons_manager_private_t::waitcond.
Referenced by addons_manager_Gather().
|
static |
|
static |
References ADDON_OTHER, ADDON_PLUGIN, ADDON_UNKNOWN, ARRAY_APPEND, addons_manager_private_t::b_live, addon_entry_t::e_type, addons_manager_private_t::entries, addons_manager_private_t::installer, InstallerThread(), addons_manager_private_t::lock, msg_Err, addons_manager_private_t::p_parent, addons_manager_t::p_priv, addons_manager_private_t::thread, vlc_clone(), vlc_cond_signal(), VLC_EGENERIC, VLC_EINVAL, vlc_mutex_lock(), vlc_mutex_unlock(), VLC_SUCCESS, and addons_manager_private_t::waitcond.
Referenced by addons_manager_Install().
|
static |
|
static |
References addons_manager_owner::addon_changed, addon_entry_Hold(), addon_entry_Release(), ADDON_INSTALLED, ADDON_INSTALLING, ADDON_NOTINSTALLED, ADDON_UNINSTALLING, addons_manager_WriteCatalog(), ARRAY_REMOVE, addons_manager_private_t::b_live, addon_entry_t::e_state, addons_manager_private_t::entries, addons_manager_private_t::i_size, addons_manager_private_t::installer, installer_thread_interrupted(), installOrRemoveAddon(), addon_entry_t::lock, addons_manager_private_t::lock, addons_manager_t::owner, addons_manager_private_t::p_elems, addons_manager_private_t::p_interrupt, addons_manager_t::p_priv, vlc_cond_wait(), vlc_interrupt_register(), vlc_interrupt_set(), vlc_interrupt_unregister(), vlc_mutex_lock(), vlc_mutex_unlock(), vlc_restorecancel(), vlc_savecancel(), VLC_SUCCESS, vlc_thread_set_name(), and addons_manager_private_t::waitcond.
Referenced by InstallEntry().
|
static |
References ADDON_MANAGEABLE, addon_entry_t::e_flags, addon_entry_t::lock, module_need, module_unneed, msg_Dbg, vlc_object_t::no_interact, addons_storage_t::obj, addons_manager_private_t::p_parent, addons_manager_t::p_priv, addons_storage_t::pf_install, addons_storage_t::pf_remove, vlc_custom_create, VLC_EGENERIC, vlc_mutex_lock(), vlc_mutex_unlock(), vlc_object_delete, and VLC_SUCCESS.
Referenced by InstallerThread().
|
static |
References ARRAY_INIT, ARRAY_RESET, addons_finder_t::entries, addons_finder_t::i_size, MergeSources(), module_need, module_unneed, vlc_object_t::no_interact, addons_finder_t::obj, addons_finder_t::p_elems, addons_manager_private_t::p_parent, addons_manager_t::p_priv, addons_finder_t::pf_find, addons_finder_t::psz_uri, vlc_custom_create, and vlc_object_delete.
Referenced by addons_manager_LoadCatalog().
|
static |
References addon_entry_Release(), addons_manager_owner::addon_found, ADDON_UPDATABLE, ARRAY_APPEND, addon_entry_t::e_flags, addons_manager_private_t::entries, addons_manager_private_t::finder, getHeldEntryByUUID(), addon_entry_t::lock, addons_manager_t::owner, addons_manager_t::p_priv, addon_entry_t::psz_version, addon_entry_t::uuid, vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by FinderThread(), and LoadLocalStorage().