// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only // Based on Durin plugin code from Diamond Light Source Ltd. and Global Phasing (BSD-3 license) /* * External library interface for XDS. * Ref: https://wiki.uni-konstanz.de/xds/index.php/LIB */ #pragma once #if defined(_WIN32) #if defined(jfjoch_xds_plugin_EXPORTS) #define XDS_PLUGIN_API __declspec(dllexport) #else #define XDS_PLUGIN_API __declspec(dllimport) #endif #elif defined(__GNUC__) || defined(__clang__) #define XDS_PLUGIN_API __attribute__((visibility("default"))) #else #define XDS_PLUGIN_API #endif #ifdef __cplusplus extern "C" { #endif #define VERSION_MAJOR 0 #define VERSION_MINOR 0 #define VERSION_PATCH 0 #define VERSION_TIMESTAMP -1 /* good enough for Dectris apparantely */ XDS_PLUGIN_API void plugin_open(const char *filename, int info[1024], int *error_flag); XDS_PLUGIN_API void plugin_get_header(int *nx, int *ny, int *nbytes, float *qx, float *qy, int *number_of_frames, int info[1024], int *error_flag); XDS_PLUGIN_API void plugin_get_data(int *frame_number, int *nx, int *ny, int *data_array, int info[1024], int *error_flag); XDS_PLUGIN_API void plugin_close(int *error_flag); #ifdef __cplusplus } /* extern "C" */ #endif