]> cloudbase.mooo.com Git - irmp.git/commitdiff
Version 2.5.0: added SPEAKER protocol (IRMP)
authorukw <ukw@aeb2e35e-bfc4-4214-b83c-9e8de998ed28>
Fri, 30 May 2014 12:53:06 +0000 (12:53 +0000)
committerukw <ukw@aeb2e35e-bfc4-4214-b83c-9e8de998ed28>
Fri, 30 May 2014 12:53:06 +0000 (12:53 +0000)
git-svn-id: svn://mikrocontroller.net/irmp@123 aeb2e35e-bfc4-4214-b83c-9e8de998ed28

README.txt
irmp.c
irmpconfig.h
irmpprotocols.h
irsndconfig.h
makefile.lnx

index 3e87033e4b7f6e9b59de104094b2b31049ad8d7f..114818abd44e35c6fd1658eee4ce566acf4647e4 100644 (file)
@@ -1,8 +1,8 @@
 IRMP - Infrared Multi Protocol Decoder\r
 --------------------------------------\r
 \r
-Version IRMP:  2.4.1 30.05.2014\r
-Version IRSND: 2.4.1 30.05.2014\r
+Version IRMP:  2.5.0 30.05.2014\r
+Version IRSND: 2.5.0 30.05.2014\r
 \r
 Dokumentation:\r
  \r
diff --git a/irmp.c b/irmp.c
index d98cb34bc980074bc038c2661a4611c67a91231c..371e94ec00f01efefca5391bdc8457643d954c9f 100644 (file)
--- a/irmp.c
+++ b/irmp.c
@@ -3,7 +3,7 @@
  *\r
  * Copyright (c) 2009-2013 Frank Meyer - frank(at)fli4l.de\r
  *\r
- * $Id: irmp.c,v 1.146 2014/05/19 18:55:43 fm Exp $\r
+ * $Id: irmp.c,v 1.148 2014/05/30 12:48:54 fm Exp $\r
  *\r
  * ATMEGA88 @ 8 MHz\r
  *\r
 #define NUBERT_0_PAUSE_LEN_MIN                  ((uint8_t)(F_INTERRUPTS * NUBERT_0_PAUSE_TIME * MIN_TOLERANCE_20 + 0.5) - 1)\r
 #define NUBERT_0_PAUSE_LEN_MAX                  ((uint8_t)(F_INTERRUPTS * NUBERT_0_PAUSE_TIME * MAX_TOLERANCE_20 + 0.5) + 1)\r
 \r
+#define SPEAKER_START_BIT_PULSE_LEN_MIN          ((uint8_t)(F_INTERRUPTS * SPEAKER_START_BIT_PULSE_TIME * MIN_TOLERANCE_20 + 0.5) - 1)\r
+#define SPEAKER_START_BIT_PULSE_LEN_MAX          ((uint8_t)(F_INTERRUPTS * SPEAKER_START_BIT_PULSE_TIME * MAX_TOLERANCE_20 + 0.5) + 1)\r
+#define SPEAKER_START_BIT_PAUSE_LEN_MIN          ((uint8_t)(F_INTERRUPTS * SPEAKER_START_BIT_PAUSE_TIME * MIN_TOLERANCE_20 + 0.5) - 1)\r
+#define SPEAKER_START_BIT_PAUSE_LEN_MAX          ((uint8_t)(F_INTERRUPTS * SPEAKER_START_BIT_PAUSE_TIME * MAX_TOLERANCE_20 + 0.5) + 1)\r
+#define SPEAKER_1_PULSE_LEN_MIN                  ((uint8_t)(F_INTERRUPTS * SPEAKER_1_PULSE_TIME * MIN_TOLERANCE_20 + 0.5) - 1)\r
+#define SPEAKER_1_PULSE_LEN_MAX                  ((uint8_t)(F_INTERRUPTS * SPEAKER_1_PULSE_TIME * MAX_TOLERANCE_20 + 0.5) + 1)\r
+#define SPEAKER_1_PAUSE_LEN_MIN                  ((uint8_t)(F_INTERRUPTS * SPEAKER_1_PAUSE_TIME * MIN_TOLERANCE_20 + 0.5) - 1)\r
+#define SPEAKER_1_PAUSE_LEN_MAX                  ((uint8_t)(F_INTERRUPTS * SPEAKER_1_PAUSE_TIME * MAX_TOLERANCE_20 + 0.5) + 1)\r
+#define SPEAKER_0_PULSE_LEN_MIN                  ((uint8_t)(F_INTERRUPTS * SPEAKER_0_PULSE_TIME * MIN_TOLERANCE_20 + 0.5) - 1)\r
+#define SPEAKER_0_PULSE_LEN_MAX                  ((uint8_t)(F_INTERRUPTS * SPEAKER_0_PULSE_TIME * MAX_TOLERANCE_20 + 0.5) + 1)\r
+#define SPEAKER_0_PAUSE_LEN_MIN                  ((uint8_t)(F_INTERRUPTS * SPEAKER_0_PAUSE_TIME * MIN_TOLERANCE_20 + 0.5) - 1)\r
+#define SPEAKER_0_PAUSE_LEN_MAX                  ((uint8_t)(F_INTERRUPTS * SPEAKER_0_PAUSE_TIME * MAX_TOLERANCE_20 + 0.5) + 1)\r
+\r
 #define BANG_OLUFSEN_START_BIT1_PULSE_LEN_MIN   ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT1_PULSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1)\r
 #define BANG_OLUFSEN_START_BIT1_PULSE_LEN_MAX   ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT1_PULSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1)\r
 #define BANG_OLUFSEN_START_BIT1_PAUSE_LEN_MIN   ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT1_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1)\r
