From c4cfaa562eb242f86751a82efc1c10198f99b14f Mon Sep 17 00:00:00 2001 From: Ondrej Grover Date: Thu, 4 Jun 2020 09:06:05 +0200 Subject: [PATCH 1/3] use explicit pointer type as variadic argument instead of casting the workaround with type casting from int does not work on newer systems --- src/libexf1.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libexf1.cpp b/src/libexf1.cpp index f9b845a..c84a300 100644 --- a/src/libexf1.cpp +++ b/src/libexf1.cpp @@ -161,7 +161,7 @@ void libexf1::exf1Cmd(WORD cmd, ...) case CMD_GET_OBJECT: wordVal = va_arg(ap, int); // File/memory destination. dwordVal = va_arg(ap, int); // objectHandle - pString = (char *) va_arg(ap, int); // + pString = va_arg(ap, char *); // switch (wordVal) { case TO_FILE: @@ -170,7 +170,7 @@ void libexf1::exf1Cmd(WORD cmd, ...) usbRx(); break; case TO_MEM: - pInt = (int *) va_arg(ap, int); // + pInt = va_arg(ap, int *); // do { usbTx(cmd, TYPE_CMD, sizeof(DWORD), dwordVal, 0); usbRxToMem(pString, pInt); From 57b2ea5dd0f3cc20e3dd25112748ac3a64c42156 Mon Sep 17 00:00:00 2001 From: Ondrej Grover Date: Thu, 4 Jun 2020 09:10:20 +0200 Subject: [PATCH 2/3] replace deprecated gets with fgets The C standard (2011) does not include gets anymore. --- src/exf1ctrl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/exf1ctrl.cpp b/src/exf1ctrl.cpp index 4a4a2fd..f63b51f 100644 --- a/src/exf1ctrl.cpp +++ b/src/exf1ctrl.cpp @@ -117,7 +117,7 @@ int main(int argc, char** argv) { printf("> "); - gets(input); + fgets(input, 64, stdin); sscanf(input, "%c", &com); switch (com) { From e67cec51000d3e3086d64a16f9dae0652737504a Mon Sep 17 00:00:00 2001 From: Ondrej Grover Date: Thu, 4 Jun 2020 09:45:58 +0200 Subject: [PATCH 3/3] make the OpenCV part of the API optional this removes the large OpenCV dependency for simpler applications like exf1ctrl, and therefore, simplifies the installation and usage of the library The OpenCV API is enabled by defining EXF1API_WITH_OPENCV as done in the exf1Opencv example --- src/exf1Opencv.h | 1 + src/exf1api.cpp | 2 ++ src/exf1api.h | 8 ++++++-- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/exf1Opencv.h b/src/exf1Opencv.h index 774fd01..7641910 100644 --- a/src/exf1Opencv.h +++ b/src/exf1Opencv.h @@ -1,3 +1,4 @@ +#define EXF1API_WITH_OPENCV #include "exf1api.h" #include diff --git a/src/exf1api.cpp b/src/exf1api.cpp index e7a00f7..35fc9b6 100644 --- a/src/exf1api.cpp +++ b/src/exf1api.cpp @@ -341,6 +341,7 @@ static const char * const cdjpeg_message_table[] = { NULL }; +#ifdef EXF1API_WITH_OPENCV void exf1api::getCameraFrame(IplImage* frame) { char jpgImage[3*IMG_BUF_SIZE]; @@ -392,6 +393,7 @@ void exf1api::getCameraFrame(IplImage* frame) else printf("JPG size is negative!\n"); } +#endif // EXF1API_WITH_OPENCV void exf1api::terminateCamera(void) { diff --git a/src/exf1api.h b/src/exf1api.h index bb23e66..1e19a87 100644 --- a/src/exf1api.h +++ b/src/exf1api.h @@ -9,10 +9,12 @@ #define EXF1API_H #include "libexf1.h" +#ifdef EXF1API_WITH_OPENCV #define CV_NO_BACKWARD_COMPATIBILITY #include -#include #include +#endif // EXF1API_WITH_OPENCV +#include //#include #define JMESSAGE(code,string) string , @@ -57,7 +59,9 @@ class exf1api { void focus(char focusIn, char continousFocus); int grapPcMonitorFrame(const char *jpgImage); - void getCameraFrame(IplImage* frame); +#ifdef EXF1API_WITH_OPENCV + void getCameraFrame(IplImage* frame); +#endif void exitCamera(void); libexf1 lib;