X-Git-Url: https://sigrok.org/gitweb/?p=sigrok-util.git;a=blobdiff_plain;f=cross-compile%2Fandroid%2Fpulseview-cpp.patch;h=dd03e21d28ac60a543365d3e92900be3ae3d0b41;hp=14057048f9db9d3aceb37dc7b7ebf7f4c662fe0f;hb=3c45ba19ab7f102be9ca217a3b9288cfd908df37;hpb=bdf42f4b4dc9c46b1f8c9852694b43b5e9d52f7f diff --git a/cross-compile/android/pulseview-cpp.patch b/cross-compile/android/pulseview-cpp.patch index 1405704..dd03e21 100644 --- a/cross-compile/android/pulseview-cpp.patch +++ b/cross-compile/android/pulseview-cpp.patch @@ -1,11 +1,15 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 11767a6..b8eed96 100644 +index 3d63ecd..c386a60 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -317,12 +317,21 @@ if(WIN32) +@@ -333,12 +333,25 @@ if(WIN32) list(APPEND PULSEVIEW_LINK_LIBS "-lqsvg") endif() ++if(ANDROID) ++ list(APPEND PULSEVIEW_LINK_LIBS "-llog") ++endif() ++ +if(ANDROID) +add_library(${PROJECT_NAME} SHARED + ${pulseview_SOURCES} @@ -24,34 +28,25 @@ index 11767a6..b8eed96 100644 target_link_libraries(${PROJECT_NAME} ${PULSEVIEW_LINK_LIBS}) -diff --git a/pv/view/decodetrace.cpp b/pv/view/decodetrace.cpp -index e4f0276..861d25b 100644 ---- a/pv/view/decodetrace.cpp -+++ b/pv/view/decodetrace.cpp -@@ -373,7 +373,7 @@ void DecodeTrace::draw_instant(const pv::data::decode::Annotation &a, QPainter & - { - const QString text = a.annotations().empty() ? - QString() : a.annotations().back(); -- const double w = min(p.boundingRect(QRectF(), 0, text).width(), -+ const double w = min((double)p.boundingRect(QRectF(), 0, text).width(), - 0.0) + h; - const QRectF rect(x - w / 2, y - h / 2, w, h); - diff --git a/main.cpp b/main.cpp -index 2c6a59e..79627db 100644 ---- a/main.cpp 2014-04-26 23:40:24.253187700 +0200 -+++ b/main.cpp 2014-04-27 00:38:55.378353311 +0200 -@@ -20,6 +20,9 @@ +index 23f3f62..ea5e5e1 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -20,6 +20,13 @@ #ifdef ENABLE_DECODE #include /* First, so we avoid a _POSIX_C_SOURCE warning. */ +#ifdef ANDROID +#include +#endif ++#endif ++ ++#ifdef ANDROID ++#include #endif #include -@@ -45,6 +48,47 @@ +@@ -45,6 +52,112 @@ Q_IMPORT_PLUGIN(qsvg) #endif @@ -95,7 +90,86 @@ index 2c6a59e..79627db 100644 + (void)reserved; +} +#endif ++ ++#ifdef ANDROID ++extern "C" { ++static int sr_log_callback_android(void *cb_data, int loglevel, const char *format, va_list args) ++{ ++ static const int prio[] = { ++ [SR_LOG_NONE] = ANDROID_LOG_SILENT, ++ [SR_LOG_ERR] = ANDROID_LOG_ERROR, ++ [SR_LOG_WARN] = ANDROID_LOG_WARN, ++ [SR_LOG_INFO] = ANDROID_LOG_INFO, ++ [SR_LOG_DBG] = ANDROID_LOG_DEBUG, ++ [SR_LOG_SPEW] = ANDROID_LOG_VERBOSE, ++ }; ++ int ret; ++ ++ /* This specific log callback doesn't need the void pointer data. */ ++ (void)cb_data; ++ ++ /* Only output messages of at least the selected loglevel(s). */ ++ if (loglevel > sr_log_loglevel_get()) ++ return SR_OK; /* TODO? */ ++ ++ if (loglevel < SR_LOG_NONE) ++ loglevel = SR_LOG_NONE; ++ else if (loglevel > SR_LOG_SPEW) ++ loglevel = SR_LOG_SPEW; ++ ++ ret = __android_log_vprint(prio[loglevel], "sr", format, args); ++ ++ return ret; ++} ++ ++#ifdef ENABLE_DECODE ++static int srd_log_callback_android(void *cb_data, int loglevel, const char *format, ++ va_list args) ++{ ++ static const int prio[] = { ++ [SRD_LOG_NONE] = ANDROID_LOG_SILENT, ++ [SRD_LOG_ERR] = ANDROID_LOG_ERROR, ++ [SRD_LOG_WARN] = ANDROID_LOG_WARN, ++ [SRD_LOG_INFO] = ANDROID_LOG_INFO, ++ [SRD_LOG_DBG] = ANDROID_LOG_DEBUG, ++ [SRD_LOG_SPEW] = ANDROID_LOG_VERBOSE, ++ }; ++ int ret; ++ ++ /* This specific log callback doesn't need the void pointer data. */ ++ (void)cb_data; ++ ++ /* Only output messages of at least the selected loglevel(s). */ ++ if (loglevel > srd_log_loglevel_get()) ++ return SRD_OK; /* TODO? */ ++ ++ if (loglevel < SRD_LOG_NONE) ++ loglevel = SRD_LOG_NONE; ++ else if (loglevel > SRD_LOG_SPEW) ++ loglevel = SRD_LOG_SPEW; ++ ++ ret = __android_log_vprint(prio[loglevel], "srd", format, args); ++ ++ return ret; ++} ++#endif ++} ++#endif + void usage() { fprintf(stdout, +@@ -71,6 +184,13 @@ int main(int argc, char *argv[]) + QApplication::setApplicationName("PulseView"); + QApplication::setOrganizationDomain("sigrok.org"); + ++#ifdef ANDROID ++ sr_log_callback_set(sr_log_callback_android, NULL); ++#ifdef ENABLE_DECODE ++ srd_log_callback_set(srd_log_callback_android, NULL); ++#endif ++#endif ++ + // Parse arguments + while (1) { + static const struct option long_options[] = {