/*! * * Copyright (c) 2019-2019 Diality Inc. - All Rights Reserved. * \copyright \n * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, \n * IN PART OR IN WHOLE, \n * WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. \n * * \file applicationcontroller.h * \date 2019/09/30 * \author Behrouz NematiPour * */ #pragma once // Qt #include #include // Project #include "main.h" #include "guiglobals.h" #include "applicationpost.h" #include "caninterface.h" // define #define _ApplicationController ApplicationController::I() // namespace using namespace Gui; using namespace Can; class ApplicationController : public QObject { Q_OBJECT ApplicationPost *_applicationPost = nullptr; // Singleton SINGLETON(ApplicationController) public: bool init(); private: void initConnections(); void keepAlive(); private slots: // Should be private for thread safety and is connected internally. void onActionReceive (GuiActionType vAction, const QVariantList &vData); // UI <= HD/DG void onActionTransmit(GuiActionType vAction, const QVariantList &vData); // UI => HD/DG void onMainTimerTimeout(); void onUSBDriveMount (); void onUSBDriveUmount(); void onUSBDriveRemove(); void onExportLog (); signals: void didActionReceive (GuiActionType vAction, const QVariantList &vData); // UI <= HD/DG void didActionTransmit(GuiActionType vAction, const QVariantList &vData); // UI => HD/DG void didUSBDriveMount (); void didUSBDriveUmount(); void didUSBDriveRemove(); void didExportLog(); void quit(int retcode=0); };