@@ -523,6 +536,7 @@ irmp_protocol_names[IRMP_N_PROTOCOLS + 1] =
     "RCMM32",\r
     "RCMM24",\r
     "RCMM12",\r
+    "SPEAKER",\r
     "RADIO1"\r
 };\r
 \r
@@ -1179,6 +1193,31 @@ static const PROGMEM IRMP_PARAMETER nubert_param =
 \r
 #endif\r
 \r
+#if IRMP_SUPPORT_SPEAKER_PROTOCOL == 1\r
+\r
+static const PROGMEM IRMP_PARAMETER speaker_param =\r
+{\r
+    IRMP_SPEAKER_PROTOCOL,                                              // protocol:        ir protocol\r
+    SPEAKER_1_PULSE_LEN_MIN,                                            // pulse_1_len_min: minimum length of pulse with bit value 1\r
+    SPEAKER_1_PULSE_LEN_MAX,                                            // pulse_1_len_max: maximum length of pulse with bit value 1\r
+    SPEAKER_1_PAUSE_LEN_MIN,                                            // pause_1_len_min: minimum length of pause with bit value 1\r
+    SPEAKER_1_PAUSE_LEN_MAX,                                            // pause_1_len_max: maximum length of pause with bit value 1\r
+    SPEAKER_0_PULSE_LEN_MIN,                                            // pulse_0_len_min: minimum length of pulse with bit value 0\r
+    SPEAKER_0_PULSE_LEN_MAX,                                            // pulse_0_len_max: maximum length of pulse with bit value 0\r
+    SPEAKER_0_PAUSE_LEN_MIN,                                            // pause_0_len_min: minimum length of pause with bit value 0\r
+    SPEAKER_0_PAUSE_LEN_MAX,                                            // pause_0_len_max: maximum length of pause with bit value 0\r
+    SPEAKER_ADDRESS_OFFSET,                                             // address_offset:  address offset\r
+    SPEAKER_ADDRESS_OFFSET + SPEAKER_ADDRESS_LEN,                       // address_end:     end of address\r
+    SPEAKER_COMMAND_OFFSET,                                             // command_offset:  command offset\r
+    SPEAKER_COMMAND_OFFSET + SPEAKER_COMMAND_LEN,                       // command_end:     end of command\r
+    SPEAKER_COMPLETE_DATA_LEN,                                          // complete_len:    complete length of frame\r
+    SPEAKER_STOP_BIT,                                                   // stop_bit:        flag: frame has stop bit\r
+    SPEAKER_LSB,                                                        // lsb_first:       flag: LSB first\r
+    SPEAKER_FLAGS                                                       // flags:           some flags\r
+};\r
+\r
+#endif\r
+\r
 #if IRMP_SUPPORT_BANG_OLUFSEN_PROTOCOL == 1\r
 \r
 static const PROGMEM IRMP_PARAMETER bang_olufsen_param =\r
