47 lines
1.3 KiB
C
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
|