Cleanup main.h header
[geeqie.git] / src / zonedetect.h
index 4be5367..fd7d6ca 100644 (file)
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <stdint.h>
+#include <cstddef>
+#include <cstdint>
 
-#ifndef _ZONEDETECT_H_
-#define _ZONEDETECT_H_
+#ifndef INCL_ZONEDETECT_H_
+#define INCL_ZONEDETECT_H_
 
-typedef enum {
+#if !defined(ZD_EXPORT)
+#if defined(_MSC_VER)
+#define ZD_EXPORT __declspec(dllimport)
+#else
+#define ZD_EXPORT
+#endif
+#endif
+
+enum ZDLookupResult {
     ZD_LOOKUP_IGNORE = -3,
     ZD_LOOKUP_END = -2,
     ZD_LOOKUP_PARSE_ERROR = -1,
@@ -39,36 +48,44 @@ typedef enum {
     ZD_LOOKUP_IN_EXCLUDED_ZONE = 2,
     ZD_LOOKUP_ON_BORDER_VERTEX = 3,
     ZD_LOOKUP_ON_BORDER_SEGMENT = 4
-} ZDLookupResult;
+};
 
-typedef struct {
+struct ZoneDetectResult {
     ZDLookupResult lookupResult;
 
+    uint32_t polygonId;
     uint32_t metaId;
     uint8_t numFields;
-    char** fieldNames;
-    char** data;
-} ZoneDetectResult;
+    char **fieldNames;
+    char **data;
+};
 
-struct ZoneDetectOpaque;
-typedef struct ZoneDetectOpaque ZoneDetect;
+struct ZoneDetect;
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-ZoneDetect* ZDOpenDatabase(const char* path);
-void        ZDCloseDatabase(ZoneDetect* library);
+ZD_EXPORT ZoneDetect *ZDOpenDatabase(const char *path);
+ZD_EXPORT ZoneDetect *ZDOpenDatabaseFromMemory(void* buffer, size_t length);
+ZD_EXPORT void        ZDCloseDatabase(ZoneDetect *library);
+
+ZD_EXPORT ZoneDetectResult *ZDLookup(const ZoneDetect *library, float lat, float lon, float *safezone);
+ZD_EXPORT void              ZDFreeResults(ZoneDetectResult *results);
 
-ZoneDetectResult* ZDLookup(ZoneDetect* library, float lat, float lon, float* safezone);
-void              ZDFreeResults(ZoneDetectResult* results);
+ZD_EXPORT const char *ZDGetNotice(const ZoneDetect *library);
+ZD_EXPORT uint8_t     ZDGetTableType(const ZoneDetect *library);
+ZD_EXPORT const char *ZDLookupResultToString(ZDLookupResult result);
 
-const char* ZDGetNotice(ZoneDetect* library);
-uint8_t     ZDGetTableType(ZoneDetect* library);
-const char* ZDLookupResultToString(ZDLookupResult result);
+ZD_EXPORT int         ZDSetErrorHandler(void (*handler)(int, int));
+ZD_EXPORT const char *ZDGetErrorString(int errZD);
+
+ZD_EXPORT float* ZDPolygonToList(const ZoneDetect *library, uint32_t polygonId, size_t* length);
+
+ZD_EXPORT char* ZDHelperSimpleLookupString(const ZoneDetect* library, float lat, float lon);
 
 #ifdef __cplusplus
 }
 #endif
 
-#endif
+#endif // INCL_ZONEDETECT_H_