#pragma once #include #include "registry.h" #include "subghz_keystore.h" #ifdef __cplusplus extern "C" { #endif typedef struct SubGhzEnvironment SubGhzEnvironment; typedef struct SubGhzProtocolRegistry SubGhzProtocolRegistry; /** * Allocate SubGhzEnvironment. * @return SubGhzEnvironment* pointer to a SubGhzEnvironment instance */ SubGhzEnvironment* subghz_environment_alloc(); /** * Free SubGhzEnvironment. * @param instance Pointer to a SubGhzEnvironment instance */ void subghz_environment_free(SubGhzEnvironment* instance); /** * Downloading the manufacture key file. * @param instance Pointer to a SubGhzEnvironment instance * @param filename Full path to the file * @return true On success */ bool subghz_environment_load_keystore(SubGhzEnvironment* instance, const char* filename); /** * Get pointer to a SubGhzKeystore* instance. * @return SubGhzEnvironment* pointer to a SubGhzEnvironment instance */ SubGhzKeystore* subghz_environment_get_keystore(SubGhzEnvironment* instance); /** * Set filename to work with Came Atomo. * @param instance Pointer to a SubGhzEnvironment instance * @param filename Full path to the file */ void subghz_environment_set_came_atomo_rainbow_table_file_name( SubGhzEnvironment* instance, const char* filename); /** * Get filename to work with Came Atomo. * @param instance Pointer to a SubGhzEnvironment instance * @return Full path to the file */ const char* subghz_environment_get_came_atomo_rainbow_table_file_name(SubGhzEnvironment* instance); /** * Set filename to work with Alutech at-4n. * @param instance Pointer to a SubGhzEnvironment instance * @param filename Full path to the file */ void subghz_environment_set_alutech_at_4n_rainbow_table_file_name( SubGhzEnvironment* instance, const char* filename); /** * Get filename to work with Alutech at-4n. * @param instance Pointer to a SubGhzEnvironment instance * @return Full path to the file */ const char* subghz_environment_get_alutech_at_4n_rainbow_table_file_name(SubGhzEnvironment* instance); /** * Set filename to work with Nice Flor-S. * @param instance Pointer to a SubGhzEnvironment instance * @param filename Full path to the file */ void subghz_environment_set_nice_flor_s_rainbow_table_file_name( SubGhzEnvironment* instance, const char* filename); /** * Get filename to work with Nice Flor-S. * @param instance Pointer to a SubGhzEnvironment instance * @return Full path to the file */ const char* subghz_environment_get_nice_flor_s_rainbow_table_file_name(SubGhzEnvironment* instance); /** * Set list of protocols to work. * @param instance Pointer to a SubGhzEnvironment instance * @param protocol_registry_items Pointer to a SubGhzProtocolRegistry */ void subghz_environment_set_protocol_registry( SubGhzEnvironment* instance, const SubGhzProtocolRegistry* protocol_registry_items); /** * Get list of protocols to work. * @param instance Pointer to a SubGhzEnvironment instance * @return Pointer to a SubGhzProtocolRegistry */ const SubGhzProtocolRegistry* subghz_environment_get_protocol_registry(SubGhzEnvironment* instance); /** * Get list of protocols names. * @param instance Pointer to a SubGhzEnvironment instance * @param idx index protocols * @return Pointer to a SubGhzProtocolRegistry */ const char* subghz_environment_get_protocol_name_registry(SubGhzEnvironment* instance, size_t idx); /** * Resetting the parameters used in the keeloq protocol. * @param instance Pointer to a SubGhzEnvironment instance */ void subghz_environment_reset_keeloq(SubGhzEnvironment* instance); #ifdef __cplusplus } #endif