From c2ea0b1f94bdb7cd7892e3277d17f6a14bf603e9 Mon Sep 17 00:00:00 2001
From: Yang Wang <yang.wang@savoirfairelinux.com>
Date: Tue, 18 Aug 2020 13:24:37 -0400
Subject: [PATCH] setting: fix hardware accel crash

Change-Id: If001b758642fc8a1289506760650997dd9b20462
---
 src/accountadapter.cpp                        | 32 +++----------------
 src/accountadapter.h                          | 12 ++-----
 src/settingsview/components/AvSettingPage.qml | 10 +++---
 .../CurrentAccountSettingsScrollPage.qml      |  2 +-
 .../components/GeneralSettingsPage.qml        |  1 -
 5 files changed, 12 insertions(+), 45 deletions(-)

diff --git a/src/accountadapter.cpp b/src/accountadapter.cpp
index af072ac82..fff2dc6ca 100644
--- a/src/accountadapter.cpp
+++ b/src/accountadapter.cpp
@@ -238,16 +238,16 @@ AccountAdapter::stopAudioMeter(bool async)
 }
 
 void
-AccountAdapter::startPreviewing(bool force)
+AccountAdapter::startPreviewing(bool force, bool async)
 {
-    LRCInstance::renderer()->startPreviewing(force);
+    LRCInstance::renderer()->startPreviewing(force, async);
 }
 
 void
-AccountAdapter::stopPreviewing()
+AccountAdapter::stopPreviewing(bool async)
 {
     if (!LRCInstance::hasVideoCall() && LRCInstance::renderer()->isPreviewing()) {
-        LRCInstance::renderer()->stopPreviewing();
+        LRCInstance::renderer()->stopPreviewing(async);
     }
 }
 
@@ -263,12 +263,6 @@ AccountAdapter::isPreviewing()
     return LRCInstance::renderer()->isPreviewing();
 }
 
-RenderManager *
-AccountAdapter::getRenderManager()
-{
-    return LRCInstance::renderer();
-}
-
 void
 AccountAdapter::setCurrAccDisplayName(QString text)
 {
@@ -319,24 +313,6 @@ AccountAdapter::setArchivePasswordAsync(const QString &accountID, const QString
     });
 }
 
-lrc::api::NewAccountModel *
-AccountAdapter::accoundModel()
-{
-    return &(LRCInstance::accountModel());
-}
-
-lrc::api::AVModel *
-AccountAdapter::avModel()
-{
-    return &(LRCInstance::avModel());
-}
-
-lrc::api::DataTransferModel *
-AccountAdapter::dataTransferModel()
-{
-    return &(LRCInstance::dataTransferModel());
-}
-
 void
 AccountAdapter::settingsNeverShowAgain(bool checked)
 {
diff --git a/src/accountadapter.h b/src/accountadapter.h
index 10e4fa9f6..234489575 100644
--- a/src/accountadapter.h
+++ b/src/accountadapter.h
@@ -74,22 +74,14 @@ public:
     Q_INVOKABLE bool savePassword(QString accountId, QString oldPassword, QString newPassword);
     Q_INVOKABLE void startAudioMeter(bool async);
     Q_INVOKABLE void stopAudioMeter(bool async);
-    Q_INVOKABLE void startPreviewing(bool force);
-    Q_INVOKABLE void stopPreviewing();
+    Q_INVOKABLE void startPreviewing(bool force = false, bool async = true);
+    Q_INVOKABLE void stopPreviewing(bool async = true);
     Q_INVOKABLE bool hasVideoCall();
     Q_INVOKABLE bool isPreviewing();
     Q_INVOKABLE void setCurrAccDisplayName(QString text);
     Q_INVOKABLE void setSelectedAccountId(QString accountId = {});
     Q_INVOKABLE void setSelectedConvId(QString accountId = {});
 
-    /*
-     * lrc model instances getter
-     */
-    Q_INVOKABLE lrc::api::NewAccountModel *accoundModel();
-    Q_INVOKABLE lrc::api::AVModel *avModel();
-    Q_INVOKABLE lrc::api::DataTransferModel *dataTransferModel();
-
-    Q_INVOKABLE RenderManager *getRenderManager();
 signals:
 
     /*
diff --git a/src/settingsview/components/AvSettingPage.qml b/src/settingsview/components/AvSettingPage.qml
index 64a9f1cdc..99798446f 100644
--- a/src/settingsview/components/AvSettingPage.qml
+++ b/src/settingsview/components/AvSettingPage.qml
@@ -103,13 +103,13 @@ Rectangle {
         } catch(err){console.warn("Exception: " + err.message)}
     }
 
-    function startPreviewing(force = false){
-        ClientWrapper.accountAdaptor.startPreviewing(force)
+    function startPreviewing(force = false, async = true){
+        ClientWrapper.accountAdaptor.startPreviewing(force, async)
         previewAvailable = true
     }
 
-    function stopPreviewing(){
-        ClientWrapper.accountAdaptor.stopPreviewing()
+    function stopPreviewing(async = true){
+        ClientWrapper.accountAdaptor.stopPreviewing(async)
     }
 
     function startAudioMeter(async = true){
@@ -130,7 +130,7 @@ Rectangle {
     }
 
     function slotSetHardwareAccel(state){
-        ClientWrapper.accountAdaptor.avModel().setHardwareAcceleration(state)
+        ClientWrapper.avmodel.setHardwareAcceleration(state)
         startPreviewing(true)
     }
 
diff --git a/src/settingsview/components/CurrentAccountSettingsScrollPage.qml b/src/settingsview/components/CurrentAccountSettingsScrollPage.qml
index d2847d04a..f4fc28500 100644
--- a/src/settingsview/components/CurrentAccountSettingsScrollPage.qml
+++ b/src/settingsview/components/CurrentAccountSettingsScrollPage.qml
@@ -261,7 +261,7 @@ Rectangle {
                 return
             } else {
                 if (exportPath.length > 0) {
-                    var isSuccessful = ClientWrapper.accountAdaptor.accoundModel().exportToFile(ClientWrapper.utilsAdaptor.getCurrAccId(), exportPath,"")
+                    var isSuccessful = ClientWrapper.accountModel.exportToFile(ClientWrapper.utilsAdaptor.getCurrAccId(), exportPath,"")
                     var title = isSuccessful ? qsTr("Success") : qsTr("Error")
                     var iconMode = isSuccessful ? StandardIcon.Information : StandardIcon.Critical
                     var info = isSuccessful ? qsTr("Export Successful") : qsTr("Export Failed")
diff --git a/src/settingsview/components/GeneralSettingsPage.qml b/src/settingsview/components/GeneralSettingsPage.qml
index 412612f9e..8a7847a74 100644
--- a/src/settingsview/components/GeneralSettingsPage.qml
+++ b/src/settingsview/components/GeneralSettingsPage.qml
@@ -145,7 +145,6 @@ Rectangle {
     property string downloadPath: ClientWrapper.settingsAdaptor.getDir_Download()
 
     // recording
-    //property AVModel avmodel: ClientWrapper.accountAdaptor.avModel()
     property string recordPath: ClientWrapper.settingsAdaptor.getDir_Document()
 
     property int preferredColumnWidth : generalSettingsScrollView.width / 2 - 50
-- 
GitLab