Files
Jungfraujoch/xds-plugin/plugin.h
T

47 lines
1.3 KiB
C

// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
// 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 1
#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