diff --git a/linphone-app/src/components/core/CoreHandlers.cpp b/linphone-app/src/components/core/CoreHandlers.cpp index 2718c1f01..092c69214 100644 --- a/linphone-app/src/components/core/CoreHandlers.cpp +++ b/linphone-app/src/components/core/CoreHandlers.cpp @@ -38,15 +38,6 @@ using namespace std; -// Schedule a function in app context. -void scheduleFunctionInApp (function func) { - App *app = App::getInstance(); - if (QThread::currentThread() != app->thread()) - QTimer::singleShot(0, app, func); - else - func(); -} - // ----------------------------------------------------------------------------- CoreHandlers::CoreHandlers (CoreManager *coreManager) { @@ -124,12 +115,21 @@ void CoreHandlers::onGlobalStateChanged ( ) { Q_UNUSED(core) Q_UNUSED(message) - if( gstate == linphone::GlobalState::On) - emit coreStarted(); - else if( gstate == linphone::GlobalState::Off) - emit coreStopped(); - else if( gstate == linphone::GlobalState::Startup) - emit coreStarting(); + switch(gstate){ + case linphone::GlobalState::On : + qInfo() << "Core is running " << QString::fromStdString(message); + emit coreStarted(); + break; + case linphone::GlobalState::Off : + qInfo() << "Core is stopped " << QString::fromStdString(message); + emit coreStopped(); + break; + case linphone::GlobalState::Startup : // Usefull to start core iterations + qInfo() << "Core is starting " << QString::fromStdString(message); + emit coreStarting(); + break; + default:{} + } } void CoreHandlers::onIsComposingReceived ( diff --git a/linphone-app/src/components/core/CoreManager.cpp b/linphone-app/src/components/core/CoreManager.cpp index a39d54dc1..5318a59b8 100644 --- a/linphone-app/src/components/core/CoreManager.cpp +++ b/linphone-app/src/components/core/CoreManager.cpp @@ -84,8 +84,8 @@ CoreManager::CoreManager (QObject *parent, const QString &configPath) : CoreManager::~CoreManager(){ mCore->removeListener(mHandlers); - mHandlers = nullptr;// Call destructor - mCore = nullptr;// Call destructor + mHandlers = nullptr;// Ordering Call destructor just to be sure (removeListener should be enough) + mCore = nullptr; } // ----------------------------------------------------------------------------- @@ -101,7 +101,7 @@ void CoreManager::initManager(){ QObject::connect(mEventCountNotifier, &EventCountNotifier::eventCountChanged,this, &CoreManager::eventCountChanged); migrate(); mStarted = true; - qInfo() << QStringLiteral("Core created. Enable iterate."); + qInfo() << QStringLiteral("CoreManager initialized"); emit managerInitialized(); } @@ -164,16 +164,16 @@ void CoreManager::uninit () { if (mInstance) { connect(mInstance, &QObject::destroyed, []()mutable{ mInstance = nullptr; - qInfo() << "Linphone Core is destroyed"; + qInfo() << "Core is correctly destroyed"; }); - QObject::connect(mInstance->getHandlers().get(), &CoreHandlers::coreStopped, mInstance, &QObject::deleteLater); + QObject::connect(mInstance->getHandlers().get(), &CoreHandlers::coreStopped, mInstance, &QObject::deleteLater); // Delete data only when the core is Off mInstance->lockVideoRender();// Stop do iterations. We have to protect GUI. mInstance->mCore->stop(); mInstance->unlockVideoRender(); QTest::qWaitFor([&]() {return mInstance == nullptr;},10000); if( mInstance){ - qWarning() << "Linphone Core couldn't destroy in time. It may lead to have multiple session of Linphone Core"; + qWarning() << "Core couldn't destroy in time. It may lead to have multiple session of Core"; mInstance = nullptr; } } @@ -338,10 +338,12 @@ void CoreManager::startIterate(){ mCbsTimer = new QTimer(this); mCbsTimer->setInterval(CbsCallInterval); QObject::connect(mCbsTimer, &QTimer::timeout, this, &CoreManager::iterate); + qInfo() << QStringLiteral("Start iterate"); mCbsTimer->start(); } void CoreManager::stopIterate(){ + qInfo() << QStringLiteral("Stop iterate"); mCbsTimer->stop(); mCbsTimer->deleteLater();// allow the timer to continue its stuff mCbsTimer = nullptr;