@@ -2504,6 +2543,18 @@ irmp_ISR (void)
                     else\r
 #endif // IRMP_SUPPORT_NUBERT_PROTOCOL == 1\r
 \r
+#if IRMP_SUPPORT_SPEAKER_PROTOCOL == 1\r
+                    if (irmp_pulse_time >= SPEAKER_START_BIT_PULSE_LEN_MIN && irmp_pulse_time <= SPEAKER_START_BIT_PULSE_LEN_MAX &&\r
+                        irmp_pause_time >= SPEAKER_START_BIT_PAUSE_LEN_MIN && irmp_pause_time <= SPEAKER_START_BIT_PAUSE_LEN_MAX)\r
+                    {                                                           // it's SPEAKER\r
+                        ANALYZE_PRINTF ("protocol = SPEAKER, start bit timings: pulse: %3d - %3d, pause: %3d - %3d\n",\r
+                                        SPEAKER_START_BIT_PULSE_LEN_MIN, SPEAKER_START_BIT_PULSE_LEN_MAX,\r
+                                        SPEAKER_START_BIT_PAUSE_LEN_MIN, SPEAKER_START_BIT_PAUSE_LEN_MAX);\r
+                        irmp_param_p = (IRMP_PARAMETER *) &speaker_param;\r
+                    }\r
+                    else\r
+#endif // IRMP_SUPPORT_SPEAKER_PROTOCOL == 1\r
+\r
 #if IRMP_SUPPORT_BANG_OLUFSEN_PROTOCOL == 1\r
                     if (irmp_pulse_time >= BANG_OLUFSEN_START_BIT1_PULSE_LEN_MIN && irmp_pulse_time <= BANG_OLUFSEN_START_BIT1_PULSE_LEN_MAX &&\r
                         irmp_pause_time >= BANG_OLUFSEN_START_BIT1_PAUSE_LEN_MIN && irmp_pause_time <= BANG_OLUFSEN_START_BIT1_PAUSE_LEN_MAX)\r
@@ -3621,6 +3672,17 @@ irmp_ISR (void)
                 else\r
 #endif\r
 \r
+#if IRMP_SUPPORT_SPEAKER_PROTOCOL == 1\r
+                // if SPEAKER protocol and the code will be repeated within 50 ms, we will ignore every 2nd frame\r
+                if (irmp_param.protocol == IRMP_SPEAKER_PROTOCOL && (repetition_frame_number & 0x01))\r
+                {\r
+                    ANALYZE_PRINTF ("code skipped: SPEAKER auto repetition frame #%d, counter = %d, auto repetition len = %d\n",\r
+                                    repetition_frame_number + 1, key_repetition_len, AUTO_FRAME_REPETITION_LEN);\r
+                    key_repetition_len = 0;\r
+                }\r
+                else\r
+#endif\r
+\r
                 {\r
                     ANALYZE_PRINTF ("%8.3fms code detected, length = %d\n", (double) (time_counter * 1000) / F_INTERRUPTS, irmp_bit);\r
                     irmp_ir_detected = TRUE;\r
@@ -3925,6 +3987,11 @@ print_timings (void)
             NUBERT_0_PULSE_LEN_MIN, NUBERT_0_PULSE_LEN_MAX, NUBERT_0_PAUSE_LEN_MIN, NUBERT_0_PAUSE_LEN_MAX,\r
             NUBERT_1_PULSE_LEN_MIN, NUBERT_1_PULSE_LEN_MAX, NUBERT_1_PAUSE_LEN_MIN, NUBERT_1_PAUSE_LEN_MAX);\r
 \r
