/** * @brief Create a new plugin * @private * * @param name Plugin name. * @param directory Directory where the plugin is located. * @param context Context for the plugin. */ SquashPlugin* squash_plugin_new (char* name, char* directory, SquashContext* context) { SquashPlugin* plugin = (SquashPlugin*) malloc (sizeof (SquashPlugin)); plugin->name = name; plugin->license = NULL; plugin->context = context; plugin->directory = directory; plugin->plugin = NULL; SQUASH_TREE_ENTRY_INIT(plugin->tree); SQUASH_TREE_INIT(&(plugin->codecs), squash_codec_compare); return plugin; }
/** * @brief Create a new codec * @private * * @param plugin Plugin to which this codec belongs * @param name Name of the codec */ SquashCodec* squash_codec_new (SquashPlugin* plugin, const char* name) { SquashCodec* codecp = (SquashCodec*) malloc (sizeof (SquashCodec)); SquashCodec codec = { 0, }; codec.plugin = plugin; codec.name = strdup (name); codec.priority = 50; SQUASH_TREE_ENTRY_INIT(codec.tree); *codecp = codec; /* squash_plugin_add_codec (plugin, codecp); */ return codecp; }