* Added support for running applications from SD card (FAPs - Flipper Application Packages) * Added plugin_dist target for fbt to build FAPs * All apps of type FlipperAppType.EXTERNAL and FlipperAppType.PLUGIN are built as FAPs by default * Updated VSCode configuration for new fbt features - re-deploy stock configuration to use them * Added debugging support for FAPs with fbt debug & VSCode * Added public firmware API with automated versioning Co-authored-by: hedger <hedger@users.noreply.github.com> Co-authored-by: SG <who.just.the.doctor@gmail.com> Co-authored-by: あく <alleteam@gmail.com>
		
			
				
	
	
		
			38 lines
		
	
	
		
			1003 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1003 B
		
	
	
	
		
			C
		
	
	
	
	
	
#include "empty_screen.h"
 | 
						|
#include <furi.h>
 | 
						|
 | 
						|
struct EmptyScreen {
 | 
						|
    View* view;
 | 
						|
};
 | 
						|
 | 
						|
static void empty_screen_view_draw_callback(Canvas* canvas, void* _model) {
 | 
						|
    UNUSED(_model);
 | 
						|
    canvas_clear(canvas);
 | 
						|
}
 | 
						|
 | 
						|
static bool empty_screen_view_input_callback(InputEvent* event, void* context) {
 | 
						|
    UNUSED(event);
 | 
						|
    UNUSED(context);
 | 
						|
    return false;
 | 
						|
}
 | 
						|
 | 
						|
EmptyScreen* empty_screen_alloc() {
 | 
						|
    EmptyScreen* empty_screen = malloc(sizeof(EmptyScreen));
 | 
						|
    empty_screen->view = view_alloc();
 | 
						|
    view_set_context(empty_screen->view, empty_screen);
 | 
						|
    view_set_draw_callback(empty_screen->view, empty_screen_view_draw_callback);
 | 
						|
    view_set_input_callback(empty_screen->view, empty_screen_view_input_callback);
 | 
						|
    return empty_screen;
 | 
						|
}
 | 
						|
 | 
						|
void empty_screen_free(EmptyScreen* empty_screen) {
 | 
						|
    furi_assert(empty_screen);
 | 
						|
    view_free(empty_screen->view);
 | 
						|
    free(empty_screen);
 | 
						|
}
 | 
						|
 | 
						|
View* empty_screen_get_view(EmptyScreen* empty_screen) {
 | 
						|
    furi_assert(empty_screen);
 | 
						|
    return empty_screen->view;
 | 
						|
}
 |