From e01ddcb8ad685759af1a15c96ea54716637450f3 Mon Sep 17 00:00:00 2001 From: fvanroie Date: Thu, 5 Aug 2021 23:47:50 +0200 Subject: [PATCH] Fix MacOS X compiler issues --- src/dev/posix/hasp_posix.cpp | 35 ++++++++++++++++++++ user_setups/darwin_sdl/darwin_sdl_64bits.ini | 6 ++++ 2 files changed, 41 insertions(+) diff --git a/src/dev/posix/hasp_posix.cpp b/src/dev/posix/hasp_posix.cpp index 5dacd16e..5f8b56c1 100644 --- a/src/dev/posix/hasp_posix.cpp +++ b/src/dev/posix/hasp_posix.cpp @@ -5,7 +5,14 @@ #include #include +#ifndef TARGET_OS_MAC #include // uptime +#else +#include // for all examples :) +#include +#include +#include +#endif #include "hasp_posix.h" @@ -139,16 +146,24 @@ void PosixDevice::update_backlight() size_t PosixDevice::get_free_max_block() { +#ifndef TARGET_OS_MAC struct sysinfo s_info; if(sysinfo(&s_info) < 0) return 0; return s_info.freeram; +#else + return 0; +#endif } size_t PosixDevice::get_free_heap(void) { +#ifndef TARGET_OS_MAC struct sysinfo s_info; if(sysinfo(&s_info) < 0) return 0; return s_info.freeram; +#else + return 0; +#endif } uint8_t PosixDevice::get_heap_fragmentation() @@ -166,12 +181,32 @@ bool PosixDevice::is_system_pin(uint8_t pin) return false; } +#ifndef TARGET_OS_MAC long PosixDevice::get_uptime() { struct sysinfo s_info; if(sysinfo(&s_info) < 0) return 0; return s_info.uptime; } +#else +long PosixDevice::get_uptime() +{ + using namespace std::chrono; + timeval ts; + auto ts_len = sizeof(ts); + int mib[2] = {CTL_KERN, KERN_BOOTTIME}; + auto constexpr mib_len = sizeof(mib) / sizeof(mib[0]); + std::chrono::seconds sec; + if(sysctl(mib, mib_len, &ts, &ts_len, nullptr, 0) == 0) { + system_clock::time_point boot{seconds{ts.tv_sec} + microseconds{ts.tv_usec}}; + sec = duration_cast(system_clock::now() - boot); + } else { + sec = 0s; + } + return (long)sec.count(); +} + +#endif } // namespace dev diff --git a/user_setups/darwin_sdl/darwin_sdl_64bits.ini b/user_setups/darwin_sdl/darwin_sdl_64bits.ini index 5bae4ee8..9b76a713 100644 --- a/user_setups/darwin_sdl/darwin_sdl_64bits.ini +++ b/user_setups/darwin_sdl/darwin_sdl_64bits.ini @@ -29,6 +29,10 @@ build_flags = -D HASP_USE_GPIO=1 -D HASP_USE_CONFIG=0 ; Standalone application, as library -D HASP_USE_DEBUG=1 + -D HASP_USE_PNGDECODE=1 + -D HASP_USE_BMPDECODE=0 + -D HASP_USE_GIFDECODE=0 + -D HASP_USE_JPGDECODE=0 -D HASP_USE_MQTT=1 -D MQTT_MAX_PACKET_SIZE=2048 -D HASP_ATTRIBUTE_FAST_MEM= @@ -66,6 +70,7 @@ lib_deps = https://github.com/eclipse/paho.mqtt.c.git bblanchon/ArduinoJson@^6.17.2 ; Json(l) parser https://github.com/fvanroie/lv_drivers + git+https://github.com/lvgl/lv_lib_png.git#release/v7 lib_ignore = paho @@ -78,6 +83,7 @@ src_filter = +<../hal/sdl2> +<../.pio/libdeps/darwin_sdl_64bits/paho/src/*.c> +<../.pio/libdeps/darwin_sdl_64bits/paho/src/MQTTClient.c> + +<../.pio/libdeps/darwin_sdl_64bits/paho/src/MQTTClient.h> -<../.pio/libdeps/darwin_sdl_64bits/paho/src/MQTTAsync.c> -<../.pio/libdeps/darwin_sdl_64bits/paho/src/MQTTAsyncUtils.c> -<../.pio/libdeps/darwin_sdl_64bits/paho/src/MQTTVersion.c>