1
1
#include "i2ctools_i.h"
2
2
3
3
void i2ctools_draw_callback (Canvas * canvas , void * ctx ) {
4
- i2cTools * i2ctools = acquire_mutex ((ValueMutex * )ctx , 25 );
4
+ i2cTools * i2ctools = ctx ;
5
+ if (furi_mutex_acquire (i2ctools -> mutex , 200 ) != FuriStatusOk ) {
6
+ return ;
7
+ }
5
8
6
9
switch (i2ctools -> main_view -> current_view ) {
7
10
case MAIN_VIEW :
@@ -23,7 +26,7 @@ void i2ctools_draw_callback(Canvas* canvas, void* ctx) {
23
26
default :
24
27
break ;
25
28
}
26
- release_mutex (( ValueMutex * ) ctx , i2ctools );
29
+ furi_mutex_release ( i2ctools -> mutex );
27
30
}
28
31
29
32
void i2ctools_input_callback (InputEvent * input_event , void * ctx ) {
@@ -38,16 +41,11 @@ int32_t i2ctools_app(void* p) {
38
41
39
42
// Alloc i2ctools
40
43
i2cTools * i2ctools = malloc (sizeof (i2cTools ));
41
- ValueMutex i2ctools_mutex ;
42
- if (!init_mutex (& i2ctools_mutex , i2ctools , sizeof (i2cTools ))) {
43
- FURI_LOG_E (APP_NAME , "cannot create mutex\r\n" );
44
- free (i2ctools );
45
- return -1 ;
46
- }
44
+ i2ctools -> mutex = furi_mutex_alloc (FuriMutexTypeNormal );
47
45
48
46
// Alloc viewport
49
47
i2ctools -> view_port = view_port_alloc ();
50
- view_port_draw_callback_set (i2ctools -> view_port , i2ctools_draw_callback , & i2ctools_mutex );
48
+ view_port_draw_callback_set (i2ctools -> view_port , i2ctools_draw_callback , i2ctools );
51
49
view_port_input_callback_set (i2ctools -> view_port , i2ctools_input_callback , event_queue );
52
50
53
51
// Register view port in GUI
0 commit comments