+    printf ("SPEAKER        1  %3d - %3d  %3d - %3d  %3d - %3d  %3d - %3d  %3d - %3d  %3d - %3d\n",\r
+            SPEAKER_START_BIT_PULSE_LEN_MIN, SPEAKER_START_BIT_PULSE_LEN_MAX, SPEAKER_START_BIT_PAUSE_LEN_MIN, SPEAKER_START_BIT_PAUSE_LEN_MAX,\r
+            SPEAKER_0_PULSE_LEN_MIN, SPEAKER_0_PULSE_LEN_MAX, SPEAKER_0_PAUSE_LEN_MIN, SPEAKER_0_PAUSE_LEN_MAX,\r
+            SPEAKER_1_PULSE_LEN_MIN, SPEAKER_1_PULSE_LEN_MAX, SPEAKER_1_PAUSE_LEN_MIN, SPEAKER_1_PAUSE_LEN_MAX);\r
+\r
     printf ("BANG_OLUFSEN   1  %3d - %3d  %3d - %3d\n",\r
             BANG_OLUFSEN_START_BIT1_PULSE_LEN_MIN, BANG_OLUFSEN_START_BIT1_PULSE_LEN_MAX,\r
             BANG_OLUFSEN_START_BIT1_PAUSE_LEN_MIN, BANG_OLUFSEN_START_BIT1_PAUSE_LEN_MAX);\r
index 69dd86894bf00dc277c62dae4d8e48bd2313cb58..edb0bc7a84ea1364556c30b41ac7204d957be777 100644 (file)
@@ -5,7 +5,7 @@
  *\r
  * Copyright (c) 2009-2013 Frank Meyer - frank(at)fli4l.de\r
  *\r
- * $Id: irmpconfig.h,v 1.105 2014/05/19 18:55:43 fm Exp $\r
+ * $Id: irmpconfig.h,v 1.106 2014/05/30 12:46:04 fm Exp $\r
  *\r
  * ATMEGA88 @ 8 MHz\r
  *\r
 \r
 // more protocols, enable here!                 Enable  Remarks                 F_INTERRUPTS            Program Space\r
 #define IRMP_SUPPORT_DENON_PROTOCOL             0       // DENON, Sharp         >= 10000                 ~250 bytes\r
-#define IRMP_SUPPORT_RC5_PROTOCOL               0       // RC5                  >= 10000                 ~250 bytes\r
-#define IRMP_SUPPORT_RC6_PROTOCOL               0       // RC6 & RC6A           >= 10000                 ~250 bytes\r
-#define IRMP_SUPPORT_JVC_PROTOCOL               0       // JVC                  >= 10000                 ~150 bytes\r
-#define IRMP_SUPPORT_NEC16_PROTOCOL             0       // NEC16                >= 10000                 ~100 bytes\r
-#define IRMP_SUPPORT_NEC42_PROTOCOL             0       // NEC42                >= 10000                 ~300 bytes\r
-#define IRMP_SUPPORT_IR60_PROTOCOL              0       // IR60 (SDA2008)       >= 10000                 ~300 bytes\r
-#define IRMP_SUPPORT_GRUNDIG_PROTOCOL           0       // Grundig              >= 10000                 ~300 bytes\r
-#define IRMP_SUPPORT_SIEMENS_PROTOCOL           0       // Siemens Gigaset      >= 15000                 ~550 bytes\r
-#define IRMP_SUPPORT_NOKIA_PROTOCOL             0       // Nokia                >= 10000                 ~300 bytes\r
+#define IRMP_SUPPORT_RC5_PROTOCOL               1       // RC5                  >= 10000                 ~250 bytes\r
+#define IRMP_SUPPORT_RC6_PROTOCOL               1       // RC6 & RC6A           >= 10000                 ~250 bytes\r
+#define IRMP_SUPPORT_JVC_PROTOCOL               1       // JVC                  >= 10000                 ~150 bytes\r
+#define IRMP_SUPPORT_NEC16_PROTOCOL             1       // NEC16                >= 10000                 ~100 bytes\r
+#define IRMP_SUPPORT_NEC42_PROTOCOL             1       // NEC42                >= 10000                 ~300 bytes\r
+#define IRMP_SUPPORT_IR60_PROTOCOL              1       // IR60 (SDA2008)       >= 10000                 ~300 bytes\r
+#define IRMP_SUPPORT_GRUNDIG_PROTOCOL           1       // Grundig              >= 10000                 ~300 bytes\r
+#define IRMP_SUPPORT_SIEMENS_PROTOCOL           1       // Siemens Gigaset      >= 15000                 ~550 bytes\r
+#define IRMP_SUPPORT_NOKIA_PROTOCOL             1       // Nokia                >= 10000                 ~300 bytes\r
 \r
 // exotic protocols, enable here!               Enable  Remarks                 F_INTERRUPTS            Program Space\r
