 52b5966262
			
		
	
	
		52b5966262
		
			
		
	
	
	
	
		
			
			* added filename mode setting * added furi_flag checks for when filename_mode is set * changed naming for ibutton, lfrfid and subghz * requested changes from PR * Lib: gather all naming bits and pieces under name generator module. Properly bump api version. FuriHal: fix RTC flag enum. * PR requested changes * bug fix for arg type * added functionality for other application scenes * Lib: cleanup name generator API, simplify usage. Sync API symbols. * Lib: proper size type in name_generator. Cleanup. * FuriHal: cleanup rtc api usage across firmware Co-authored-by: あく <alleteam@gmail.com>
		
			
				
	
	
		
			76 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #include "name_generator.h"
 | |
| 
 | |
| #include <stdio.h>
 | |
| #include <stdint.h>
 | |
| #include <furi_hal_rtc.h>
 | |
| #include <stdlib.h>
 | |
| #include <stdbool.h>
 | |
| #include <furi.h>
 | |
| 
 | |
| const char* const name_generator_left[] = {
 | |
|     "ancient",  "hollow", "strange",   "disappeared", "unknown",    "unthinkable", "unnameable",
 | |
|     "nameless", "my",     "concealed", "forgotten",   "hidden",     "mysterious",  "obscure",
 | |
|     "random",   "remote", "uncharted", "undefined",   "untraveled", "untold",
 | |
| };
 | |
| 
 | |
| const char* const name_generator_right[] = {
 | |
|     "door",
 | |
|     "entrance",
 | |
|     "doorway",
 | |
|     "entry",
 | |
|     "portal",
 | |
|     "entree",
 | |
|     "opening",
 | |
|     "crack",
 | |
|     "access",
 | |
|     "corridor",
 | |
|     "passage",
 | |
|     "port",
 | |
| };
 | |
| 
 | |
| void name_generator_make_auto(char* name, size_t max_name_size, const char* prefix) {
 | |
|     if(furi_hal_rtc_is_flag_set(FuriHalRtcFlagDetailedFilename)) {
 | |
|         name_generator_make_detailed(name, max_name_size, prefix);
 | |
|     } else {
 | |
|         name_generator_make_random(name, max_name_size);
 | |
|     }
 | |
| }
 | |
| 
 | |
| void name_generator_make_random(char* name, size_t max_name_size) {
 | |
|     furi_assert(name);
 | |
|     furi_assert(max_name_size);
 | |
| 
 | |
|     uint8_t name_generator_left_i = rand() % COUNT_OF(name_generator_left);
 | |
|     uint8_t name_generator_right_i = rand() % COUNT_OF(name_generator_right);
 | |
| 
 | |
|     snprintf(
 | |
|         name,
 | |
|         max_name_size,
 | |
|         "%s_%s",
 | |
|         name_generator_left[name_generator_left_i],
 | |
|         name_generator_right[name_generator_right_i]);
 | |
| 
 | |
|     // Set first symbol to upper case
 | |
|     name[0] = name[0] - 0x20;
 | |
| }
 | |
| 
 | |
| void name_generator_make_detailed(char* name, size_t max_name_size, const char* prefix) {
 | |
|     furi_assert(name);
 | |
|     furi_assert(max_name_size);
 | |
|     furi_assert(prefix);
 | |
| 
 | |
|     FuriHalRtcDateTime dateTime;
 | |
|     furi_hal_rtc_get_datetime(&dateTime);
 | |
| 
 | |
|     snprintf(
 | |
|         name,
 | |
|         max_name_size,
 | |
|         "%s-%.4d_%.2d_%.2d-%.2d_%.2d",
 | |
|         prefix,
 | |
|         dateTime.year,
 | |
|         dateTime.month,
 | |
|         dateTime.day,
 | |
|         dateTime.hour,
 | |
|         dateTime.minute);
 | |
| }
 |