#pragma once #include #include #include #include #include #include #include #include #include "cereal/gen/cpp/car.capnp.h" #include "common/params.h" QString getVersion(); QString getBrand(); QString getUserAgent(); std::optional getDongleId(); QMap getSupportedLanguages(); void setQtSurfaceFormat(); void sigTermHandler(int s); QString timeAgo(const QDateTime &date); void swagLogMessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg); void initApp(int argc, char *argv[], bool disable_hidpi = true); QWidget* topWidget(QWidget* widget); QPixmap loadPixmap(const QString &fileName, const QSize &size = {}, Qt::AspectRatioMode aspectRatioMode = Qt::KeepAspectRatio); QPixmap bootstrapPixmap(const QString &id); bool hasLongitudinalControl(const cereal::CarParams::Reader &car_params); struct InterFont : public QFont { InterFont(int pixel_size, QFont::Weight weight = QFont::Normal) : QFont("Inter") { setPixelSize(pixel_size); setWeight(weight); } }; class ParamWatcher : public QObject { Q_OBJECT public: ParamWatcher(QObject *parent); void addParam(const QString ¶m_name); signals: void paramChanged(const QString ¶m_name, const QString ¶m_value); private: void fileChanged(const QString &path); QFileSystemWatcher *watcher; QHash params_hash; Params params; };