-#define IRMP_SUPPORT_BOSE_PROTOCOL              0       // BOSE                 >= 10000                 ~150 bytes\r
-#define IRMP_SUPPORT_KATHREIN_PROTOCOL          0       // Kathrein             >= 10000                 ~200 bytes\r
-#define IRMP_SUPPORT_NUBERT_PROTOCOL            0       // NUBERT               >= 10000                  ~50 bytes\r
-#define IRMP_SUPPORT_BANG_OLUFSEN_PROTOCOL      0       // Bang & Olufsen       >= 10000                 ~200 bytes\r
-#define IRMP_SUPPORT_RECS80_PROTOCOL            0       // RECS80 (SAA3004)     >= 15000                  ~50 bytes\r
-#define IRMP_SUPPORT_RECS80EXT_PROTOCOL         0       // RECS80EXT (SAA3008)  >= 15000                  ~50 bytes\r
-#define IRMP_SUPPORT_THOMSON_PROTOCOL           0       // Thomson              >= 10000                 ~250 bytes\r
-#define IRMP_SUPPORT_NIKON_PROTOCOL             0       // NIKON camera         >= 10000                 ~250 bytes\r
-#define IRMP_SUPPORT_NETBOX_PROTOCOL            0       // Netbox keyboard      >= 10000                 ~400 bytes (PROTOTYPE!)\r
-#define IRMP_SUPPORT_ORTEK_PROTOCOL             0       // ORTEK (Hama)         >= 10000                 ~150 bytes\r
+#define IRMP_SUPPORT_BOSE_PROTOCOL              1       // BOSE                 >= 10000                 ~150 bytes\r
+#define IRMP_SUPPORT_KATHREIN_PROTOCOL          1       // Kathrein             >= 10000                 ~200 bytes\r
+#define IRMP_SUPPORT_NUBERT_PROTOCOL            1       // NUBERT               >= 10000                  ~50 bytes\r
+#define IRMP_SUPPORT_SPEAKER_PROTOCOL           1       // SPEAKER (~NUBERT)    >= 10000                  ~50 bytes\r
+#define IRMP_SUPPORT_BANG_OLUFSEN_PROTOCOL      1       // Bang & Olufsen       >= 10000                 ~200 bytes\r
+#define IRMP_SUPPORT_RECS80_PROTOCOL            1       // RECS80 (SAA3004)     >= 15000                  ~50 bytes\r
+#define IRMP_SUPPORT_RECS80EXT_PROTOCOL         1       // RECS80EXT (SAA3008)  >= 15000                  ~50 bytes\r
+#define IRMP_SUPPORT_THOMSON_PROTOCOL           1       // Thomson              >= 10000                 ~250 bytes\r
+#define IRMP_SUPPORT_NIKON_PROTOCOL             1       // NIKON camera         >= 10000                 ~250 bytes\r
+#define IRMP_SUPPORT_NETBOX_PROTOCOL            1       // Netbox keyboard      >= 10000                 ~400 bytes (PROTOTYPE!)\r
+#define IRMP_SUPPORT_ORTEK_PROTOCOL             1       // ORTEK (Hama)         >= 10000                 ~150 bytes\r
 #define IRMP_SUPPORT_TELEFUNKEN_PROTOCOL        0       // Telefunken 1560      >= 10000                 ~150 bytes\r
