C

Qt Quick Ultralite Motorcycle Cluster Demo

// Copyright (C) 2026 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial

#include "MotorClusterApp/motor_cluster.h"

#include <tviiextras/tviiconfiguration.h>

#include <qul/application.h>
#include <qul/qul.h>

extern "C" {

Qul::Application &_qul_app()
{
    static Qul::Application _qul_app;
    return _qul_app;
}

MotorClusterApp::motor_cluster &_qul_item()
{
    static MotorClusterApp::motor_cluster _qul_item;
    return _qul_item;
}

void qul_init_hardware(void)
{
    Qul::initHardware();
}

void qul_init_platform(void)
{
    Qul::initPlatform();
}

void qul_init_application(void)
{
    Qul::Application &app = _qul_app();

    // Motor cluster needs more than the default 16 copses and 64 KB fifo
    Tvii::Configuration::Config config = Tvii::Configuration::defaultConfigForOTFLayer();
    Tvii::Configuration::setConfigForOTFLayer(0, 32, 96 * 1024, config.lines);
    app.setRootItem(&_qul_item());
}

uint64_t qul_update_engine(void)
{
    return _qul_app().update();
}

void qul_app_exec(void)
{
    _qul_app().exec();
}

} // extern "C"