C

Qt Safe Monitor: Qt Quick Ultralite Example on Bare-Metal Traveo II

// Copyright (C) 2025 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial
#ifndef DEMOSTATUS_H
#define DEMOSTATUS_H

#ifdef __cplusplus
#include <qul/eventqueue.h>
#include <qul/property.h>
#include <qul/singleton.h>
#include <QtSafeRenderer/qsafeglobal.h>
#else
#include <stdbool.h>
#endif

#ifdef __cplusplus
struct DemoStatus : public Qul::Singleton<DemoStatus>, public Qul::EventQueue<bool>
{
    void onEvent(const bool &value)
    {
        // Dummy event queue to trigger UI updates
        (void) value;
    }

    Qul::Property<SafeRenderer::qint> speed;
    Qul::Signal<void(bool beamsState)> beamsStateChange;
    Qul::Signal<void(bool engineState)> engineStateChange;
    Qul::Signal<void(bool batteryState)> batteryStateChange;
    Qul::Signal<void(bool oilState)> oilStateChange;
    Qul::Signal<void(bool screenFailureState)> screenFailureStateChange;
};
extern "C" {
#endif

void qul_application_set_speed(SafeRenderer::qint speed);
void qul_application_set_safe_beams_state(bool state);
void qul_application_set_safe_engine_state(bool state);
void qul_application_set_safe_battery_state(bool state);
void qul_application_set_safe_oil_state(bool state);
void qul_application_set_screen_failure_state(bool state);
void qul_application_send_value_change_event(void);

#ifdef __cplusplus
}
#endif

#endif // DEMOSTATUS_H