euroscope-sys 0.0.1

Raw FFI bindings and C++ glue shim for the EuroScope plugin SDK
// Rust -> EuroScope wrappers for CController.

#include "common.h"

extern "C" bool es_controller_is_valid(void* h)
{
    return ES_AS(CController, h)->IsValid();
}

extern "C" const char* es_controller_callsign(void* h)
{
    return ES_AS(CController, h)->GetCallsign();
}

extern "C" const char* es_controller_position_id(void* h)
{
    return ES_AS(CController, h)->GetPositionId();
}

extern "C" bool es_controller_position_identified(void* h)
{
    return ES_AS(CController, h)->GetPositionIdentified();
}

extern "C" double es_controller_primary_frequency(void* h)
{
    return ES_AS(CController, h)->GetPrimaryFrequency();
}

extern "C" const char* es_controller_full_name(void* h)
{
    return ES_AS(CController, h)->GetFullName();
}

extern "C" int es_controller_rating(void* h)
{
    return ES_AS(CController, h)->GetRating();
}

extern "C" int es_controller_facility(void* h)
{
    return ES_AS(CController, h)->GetFacility();
}

extern "C" const char* es_controller_sector_file_name(void* h)
{
    return ES_AS(CController, h)->GetSectorFileName();
}

extern "C" bool es_controller_is_controller(void* h)
{
    return ES_AS(CController, h)->IsController();
}

extern "C" void es_controller_position(void* h, double* lat, double* lon)
{
    CPosition p = ES_AS(CController, h)->GetPosition();
    *lat = p.m_Latitude;
    *lon = p.m_Longitude;
}

extern "C" int es_controller_range(void* h)
{
    return ES_AS(CController, h)->GetRange();
}

extern "C" bool es_controller_is_breaking(void* h)
{
    return ES_AS(CController, h)->IsBreaking();
}

extern "C" bool es_controller_is_ongoing_able(void* h)
{
    return ES_AS(CController, h)->IsOngoingAble();
}