libcamera-sys 0.7.0

Low-level unsafe bindings to libcamera
#ifndef __LIBCAMERA_C_TRANSFORM__
#define __LIBCAMERA_C_TRANSFORM__

#include <stdbool.h>
#include <stdint.h>

#include "camera.h"

struct libcamera_transform {
    uint32_t value;
};

typedef struct libcamera_transform libcamera_transform_t;

#ifdef __cplusplus
#include "camera.h"
#include <libcamera/transform.h>

static_assert(sizeof(libcamera_transform_t) == sizeof(libcamera::Transform));
static_assert(alignof(libcamera_transform_t) == alignof(libcamera::Transform));

extern "C" {
#endif

libcamera_transform_t libcamera_transform_identity();
libcamera_transform_t libcamera_transform_from_rotation(int angle, bool hflip, bool *success);
libcamera_transform_t libcamera_transform_inverse(libcamera_transform_t transform);
libcamera_transform_t libcamera_transform_combine(libcamera_transform_t a, libcamera_transform_t b);
char *libcamera_transform_to_string(libcamera_transform_t transform);
libcamera_transform_t libcamera_transform_between_orientations(libcamera_orientation_t from, libcamera_orientation_t to);
libcamera_orientation_t libcamera_transform_apply_orientation(libcamera_orientation_t orientation, libcamera_transform_t transform);
libcamera_orientation_t libcamera_orientation_from_rotation(int angle, bool *success);
libcamera_transform_t libcamera_transform_hflip();
libcamera_transform_t libcamera_transform_vflip();
libcamera_transform_t libcamera_transform_transpose();
libcamera_transform_t libcamera_transform_or(libcamera_transform_t a, libcamera_transform_t b);
libcamera_transform_t libcamera_transform_and(libcamera_transform_t a, libcamera_transform_t b);
libcamera_transform_t libcamera_transform_xor(libcamera_transform_t a, libcamera_transform_t b);
libcamera_transform_t libcamera_transform_not(libcamera_transform_t t);

#ifdef __cplusplus
}
#endif

#endif