1
1
/**************************|
2
- o o |
3
- | o myFlipperApps o |
4
- | o by MiguelGargallo o |
5
- | o 001 - My First App o |
6
- | o Version: 3.0.0b o |
7
- | o Date: 06-28-2023 o |
2
+ | o myFlipperApps o |
3
+ | o by MiguelGargallo o |
4
+ | o 001 - My First App o |
5
+ | o Version: 3.0.0b o |
6
+ | o Date: 06-28-2023 o |
8
7
| o o |
9
8
**************************/
10
9
11
10
#include <stdio.h>
12
11
#include <furi.h>
13
12
#include <gui/gui.h>
14
13
15
- // Create a message to display based on user input
14
+ // Create messages to display based on user input
16
15
static char * message = "Press any button..." ;
17
16
static char * exitMessage = "" ;
17
+ static char numberMessage [2 ] = "" ; // Create a new message string for numbers
18
+
19
+ // Create a variable to keep track of long press count
20
+ static int longPressCount = 0 ;
18
21
19
22
// Function to clear canvas and draw GUI elements
20
23
static void drawGui (Canvas * canvas , void * context ) {
@@ -30,6 +33,9 @@ static void drawGui(Canvas* canvas, void* context) {
30
33
canvas_draw_str (canvas , 15 , 40 , message );
31
34
canvas_draw_str (canvas , 15 , 55 , exitMessage ); // Exit message
32
35
36
+ // Draw the number message
37
+ canvas_draw_str (canvas , 65 , 32 , numberMessage ); // Number message
38
+
33
39
// Draw a line
34
40
canvas_draw_line (canvas , 2 , 23 , 126 , 23 );
35
41
}
@@ -44,27 +50,46 @@ static void handleInput(InputEvent* input_event, void* context) {
44
50
45
51
// Change the message depending on which key was pressed
46
52
switch (input_event -> key ) {
47
- case InputKeyUp :
48
- message = longPress ? "You long-pressed ^^^" : "You pressed ^" ;
49
- break ;
50
- case InputKeyDown :
51
- message = longPress ? "You long-pressed vvv" : "You pressed v" ;
52
- break ;
53
- case InputKeyLeft :
54
- message = longPress ? "You long-pressed <<<" : "You pressed <" ;
55
- break ;
56
- case InputKeyRight :
57
- message = longPress ? "You long-pressed >>>" : "You pressed >" ;
58
- break ;
59
- case InputKeyOk :
60
- message = longPress ? "You long-pressed ooo" : "You pressed o" ;
61
- break ;
62
- case InputKeyBack :
63
- message = longPress ? "You long-pressed ---" : "You pressed -" ;
64
- exitMessage = longPress ? "Exiting the App." : "Long press to exit." ;
65
- break ;
66
- default :
67
- message = "Press any button..." ;
53
+ case InputKeyUp :
54
+ message = longPress ? "You long-pressed ^^^" : "You pressed ^" ;
55
+ break ;
56
+ case InputKeyDown :
57
+ message = longPress ? "You long-pressed vvv" : "You pressed v" ;
58
+ break ;
59
+ case InputKeyLeft :
60
+ message = longPress ? "You long-pressed <<<" : "You pressed <" ;
61
+ break ;
62
+ case InputKeyRight :
63
+ message = longPress ? "You long-pressed >>>" : "You pressed >" ;
64
+ break ;
65
+ case InputKeyOk :
66
+ message = longPress ? "You long-pressed ooo" : "You pressed o" ;
67
+ break ;
68
+ case InputKeyBack :
69
+ message = longPress ? "You long-pressed ---" : "You pressed -" ;
70
+ exitMessage = longPress ? "Exiting the App." : "Long press to exit." ;
71
+ break ;
72
+ default :
73
+ message = "Press any button..." ;
74
+ }
75
+
76
+ // Update the longPressCount and numberMessage based on the type of press
77
+ if (longPress ) {
78
+ longPressCount ++ ;
79
+ switch (longPressCount ) {
80
+ case 1 :
81
+ snprintf (numberMessage , sizeof (numberMessage ), "1" );
82
+ break ;
83
+ case 2 :
84
+ snprintf (numberMessage , sizeof (numberMessage ), "2" );
85
+ break ;
86
+ case 3 :
87
+ snprintf (numberMessage , sizeof (numberMessage ), "3" );
88
+ break ;
89
+ }
90
+ } else {
91
+ longPressCount = 0 ; // Reset the count on a short press
92
+ numberMessage [0 ] = '\0' ; // Clear the string
68
93
}
69
94
70
95
furi_message_queue_put (event_queue , input_event , FuriWaitForever );
0 commit comments