- DEBUG_PRINTF ("code skipped, recognized SIRCS, SAMSUNG32 or NUBERT repetition, counter = %d, auto repetition len = %d\n",\r
- repetition_counter, AUTO_REPETITION_LEN);\r
+ repetition_frame_number = 0;\r
+ }\r
+\r
+#if IRMP_SUPPORT_SIRCS_PROTOCOL == 1\r
+ // if SIRCS protocol and the code will be repeated within 50 ms, we will ignore 2nd and 3rd repetition frame\r
+ if (irmp_param.protocol == IRMP_SIRCS_PROTOCOL && (repetition_frame_number == 1 || repetition_frame_number == 2))\r
+ {\r
+ DEBUG_PRINTF ("code skipped: SIRCS auto repetition frame #%d, counter = %d, auto repetition len = %d\n",\r
+ repetition_frame_number + 1, repetition_counter, AUTO_REPETITION_LEN);\r
+ repetition_counter = 0;\r
+ }\r
+ else\r
+#endif\r
+\r
+#if IRMP_SUPPORT_SAMSUNG_PROTOCOL == 1\r
+ // if SAMSUNG32 protocol and the code will be repeated within 50 ms, we will ignore every 2nd frame\r
+ if (irmp_param.protocol == IRMP_SAMSUNG32_PROTOCOL && (repetition_frame_number & 0x01))\r
+ {\r
+ DEBUG_PRINTF ("code skipped: SAMSUNG32 auto repetition frame #%d, counter = %d, auto repetition len = %d\n",\r
+ repetition_frame_number + 1, repetition_counter, AUTO_REPETITION_LEN);\r
+ repetition_counter = 0;\r
+ }\r
+ else\r
+#endif\r
+\r
+#if IRMP_SUPPORT_NUBERT_PROTOCOL == 1\r
+ // if NUBERT protocol and the code will be repeated within 50 ms, we will ignore it.\r
+ if (irmp_param.protocol == IRMP_NUBERT_PROTOCOL && (repetition_frame_number & 0x01))\r
+ {\r
+ DEBUG_PRINTF ("code skipped: NUBERT auto repetition frame #%d, counter = %d, auto repetition len = %d\n",\r
+ repetition_frame_number + 1, repetition_counter, AUTO_REPETITION_LEN);\r