unleashed-firmware/targets/furi_hal_include/furi_hal_region.h
hedger 917410a0a8
[FL-3629] fbt: reworked assets & resources handling (#3160)
* fbt: reworking targets & assets handling WIP
* fbt: dist fixes
* fbt: moved SD card resources to owning apps
* unit_tests: moved resources to app folder
* github: updated unit_tests paths
* github: packaging fixes
* unit_tests: fixes
* fbt: assets: internal cleanup
* fbt: reworked assets handling
* github: unit_tests: reintroducing fixes
* minor cleanup
* fbt: naming changes to reflect private nature of scons tools
* fbt: resources: fixed dist archive paths
* docs: updated paths
* docs: updated more paths
* docs: included "resources" parameter in app manifest docs; updated assets readme
* updated gitignore for assets
* github: updated action versions
* unit_tests: restored timeout; scripts: assets: logging changes
* gh: don't upload desktop animations for unit test run

Co-authored-by: あく <alleteam@gmail.com>
2023-10-31 00:17:30 +09:00

81 lines
1.8 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include <stdbool.h>
#include <stdint.h>
#include <stddef.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct {
uint32_t start;
uint32_t end;
int8_t power_limit;
uint8_t duty_cycle;
} FuriHalRegionBand;
typedef struct {
char country_code[4];
uint16_t bands_count;
FuriHalRegionBand bands[];
} FuriHalRegion;
/** Initialize region */
void furi_hal_region_init();
/** Get Region Data.
*
* Region data may be allocated in Flash or in RAM.
* Keep in mind that we don't do memory management on our side.
*
* @return pointer to FuriHalRegion instance (in RAM or Flash, check before freeing on region update)
*/
const FuriHalRegion* furi_hal_region_get();
/** Set device region data
*
* @param region pointer to the FuriHalRegion
*/
void furi_hal_region_set(FuriHalRegion* region);
/** Check if region data provisioned
*
* @return true if provisioned, false otherwise
*/
bool furi_hal_region_is_provisioned();
/** Get region name
*
* 2 letter Region code according to iso 3166 standard
* There are 2 extra values that we use in special cases:
* - "00" - developer edition, unlocked
* - "WW" - world wide, region provisioned by default
* - "--" - no provisioned region
*
* @return Pointer to string
*/
const char* furi_hal_region_get_name();
/** Сheck if transmission is allowed on this frequency for your flipper region
*
* @param[in] frequency The frequency
* @param value frequency in Hz
*
* @return true if allowed
*/
bool furi_hal_region_is_frequency_allowed(uint32_t frequency);
/** Get band data for frequency
*
*
*
* @param[in] frequency The frequency
*
* @return { description_of_the_return_value }
*/
const FuriHalRegionBand* furi_hal_region_get_band(uint32_t frequency);
#ifdef __cplusplus
}
#endif