* 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>
		
			
				
	
	
		
			82 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#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
 |