smartmx пре 2 година
родитељ
комит
cdca31b95a
2 измењених фајлова са 30 додато и 18 уклоњено
  1. 17 11
      mfbd.c
  2. 13 7
      mfbd_sd.c

+ 17 - 11
mfbd.c

@@ -353,7 +353,7 @@ void mfbd_mbtn_scan(const mfbd_group_t *_pbtn_group)
 #if MFBD_MBTN_MULTICLICK_LONG_EVT
                 else if(_pbtn->state == MFBD_BTN_STATE_DOWN)
                 {
-                    if (((MFBD_LONG_TIME_IN_FUC) > 0) && (_pbtn_info->btn_long_code != 0))
+                    if (((MFBD_LONG_TIME_IN_FUC) > 0) && (_pbtn->btn_info->btn_long_code != 0))
                     {
                         /* if long_time is 0 or long_code is 0, disable long and repeat check. */
                         if (_pbtn->long_count < (MFBD_LONG_TIME_IN_FUC))
@@ -363,7 +363,7 @@ void mfbd_mbtn_scan(const mfbd_group_t *_pbtn_group)
                             {
                                 /* it means the button is down for over long_time. */
                                 _pbtn->repeat_count = 0; /* long event has happened, clear repeat_count. */
-                                _pbtn_group->btn_value_report(_pbtn_info->btn_long_code);
+                                _pbtn_group->btn_value_report(_pbtn->btn_info->btn_long_code);
                                 _pbtn->state = MFBD_BTN_STATE_LONG;
                             }
                         }
@@ -372,21 +372,21 @@ void mfbd_mbtn_scan(const mfbd_group_t *_pbtn_group)
                 else
                 {
                     /* MFBD_BTN_STATE_LONG */
-                    if (((MFBD_REPEAT_TIME_IN_FUC) > 0) && (_pbtn_info->btn_down_code[_pbtn->multiclick_state]] != 0))
+                    if (((MFBD_REPEAT_TIME_IN_FUC) > 0) && (_pbtn->btn_info->btn_down_code[_pbtn->multiclick_state] != 0))
                     {
                         _pbtn->repeat_count++;
                         if (_pbtn->repeat_count >= (MFBD_REPEAT_TIME_IN_FUC))
                         {
                             /* repeat event has happened, clear repeat_count. */
                             _pbtn->repeat_count = 0;
-                            _pbtn_group->btn_value_report(_pbtn_info->btn_down_code[_pbtn->multiclick_state]]);
+                            _pbtn_group->btn_value_report(_pbtn->btn_info->btn_down_code[_pbtn->multiclick_state]);
                         }
                     }
                 }
 #else
                 else if(_pbtn->state == MFBD_BTN_STATE_DOWN)
                 {
-                    if (((MFBD_LONG_TIME_IN_FUC) > 0) && (_pbtn_info->btn_long_code != 0))
+                    if (((MFBD_LONG_TIME_IN_FUC) > 0) && (_pbtn->btn_info->btn_long_code != 0))
                     {
                         /* if long_time is 0 or long_code is 0, disable long and repeat check. */
                         if (_pbtn->long_count < (MFBD_LONG_TIME_IN_FUC))
@@ -398,7 +398,7 @@ void mfbd_mbtn_scan(const mfbd_group_t *_pbtn_group)
                                 if (_pbtn->multiclick_state == 0)
                                 {
                                     _pbtn->repeat_count = 0; /* long event has happened, clear repeat_count. */
-                                    _pbtn_group->btn_value_report(_pbtn_info->btn_long_code);
+                                    _pbtn_group->btn_value_report(_pbtn->btn_info->btn_long_code);
                                 }
                                 _pbtn->state = MFBD_BTN_STATE_LONG;
                             }
@@ -466,17 +466,23 @@ void mfbd_mbtn_scan(const mfbd_group_t *_pbtn_group)
                 {
 #if MFBD_MULTICLICK_STATE_AUTO_RESET
                     /* if multiclick_state is not 0 and less than max_multiclick_state, inc multiclick_state */
-                    if (((MFBD_MULTICLICK_TIME_IN_FUC) != 0)  \
-                            && (_pbtn->multiclick_state < _pbtn->btn_info->max_multiclick_state)  \
-                            && (_pbtn->state == MFBD_BTN_STATE_DOWN))
+                    if (((MFBD_MULTICLICK_TIME_IN_FUC) != 0)
+                            && (_pbtn->multiclick_state < _pbtn->btn_info->max_multiclick_state)
+#if (MFBD_MBTN_CONTINUE_LONG_COUNT==0)
+                            && (_pbtn->state == MFBD_BTN_STATE_DOWN)
+#endif  /* (MFBD_MBTN_CONTINUE_LONG_COUNT==0) */
+                            )
                     {
                         _pbtn->multiclick_state++;
                         _pbtn->multiclick_count = 0;
                     }
 #else
                     /* if multiclick_state is not 0 and less than max_multiclick_state, inc multiclick_state */
-                    if (((MFBD_MULTICLICK_TIME_IN_FUC) != 0)  \
-                            && (_pbtn->state == MFBD_BTN_STATE_DOWN))
+                    if (((MFBD_MULTICLICK_TIME_IN_FUC) != 0)
+#if (MFBD_MBTN_CONTINUE_LONG_COUNT==0)
+                            && (_pbtn->state == MFBD_BTN_STATE_DOWN)
+#endif  /* (MFBD_MBTN_CONTINUE_LONG_COUNT==0) */
+                            )
                     {
                         if(_pbtn->multiclick_state < _pbtn->btn_info->max_multiclick_state)
                         {

+ 13 - 7
mfbd_sd.c

@@ -389,14 +389,14 @@ void mfbd_mbtn_scan(const mfbd_group_t *_pbtn_group, const mfbd_mbtn_info_t *_pb
                 else
                 {
                     /* MFBD_BTN_STATE_LONG */
-                    if (((MFBD_REPEAT_TIME_IN_FUC) > 0) && (_pbtn_info->btn_down_code[_pbtn_info->btn->multiclick_state]] != 0))
+                    if (((MFBD_REPEAT_TIME_IN_FUC) > 0) && (_pbtn_info->btn_down_code[_pbtn_info->btn->multiclick_state] != 0))
                     {
                         _pbtn_info->btn->repeat_count++;
                         if (_pbtn_info->btn->repeat_count >= (MFBD_REPEAT_TIME_IN_FUC))
                         {
                             /* repeat event has happened, clear repeat_count. */
                             _pbtn_info->btn->repeat_count = 0;
-                            _pbtn_group->btn_value_report(_pbtn_info->btn_down_code[_pbtn_info->btn->multiclick_state]]);
+                            _pbtn_group->btn_value_report(_pbtn_info->btn_down_code[_pbtn_info->btn->multiclick_state]);
                         }
                     }
                 }
@@ -483,17 +483,23 @@ void mfbd_mbtn_scan(const mfbd_group_t *_pbtn_group, const mfbd_mbtn_info_t *_pb
                 {
 #if MFBD_MULTICLICK_STATE_AUTO_RESET
                     /* if multiclick_state is not 0 and less than max_multiclick_state, inc multiclick_state */
-                    if (((MFBD_MULTICLICK_TIME_IN_FUC) != 0)  \
-                            && (_pbtn_info->btn->multiclick_state < _pbtn_info->max_multiclick_state)  \
-                            && (_pbtn_info->btn->state == MFBD_BTN_STATE_DOWN))
+                    if (((MFBD_MULTICLICK_TIME_IN_FUC) != 0)
+                            && (_pbtn_info->btn->multiclick_state < _pbtn_info->max_multiclick_state)
+#if (MFBD_MBTN_CONTINUE_LONG_COUNT==0)
+                            && (_pbtn_info->btn->state == MFBD_BTN_STATE_DOWN)
+#endif  /* (MFBD_MBTN_CONTINUE_LONG_COUNT==0) */
+                            )
                     {
                         _pbtn_info->btn->multiclick_state++;
                         _pbtn_info->btn->multiclick_count = 0;
                     }
 #else
                     /* if multiclick_state is not 0 and less than max_multiclick_state, inc multiclick_state */
-                    if (((MFBD_MULTICLICK_TIME_IN_FUC) != 0)  \
-                            && (_pbtn_info->btn->state == MFBD_BTN_STATE_DOWN))
+                    if (((MFBD_MULTICLICK_TIME_IN_FUC) != 0)
+#if (MFBD_MBTN_CONTINUE_LONG_COUNT==0)
+                            && (_pbtn_info->btn->state == MFBD_BTN_STATE_DOWN)
+#endif  /* (MFBD_MBTN_CONTINUE_LONG_COUNT==0) */
+                            )
                     {
                         if(_pbtn_info->btn->multiclick_state < _pbtn_info->max_multiclick_state)
                         {