|
|
@@ -96,24 +96,19 @@ Picopass* picopass_alloc() {
|
|
|
view_dispatcher_add_view(
|
|
|
picopass->view_dispatcher, PicopassViewLoclass, loclass_get_view(picopass->loclass));
|
|
|
|
|
|
- picopass->plugin_manager =
|
|
|
+ picopass->plugin_wiegand_manager =
|
|
|
plugin_manager_alloc(PLUGIN_APP_ID, PLUGIN_API_VERSION, firmware_api_interface);
|
|
|
-
|
|
|
picopass->plugin_wiegand = NULL;
|
|
|
- if(plugin_manager_load_all(picopass->plugin_manager, APP_ASSETS_PATH("plugins")) !=
|
|
|
+ if(plugin_manager_load_single(picopass->plugin_wiegand_manager, APP_ASSETS_PATH("plugins/plugin_wiegand.fal")) !=
|
|
|
PluginManagerErrorNone) {
|
|
|
- FURI_LOG_E(TAG, "Failed to load all libs");
|
|
|
- } else {
|
|
|
- uint32_t plugin_count = plugin_manager_get_count(picopass->plugin_manager);
|
|
|
- FURI_LOG_I(TAG, "Loaded %lu plugin(s)", plugin_count);
|
|
|
-
|
|
|
- for(uint32_t i = 0; i < plugin_count; i++) {
|
|
|
- const PluginWiegand* plugin = plugin_manager_get_ep(picopass->plugin_manager, i);
|
|
|
- FURI_LOG_I(TAG, "plugin name: %s", plugin->name);
|
|
|
- if(strcmp(plugin->name, "Plugin Wiegand") == 0) {
|
|
|
- // Have to cast to drop "const" qualifier
|
|
|
- picopass->plugin_wiegand = (PluginWiegand*)plugin;
|
|
|
- }
|
|
|
+ FURI_LOG_E(TAG, "Failed to load Wiegand plugin");
|
|
|
+ } else if (plugin_manager_get_count(picopass->plugin_wiegand_manager)) {
|
|
|
+ picopass->plugin_wiegand = (PluginWiegand*)plugin_manager_get_ep(picopass->plugin_wiegand_manager, 0);
|
|
|
+ if(strcmp(picopass->plugin_wiegand->name, "Plugin Wiegand") != 0) {
|
|
|
+ FURI_LOG_E(TAG, "Tried to load invalid Wiegand plugin");
|
|
|
+ picopass->plugin_wiegand = NULL;
|
|
|
+ } else {
|
|
|
+ FURI_LOG_I(TAG, "Loaded Wiegand plugin");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -180,7 +175,7 @@ void picopass_free(Picopass* picopass) {
|
|
|
furi_record_close(RECORD_NOTIFICATION);
|
|
|
picopass->notifications = NULL;
|
|
|
|
|
|
- plugin_manager_free(picopass->plugin_manager);
|
|
|
+ plugin_manager_free(picopass->plugin_wiegand_manager);
|
|
|
|
|
|
free(picopass);
|
|
|
}
|