IRMP - Infrared Multi Protocol Decoder\r
--------------------------------------\r
\r
-Version IRMP: 3.0.4 2016-11-18\r
+Version IRMP: 3.0.5 2016-12-16\r
Version IRSND: 3.0.5 2016-11-18\r
\r
Documentation:\r
*\r
* Copyright (c) 2009-2016 Frank Meyer - frank(at)fli4l.de\r
*\r
- * $Id: irmp.c,v 1.188 2016/09/14 06:31:48 fm Exp $\r
+ * $Id: irmp.c,v 1.190 2016/12/16 09:18:11 fm Exp $\r
*\r
* Supported AVR mikrocontrollers:\r
*\r
{\r
irmp_bit++;\r
}\r
+#if IRMP_SUPPORT_NEC_PROTOCOL == 1\r
+ else if ((irmp_param.protocol == IRMP_NEC_PROTOCOL || irmp_param.protocol == IRMP_NEC42_PROTOCOL) && irmp_bit == 0)\r
+ { // it was a non-standard repetition frame\r
+#ifdef ANALYZE // with 4500µs pause instead of 2250µs\r
+ ANALYZE_PRINTF ("Detected non-standard repetition frame, switching to NEC repetition\n");\r
+#endif // ANALYZE\r
+ if (key_repetition_len < NEC_FRAME_REPEAT_PAUSE_LEN_MAX)\r
+ {\r
+ irmp_param.stop_bit = TRUE; // set flag\r
+ irmp_param.protocol = IRMP_NEC_PROTOCOL; // switch protocol\r
+ irmp_param.complete_len = irmp_bit; // patch length: 16 or 17\r
+ irmp_tmp_address = last_irmp_address; // address is last address\r
+ irmp_tmp_command = last_irmp_command; // command is last command\r
+ irmp_flags |= IRMP_FLAG_REPETITION;\r
+ key_repetition_len = 0;\r
+ }\r
+ else\r
+ {\r
+#ifdef ANALYZE\r
+ ANALYZE_PRINTF ("ignoring NEC repetition frame: timeout occured, key_repetition_len = %d > %d\n",\r
+ key_repetition_len, NEC_FRAME_REPEAT_PAUSE_LEN_MAX);\r
+#endif // ANALYZE\r
+ irmp_ir_detected = FALSE;\r
+ }\r
+ }\r
+#endif // IRMP_SUPPORT_NEC_PROTOCOL == 1\r
#if IRMP_SUPPORT_JVC_PROTOCOL == 1\r
else if (irmp_param.protocol == IRMP_NEC_PROTOCOL && (irmp_bit == 16 || irmp_bit == 17)) // it was a JVC stop bit\r
{\r