/*---------------------------------------------------------------------------------------------------------------------------------------------------\r
* irmpsystem.h - system specific includes and defines\r
*\r
- * Copyright (c) 2009-2015 Frank Meyer - frank(at)fli4l.de\r
+ * Copyright (c) 2009-2016 Frank Meyer - frank(at)fli4l.de\r
*\r
- * $Id: irmpsystem.h,v 1.20 2015/11/17 13:51:45 fm Exp $\r
+ * $Id: irmpsystem.h,v 1.25 2016/12/19 09:01:41 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
#elif defined(TARGET_IS_BLIZZARD_RA2) // TI Stellaris (tested on Stellaris Launchpad with Code Composer Studio)\r
# define STELLARIS_ARM_CORTEX_M4\r
# define F_CPU (SysCtlClockGet())\r
-#elif defined(__xtensa__)\r
+#elif defined(__xtensa__) // ESP8266 (Arduino)\r
+# include "Arduino.h"\r
# include "ets_sys.h"\r
# include "osapi.h"\r
# include "gpio.h"\r
# include "os_type.h"\r
-# include "c_types.h" \r
+# include "c_types.h"\r
# define uint_fast8_t uint8_t\r
# define uint_fast16_t uint16_t\r
#elif defined(TEENSYDUINO) && (defined(__MK20DX256__) || defined(__MK20DX128__)) // Teensy 3.x (tested on Teensy 3.1 in Arduino 1.6.5 / Teensyduino 1.2.5)\r
# define TEENSY_ARM_CORTEX_M4\r
#elif defined(unix) || defined(WIN32) || defined(__APPLE__) // Unix/Linux or Windows or Apple\r
# define UNIX_OR_WINDOWS\r
+#elif defined(__MBED__) // mbed platform\r
+// #include "mbed.h" // if mbed.h is used, source must be compiled as cpp\r
+#include "gpio_api.h"\r
#else\r
# define ATMEL_AVR // ATMEL AVR\r
#endif\r
# define PROGMEM\r
# define memcpy_P memcpy\r
\r
+#elif defined(__xtensa__)\r
+# define PROGMEM\r
+# define memcpy_P memcpy\r
+\r
+#elif defined(__MBED__)\r
+# define PROGMEM\r
+# define memcpy_P memcpy\r
+\r
#else\r
# define PROGMEM\r
# define memcpy_P memcpy\r
#if defined(PIC_CCS) || defined(PIC_C18) || defined(ARM_STM32) || defined(STELLARIS_ARM_CORTEX_M4)\r
typedef unsigned char uint8_t;\r
typedef unsigned short uint16_t;\r
+typedef unsigned char uint_fast8_t;\r
+typedef unsigned short uint_fast16_t;\r
#endif\r
\r
#if defined (PIC_C18) // PIC C18 or XC8 compiler\r
# define FALSE 0\r
#endif\r
\r
-typedef struct __attribute__ ((__packed__))\r
+#if defined(PIC_C18)\r
+#define IRMP_PACKED_STRUCT\r
+#else\r
+#define IRMP_PACKED_STRUCT __attribute__ ((__packed__))\r
+#endif\r
+\r
+typedef struct IRMP_PACKED_STRUCT\r
{\r
- uint8_t protocol; // protocol, e.g. NEC_PROTOCOL\r
+ uint8_t protocol; // protocol, e.g. NEC_PROTOCOL\r
uint16_t address; // address\r
uint16_t command; // command\r
uint8_t flags; // flags, e.g. repetition\r