Index: sources/main.h =================================================================== diff -u -r56d00a82669a7a2c00ab90109a89dbec8db27527 -r56e378f7504701b9e9a9dccaf205aef2fd52c58e --- sources/main.h (.../main.h) (revision 56d00a82669a7a2c00ab90109a89dbec8db27527) +++ sources/main.h (.../main.h) (revision 56e378f7504701b9e9a9dccaf205aef2fd52c58e) @@ -1,18 +1,15 @@ /*! * - * Copyright (c) 2019-2019 Diality Inc. - All Rights Reserved. - * copyright - - * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, - - * IN PART OR IN WHOLE, - - * WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. - + * Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. + * \copyright + * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN + * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * - * file main.h - * date 10/25/2019 - * author Behrouz NematiPour + * \file main.h + * \author (last) Behrouz NematiPour + * \date (last) 30-Jul-2020 + * \author (original) Behrouz NematiPour + * \date (original) 28-Oct-2019 * */ #pragma once @@ -39,4 +36,135 @@ static vCLASS &I() { \ static vCLASS _instance; \ return _instance; \ + } \ +//--------------------------------------------------------------------------------// +//--------------------------------------------------------------------------------// +extern int gFakeInterval; +extern QByteArray gFakeData; +extern const char*gFakeData_default; +extern bool gSendEmptyKeepAwake; +extern bool gFakeSeqAtBegin; +extern bool gDisableUnhandledReport; +extern bool gDisableTimeout; +//--------------------------------------------------------------------------------// +//--------------------------------------------------------------------------------// +#define DEBUG_PROPERTY_CHANGED(vVARIABLE) //qDebug() << "#" << #vVARIABLE << v##vVARIABLE; +//--------------------------------------------------------------------------------// +#define PROPERTY_SLOT( vTYPE , vVARIABLE ) \ + protected : \ + void vVARIABLE ( const vTYPE & v##vVARIABLE ) { \ + static bool init = false; \ + if ( !init || _##vVARIABLE != v##vVARIABLE ) { \ + DEBUG_PROPERTY_CHANGED(vVARIABLE) \ + init = true; \ + _##vVARIABLE = v##vVARIABLE; \ + emit vVARIABLE##Changed( _##vVARIABLE ); \ + } \ + } +//--------------------------------------------------------------------------------// +#define TRIGGER_SLOT( vTYPE , vVARIABLE ) \ + protected: \ + void vVARIABLE ( const vTYPE & v##vVARIABLE ) { \ + DEBUG_PROPERTY_CHANGED(vVARIABLE) \ + _##vVARIABLE = v##vVARIABLE; \ + emit vVARIABLE##Triggered( _##vVARIABLE ); \ + } +//--------------------------------------------------------------------------------// +#define PROPERTY_BASE(vTYPE , vVARIABLE , vDEFVALUE, vSIGNAL) \ + Q_PROPERTY( vTYPE vVARIABLE \ + READ vVARIABLE \ + WRITE vVARIABLE \ + NOTIFY vVARIABLE##vSIGNAL) \ + Q_SIGNALS: \ + void vVARIABLE##vSIGNAL( const vTYPE & v##vVARIABLE ); \ + private: \ + vTYPE _##vVARIABLE = vDEFVALUE; \ + protected: \ + vTYPE vVARIABLE () const { \ + return _##vVARIABLE ; \ + } +//--------------------------------------------------------------------------------// +#define PROPERTY( vTYPE , vVARIABLE , vDEFVALUE ) \ + PROPERTY_BASE( vTYPE , vVARIABLE , vDEFVALUE , Changed ) \ + PROPERTY_SLOT( vTYPE , vVARIABLE) +//--------------------------------------------------------------------------------// +#define TRIGGER( vTYPE , vVARIABLE , vDEFVALUE ) \ + PROPERTY_BASE( vTYPE , vVARIABLE , vDEFVALUE , Triggered) \ + TRIGGER_SLOT( vTYPE , vVARIABLE) +//--------------------------------------------------------------------------------// +//--------------------------------------------------------------------------------// +#define ACTION_VIEW_CONNECTION(vTYPE) \ + connect(&_GuiController, SIGNAL(didActionReceive(const vTYPE &)), \ + this, SLOT( onActionReceive(const vTYPE &))); +//--------------------------------------------------------------------------------// +#define ADJUST_VIEW_CONNECTION(vTYPE) \ + connect( this, SIGNAL(didAdjustment (const vTYPE &)), \ + &_GuiController, SLOT( doAdjustment (const vTYPE &))); +//--------------------------------------------------------------------------------// +//--------------------------------------------------------------------------------// +#define ACTION_METHOD_BRIDGE_CONNECTION(vMETHOD, vSOURCE, vTYPE) \ + connect(&vSOURCE, SIGNAL(did##vMETHOD(const vTYPE &)), \ + this , SLOT( on##vMETHOD(const vTYPE &))); +//--------------------------------------------------------------------------------// +#define ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, vTYPE) \ + ACTION_METHOD_BRIDGE_CONNECTION(ActionReceive, vSOURCE, vTYPE) +//--------------------------------------------------------------------------------// +#define ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, vTYPE) \ + ACTION_METHOD_BRIDGE_CONNECTION(Adjustment , vSOURCE, vTYPE) +//--------------------------------------------------------------------------------// +#define ACTION_RECEIVE_PRIVATE_SLOT(vTYPE) \ +private Q_SLOTS: \ + void onActionReceive (const vTYPE &vData) { \ + emit didActionReceive(vData); \ } +//--------------------------------------------------------------------------------// +#define ADJUST_TRANSMT_PRIVATE_SLOT_DEFINITION(vTYPE) \ +private Q_SLOTS: \ + void onAdjustment (const vTYPE &vData); +//--------------------------------------------------------------------------------// +#define ADJUST_TRANSMT_PRIVATE_SLOT(vTYPE) \ +private Q_SLOTS: \ + void onAdjustment (const vTYPE &vData) { \ + emit didAdjustment( vData); \ + } +//--------------------------------------------------------------------------------// +#define ADJUST_TRANSMT_PUBLIC_SLOT(vTYPE) \ +public Q_SLOTS: \ + void doAdjustment (const vTYPE &vData) { \ + emit didAdjustment( vData); \ + } +//--------------------------------------------------------------------------------// +#define ACTION_RECEIVE_SIGNAL(vTYPE) \ +Q_SIGNALS: \ + void didActionReceive (const vTYPE &vData); +//--------------------------------------------------------------------------------// +#define ACTION_TRANSMT_SIGNAL(vTYPE) \ +Q_SIGNALS: \ + void didActionTransmit(const vTYPE &vData); +//--------------------------------------------------------------------------------// +#define ADJUST_TRANSMT_SIGNAL(vTYPE) \ +Q_SIGNALS: \ + void didAdjustment (const vTYPE &vData); +//--------------------------------------------------------------------------------// +#define ACTION_RECEIVE_BRIDGE_DEFINITION(vTYPE) \ + ACTION_RECEIVE_PRIVATE_SLOT (vTYPE) \ + ACTION_RECEIVE_SIGNAL (vTYPE) +//--------------------------------------------------------------------------------// +#define ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT(vTYPE) \ + ADJUST_TRANSMT_PRIVATE_SLOT_DEFINITION (vTYPE) \ + ADJUST_TRANSMT_SIGNAL (vTYPE) +//--------------------------------------------------------------------------------// +#define ADJUST_TRANSMT_BRIDGE_DEFINITION(vTYPE) \ + ADJUST_TRANSMT_PRIVATE_SLOT (vTYPE) \ + ADJUST_TRANSMT_SIGNAL (vTYPE) +//--------------------------------------------------------------------------------// +#define ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC(vTYPE) \ + ADJUST_TRANSMT_PUBLIC_SLOT (vTYPE) \ + ADJUST_TRANSMT_SIGNAL (vTYPE) +//--------------------------------------------------------------------------------// +#define REGISTER_METATYPE(vTYPE) \ + qRegisterMetaType < vTYPE > (#vTYPE); +//--------------------------------------------------------------------------------// +#define REGISTER_TYPE(vTYPE) \ + qmlRegisterType < vTYPE > (#vTYPE, 0, 1, #vTYPE); +