mirror of
https://protopirate.net/ProtoPirate/ProtoPirate.git
synced 2026-10-06 23:37:20 +00:00
REFACTORS and OPTIMIZATIONS, PLUGIN and HOST API changes * Re-ordered strucct variables for less padding and smaller compiled code. HOST API: All plugins now use the same host api, and the host api has been extended to support. * Changed Tool Scene Host to Shared Plugin Host (and renamed sources) * Got rid of ProtoPirateToolScenePluginKind, and fixed the header hell that came with it! * ToolScenes are now SharedPlugins, we can refactor HOST API etc now. * Header Cleanup in Main App header file * Moved host api header file into helpers REFACTORS: Removed all API Host #defines from all plugins. * The code was ugly, I never liked it but followed convention * The AI found bug in unload caused by them was enough reason to kill them * Move Sub Decode and Timing Tuner plugin code logic from scenes source to plugins/XXX_plugin.c * Standarizes the 2 Tool Scenes with the other plugins. * Remove shared plugin pointers for each type, replaced with ONE void * * Remove all the Entry Point Checks in Plugins. * Remove plugin path from all plugins, use it once. PLUGIN CHANGES: Use Same SharedPlugin Struct for all Plugins that dont need to expose functions. * API of ALL Plugins is now the Size of the Host API, or PluginStruct if no API. * This only leaves Config and Bruteforce having own structs, as they have own API. * Remove emulate_plugin pointer from main app, we dont need it. * Remove plugin_ensure_loaded for Sub Decode and Timing Tuner, make it consistent and save 0.5Kb on FAP size. * PSA BF is now BRUTEFORCE, we have Renault as well now. * Made plugin names shorter, and removed plugin_names from the descriptor as we dont use them. (Save FAP Size) * SUB DECODE: Pack Context Struct for RAM, replace FuriStrings with char * * IF we can't determine BF, Pop an (Error) widget button. * Added INLINING in Plugin Host API (Compiler seems to already inline!) * Added Error button if can't load BF plugin. (Added to Saved Info too) * BRUTEFORCE speed improvement. (Don't update UI as often) Added REMOTE ANALYZER to ProtoPirate. * Is in its own plugin * Has ENABLE_REMOTE_ANALYZER * Looks at Modulation Type, automatically selects AM and FM for you. * Has new UI, with instructions and history shows preset. * Put Menu under Saved Remotes Added WELCOME SCREEN to ProtoPirate
39 lines
1.3 KiB
C
39 lines
1.3 KiB
C
#include "../protopirate_protocol_plugins.h"
|
|
#include "../protocols_common.h"
|
|
#include "../ford_v1.h"
|
|
#include "../ford_v2.h"
|
|
#include "../ford_v3.h"
|
|
#include "../honda_v2.h"
|
|
#include <lib/flipper_application/flipper_application.h>
|
|
|
|
static const SubGhzProtocol* const protopirate_protocol_registry_fm_f4_items[] = {
|
|
&ford_protocol_v1,
|
|
&ford_protocol_v2,
|
|
&ford_protocol_v3,
|
|
&honda_v2_protocol,
|
|
};
|
|
|
|
static const SubGhzProtocolRegistry protopirate_protocol_registry_fm_f4 = {
|
|
.items = protopirate_protocol_registry_fm_f4_items,
|
|
.size = sizeof(protopirate_protocol_registry_fm_f4_items) /
|
|
sizeof(protopirate_protocol_registry_fm_f4_items[0]),
|
|
};
|
|
|
|
static const ProtoPirateProtocolPlugin protopirate_fm_f4_plugin = {
|
|
.plugin_name = "",
|
|
.kind = ProtoPirateProtocolPluginKindRx,
|
|
.route = ProtoPirateProtocolRegistryRouteFMF4,
|
|
.registry = &protopirate_protocol_registry_fm_f4,
|
|
.release = NULL,
|
|
};
|
|
|
|
static const FlipperAppPluginDescriptor protopirate_fm_f4_plugin_descriptor = {
|
|
.appid = PROTOPIRATE_PROTOCOL_PLUGIN_APP_ID,
|
|
.ep_api_version = PROTOPIRATE_PROTOCOL_PLUGIN_API_VERSION,
|
|
.entry_point = &protopirate_fm_f4_plugin,
|
|
};
|
|
|
|
const FlipperAppPluginDescriptor* protopirate_fm_f4_plugin_ep(void) {
|
|
return &protopirate_fm_f4_plugin_descriptor;
|
|
}
|