euroscope-sys 0.0.1

Raw FFI bindings and C++ glue shim for the EuroScope plugin SDK
//! `CFlightPlanPositionPredictions` FFI declarations.
//!
//! This is a sub-object of `CFlightPlan`; the handle argument is the owning
//! `CFlightPlan*`, from which the shim derives the prediction array.

use std::ffi::{c_char, c_int};

use crate::FlightPlanPtr;

unsafe extern "C" {
    /// `GetPointsNumber` — number of points in the prediction array.
    pub fn es_positionpredictions_points_number(h: FlightPlanPtr) -> c_int;

    /// `GetPosition(Index)` — predicted position `Index` minutes from now,
    /// returned via `lat`/`lon` out-params.
    pub fn es_positionpredictions_position(
        h: FlightPlanPtr,
        index: c_int,
        lat: *mut f64,
        lon: *mut f64,
    );

    /// `GetAltitude(Index)` — predicted altitude/level `Index` minutes from now
    /// (no ALT/FL conversion).
    pub fn es_positionpredictions_altitude(h: FlightPlanPtr, index: c_int) -> c_int;

    /// `GetControllerId(Index)` — position ID of the predicted controller
    /// `Index` minutes from now. Borrowed, NUL-terminated, ANSI.
    pub fn es_positionpredictions_controller_id(h: FlightPlanPtr, index: c_int) -> *const c_char;
}