-#define IRMP_SUPPORT_FDC_PROTOCOL               0       // FDC3402 keyboard     >= 10000 (better 15000)  ~150 bytes (~400 in combination with RC5)\r
-#define IRMP_SUPPORT_RCCAR_PROTOCOL             0       // RC Car               >= 10000 (better 15000)  ~150 bytes (~500 in combination with RC5)\r
-#define IRMP_SUPPORT_ROOMBA_PROTOCOL            0       // iRobot Roomba        >= 10000                 ~150 bytes\r
-#define IRMP_SUPPORT_RUWIDO_PROTOCOL            0       // RUWIDO, T-Home       >= 15000                 ~550 bytes\r
-#define IRMP_SUPPORT_A1TVBOX_PROTOCOL           0       // A1 TV BOX            >= 15000 (better 20000)  ~300 bytes\r
-#define IRMP_SUPPORT_LEGO_PROTOCOL              0       // LEGO Power RC        >= 20000                 ~150 bytes\r
-#define IRMP_SUPPORT_RCMM_PROTOCOL              0       // RCMM 12,24, or 32    >= 20000                 ~150 bytes\r
-#define IRMP_SUPPORT_RADIO1_PROTOCOL            0       // RADIO, e.g. TEVION   >= 10000                 ~250 bytes\r
+#define IRMP_SUPPORT_FDC_PROTOCOL               1       // FDC3402 keyboard     >= 10000 (better 15000)  ~150 bytes (~400 in combination with RC5)\r
+#define IRMP_SUPPORT_RCCAR_PROTOCOL             1       // RC Car               >= 10000 (better 15000)  ~150 bytes (~500 in combination with RC5)\r
+#define IRMP_SUPPORT_ROOMBA_PROTOCOL            1       // iRobot Roomba        >= 10000                 ~150 bytes\r
+#define IRMP_SUPPORT_RUWIDO_PROTOCOL            1       // RUWIDO, T-Home       >= 15000                 ~550 bytes\r
+#define IRMP_SUPPORT_A1TVBOX_PROTOCOL           1       // A1 TV BOX            >= 15000 (better 20000)  ~300 bytes\r
+#define IRMP_SUPPORT_LEGO_PROTOCOL              1       // LEGO Power RC        >= 20000                 ~150 bytes\r
+#define IRMP_SUPPORT_RCMM_PROTOCOL              1       // RCMM 12,24, or 32    >= 20000                 ~150 bytes\r
+#define IRMP_SUPPORT_RADIO1_PROTOCOL            1       // RADIO, e.g. TEVION   >= 10000                 ~250 bytes\r
 \r
 /*---------------------------------------------------------------------------------------------------------------------------------------------------\r
  * Change hardware pin here for ATMEL AVR\r
index ab5e906c3059ba2b395df5a33cf23d1e7b17bacf..d029e3e2c9fc8832ec2629594f288635e70d8b06 100644 (file)
@@ -5,7 +5,7 @@
  *\r
  * Copyright (c) 2013 Frank Meyer - frank(at)fli4l.de\r
  *\r
- * $Id: irmpprotocols.h,v 1.20 2014/05/19 18:55:43 fm Exp $\r
+ * $Id: irmpprotocols.h,v 1.22 2014/05/30 12:48:54 fm Exp $\r
  *\r
  * This program is free software; you can redistribute it and/or modify\r
  * it under the terms of the GNU General Public License as published by\r
 #define IRMP_RCMM32_PROTOCOL                    36              // Fujitsu-Siemens (Activy remote control)\r
 #define IRMP_RCMM24_PROTOCOL                    37              // Fujitsu-Siemens (Activy keyboard)\r
 #define IRMP_RCMM12_PROTOCOL                    38              // Fujitsu-Siemens (Activy keyboard)\r
-#define IRMP_RADIO1_PROTOCOL                    39\r
+#define IRMP_SPEAKER_PROTOCOL                   39              // Another loudspeaker protocol, similar to Nubert\r
+#define IRMP_RADIO1_PROTOCOL                    40              // Radio protocol (devel status), do not use it yet!\r
 \r
-#define IRMP_N_PROTOCOLS                        39              // number of supported protocols\r
+#define IRMP_N_PROTOCOLS                        40              // number of supported protocols\r
 \r
 /*---------------------------------------------------------------------------------------------------------------------------------------------------\r
  * timing constants:\r
@@ -335,6 +336,28 @@ typedef uint8_t     PAUSE_LEN;
 #define NUBERT_LSB                              0                               // MSB?\r
 #define NUBERT_FLAGS                            0                               // flags\r
 \r
+/*---------------------------------------------------------------------------------------------------------------------------------------------------\r
+ * SPEAKER:\r
+ *---------------------------------------------------------------------------------------------------------------------------------------------------\r
+ */\r
+#define SPEAKER_START_BIT_PULSE_TIME             440.0e-6                       // 1340 usec pulse\r
+#define SPEAKER_START_BIT_PAUSE_TIME            1250.0e-6                       //  340 usec pause\r
+#define SPEAKER_1_PULSE_TIME                    1250.0e-6                       // 1340 usec pulse\r
+#define SPEAKER_1_PAUSE_TIME                     440.0e-6                       //  340 usec pause\r
+#define SPEAKER_0_PULSE_TIME                     440.0e-6                       //  500 usec pulse\r
+#define SPEAKER_0_PAUSE_TIME                    1250.0e-6                       // 1300 usec pause\r
+#define SPEAKER_FRAMES                          2                               // Nubert sends 2 frames\r
+#define SPEAKER_AUTO_REPETITION_PAUSE_TIME        35.0e-3                       // auto repetition after 35ms\r
+#define SPEAKER_FRAME_REPEAT_PAUSE_TIME           35.0e-3                       // frame repeat after 45ms\r
+#define SPEAKER_ADDRESS_OFFSET                  0                               // skip 0 bits\r
+#define SPEAKER_ADDRESS_LEN                     0                               // read 0 address bits\r
+#define SPEAKER_COMMAND_OFFSET                  0                               // skip 0 bits\r
+#define SPEAKER_COMMAND_LEN                     10                              // read 10 bits\r
+#define SPEAKER_COMPLETE_DATA_LEN               10                              // complete length\r
+#define SPEAKER_STOP_BIT                        1                               // has stop bit\r
+#define SPEAKER_LSB                             0                               // MSB?\r
+#define SPEAKER_FLAGS                           0                               // flags\r
+\r
 /*---------------------------------------------------------------------------------------------------------------------------------------------------\r
  * BANG_OLUFSEN:\r
  *---------------------------------------------------------------------------------------------------------------------------------------------------\r
index e5c63ded639d13f8ef27e30a9eaba8423b200c9d..9afe1417ed76b62a51d152072c65373da9228d50 100644 (file)
@@ -5,7 +5,7 @@
  *\r
  * Copyright (c) 2010-2013 Frank Meyer - frank(at)fli4l.de\r
  *\r
- * $Id: irsndconfig.h,v 1.52 2014/05/19 18:55:43 fm Exp $\r
+ * $Id: irsndconfig.h,v 1.54 2014/05/30 12:48:54 fm Exp $\r
  *\r
  * ATMEGA88 @ 8 MHz\r
  *\r
@@ -47,7 +47,7 @@
 #define IRSND_SUPPORT_KASEIKYO_PROTOCOL         1       // Kaseikyo             >= 10000                 ~300 bytes\r
 \r
 // more protocols, enable here!                 Enable  Remarks                 F_INTERRUPTS            Program Space\r
-#define IRSND_SUPPORT_DENON_PROTOCOL            0       // DENON, Sharp         >= 10000                 ~200 bytes\r
+#define IRSND_SUPPORT_DENON_PROTOCOL            1       // DENON, Sharp         >= 10000                 ~200 bytes\r
 #define IRSND_SUPPORT_RC5_PROTOCOL              0       // RC5                  >= 10000                 ~150 bytes\r
 #define IRSND_SUPPORT_RC6_PROTOCOL              0       // RC6                  >= 10000                 ~250 bytes\r
 #define IRSND_SUPPORT_RC6A_PROTOCOL             0       // RC6A                 >= 10000                 ~250 bytes\r
index c7bbc9fd3039c89a79895667e655eb5562f58016..d3b9b59276af19c9328fbec32963d563d3ffdeff 100644 (file)
@@ -18,6 +18,9 @@ all-irsnd:  irsnd-10kHz irsnd-15kHz irsnd-20kHz
 irmp-10kHz: irmp.c irmp.h irmpconfig.h irmpsystem.h irmpprotocols.h
        cc -Wall -DF_INTERRUPTS=10000 irmp.c -o irmp-10kHz
 
+irmp-11718Hz: irmp.c irmp.h irmpconfig.h irmpsystem.h irmpprotocols.h
+       cc -Wall -DF_INTERRUPTS=11718 irmp.c -o irmp-11718Hz
+
 irmp-15kHz: irmp.c irmp.h irmpconfig.h irmpsystem.h irmpprotocols.h
        cc -Wall -DF_INTERRUPTS=15000 irmp.c -o irmp-15kHz