summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorIlya Fedin2020-01-18 00:55:52 +0400
committerIlya Fedin2020-01-18 00:55:52 +0400
commit1eba78855f3b7277a9e888ba98c73adc04b65569 (patch)
tree9ec49cb408b1b9b37665d7b0ad0fd7e5b98595b5
parent4ad3891cb9f87b4a490957160de56f83f2c899fe (diff)
downloadaur-1eba78855f3b7277a9e888ba98c73adc04b65569.tar.gz
Update base to v1.9.4
-rw-r--r--.SRCINFO19
-rw-r--r--PKGBUILD26
-rw-r--r--Use-native-notifications-by-default.patch13
-rw-r--r--Use-system-wide-font.patch15
-rw-r--r--cmake-rules-fix.patch3014
-rw-r--r--fix-notifications.patch216
-rw-r--r--fix-spellcheck.patch523
-rw-r--r--remove-qt-config.patch13
8 files changed, 16 insertions, 3823 deletions
diff --git a/.SRCINFO b/.SRCINFO
index c6611ee689c5..99a3d83c320c 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = kotatogram-desktop
pkgdesc = Kotatogram – experimental Telegram Desktop fork
pkgver = 1.1.2
- pkgrel = 6
+ pkgrel = 7
url = https://kotatogram.github.io
arch = x86_64
license = GPL3
@@ -22,7 +22,6 @@ pkgbase = kotatogram-desktop
depends = zlib
depends = minizip
depends = openssl
- depends = sonnet
depends = libtgvoip
depends = rlottie-tdesktop
depends = hicolor-icon-theme
@@ -54,17 +53,12 @@ pkgbase = kotatogram-desktop
source = https://raw.githubusercontent.com/telegramdesktop/tdesktop/100fed362271ada828fdaeb27e52f660a5a05d18/Telegram/Resources/icons/intro_qr_plane.png
source = https://raw.githubusercontent.com/telegramdesktop/tdesktop/100fed362271ada828fdaeb27e52f660a5a05d18/Telegram/Resources/icons/intro_qr_plane@2x.png
source = https://raw.githubusercontent.com/telegramdesktop/tdesktop/100fed362271ada828fdaeb27e52f660a5a05d18/Telegram/Resources/icons/intro_qr_plane@3x.png
- source = https://raw.githubusercontent.com/ilya-fedin/nur-repository/09de9a8a98c79b8d4c4e19313a8e2b4db5591c58/pkgs/kotatogram-desktop/update-to-v1.9.3.patch
- source = cmake-rules-fix.patch
- source = remove-qt-config.patch
- source = fix-spellcheck.patch
- source = fix-notifications.patch
+ source = https://raw.githubusercontent.com/ilya-fedin/nur-repository/4c17ad9c0d190ebdcb4e6c68860025ca81e9c708/pkgs/kotatogram-desktop/update-to-v1.9.4.patch
source = Use-system-font.patch
source = Use-system-wide-font.patch
source = system-tray-icon.patch
source = linux-autostart.patch
source = Use-system-font-by-default.patch
- source = Use-native-notifications-by-default.patch
source = autostart.desktop
sha512sums = SKIP
sha512sums = SKIP
@@ -87,17 +81,12 @@ pkgbase = kotatogram-desktop
sha512sums = 767cc5f3a8e25ff94cfc4a0ad6968455ab52875262e40515cfd4ebea1765014808913ee624efa47c57b15de7cceb492bf7232de981d519bd104036f6d498b788
sha512sums = ac55bcd0c572b1e5fdd72cd0dd9db4bb5eb9c12adc8c702f348201a52b1cf0271f550e144e6654605753960cab55146604a8b52d5294861f73d85b548e5503f0
sha512sums = ec16fd3a70a225fd9aa54c8042b1115d0bdb15e2a95c1abbc74cee50a06878196a4e8c451167c9849ff816ce36e48f46166cb7e99790258d575bde11e305e548
- sha512sums = a724ebcf13856fe9c261f9d0e5b4ffc3fc5f0b05b56e988554e75f65e5b9c5a2964444a5fa59b017c2c1689472f9a8be62a6cdde0ef7e3eae598b7c09d7f47b2
- sha512sums = 660d077e5f5da14b8abf4a6f7a58b2e51c5f4c37dda302a2737a4fd7580335e44de64c4e0c9c16aab58f0d555b875da9ac41d5b59543969329e2e3098e44327b
- sha512sums = c90dbebb216233b5a3d5036fb244d1ce746540fcc84413de70cab6c557fee7d0a065cf1dc828c5ae7f8a0be26ff3ea05eec99c74006d201118c2b2531da4182f
- sha512sums = aad19022eb8ddedf21e582a0c7dc7eac8435c667e542b7c36c7cce876a031acb675a05e9d8fa7fea631f1c3a00f20e9f1bfb2dcc0c8aaa609fd3bc6891804153
- sha512sums = a481a82e1eb03e378cb5955fc7688cca5eee220311d941c755e2329d4b77f0b3183650cfb9ac34f340cab4a94b3eadbcf905fc347cfdca73fdcaea85f4a848e5
+ sha512sums = ece3cbbed63a04d1ee08218b16782a5105bc8f9d6d88b49bfbd768d3260a0d322e7544f224c5ee0da21177c252747dba24a0ce807da9dea2447e54ff04785e47
sha512sums = b9fe9cb91e19271920c4cf075ba83703f093111d6a692cab91eb493563940091cda7b204742711157beb1e9857c1fefd6788ec8784f7b362423a9564925c0de6
- sha512sums = 94ea7c337c6c9dd6be7727d3b8e9f44cdcfe391c574607491aa32b6e64a93eff7bcc6adc993e7c93e8f5b75a4646a1cf884646fce65ca78edf1df7a969bcf56a
+ sha512sums = 4263c3e3a3edcd91eed2a666b7aa1db61129531d60b5539d7aa24b83f46b17cb5fe65229175e36f76bf2ac76472aa2a1e5fa1c0c5ff0cbb809816cd006bb2ef4
sha512sums = 6bdb73dd7ebd8cd50da0f09f2f1fa201e687fee949c4a05f90e62e7e6167ccca877a078021ca611ce8fbb464aab329b92270f07e0cb770c2b7a89a436d37549a
sha512sums = aaef50685b8871f32820e6cca2014aa986500ddcf34f4e99216081310e8622a242420a7d1ce30e277af85eb3f1d1e73c5a67dab9e02b42ef03ae6d76381fe635
sha512sums = a95122676e18b1505b796b79e24521adcf5b29a28a01b7cd3285b5855c8d27e5e0e8f15928f61826e81163dfd3f06e71d27879bef748c1d491a3cd8f9e3212cc
- sha512sums = 14064af25fda0fcd31a0dc7626687eaf61c329e9100fb55a8a0a455600a63a761e864056088aa486afdd053eccad0a55f8b332151eeb46c90a2c562a64a0a36e
sha512sums = 610ce239e1e8ae6cfaaccc507eb2ca174f38e340ceec8f56bec4da1a6e390b516c56be5c82a90674e92d0958ac7c8f2fdba560b044f30fb165b522a58bfb600a
pkgname = kotatogram-desktop
diff --git a/PKGBUILD b/PKGBUILD
index b475a7a59865..d6dc35723856 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,7 +3,7 @@
pkgname=kotatogram-desktop
pkgver=1.1.2
-pkgrel=6
+pkgrel=7
pkgdesc="Kotatogram – experimental Telegram Desktop fork"
arch=(x86_64)
url="https://kotatogram.github.io"
@@ -19,7 +19,6 @@ depends=(
zlib
minizip
openssl
- sonnet
libtgvoip
rlottie-tdesktop
hicolor-icon-theme
@@ -64,17 +63,12 @@ source=(
"https://raw.githubusercontent.com/telegramdesktop/tdesktop/100fed362271ada828fdaeb27e52f660a5a05d18/Telegram/Resources/icons/intro_qr_plane@2x.png"
"https://raw.githubusercontent.com/telegramdesktop/tdesktop/100fed362271ada828fdaeb27e52f660a5a05d18/Telegram/Resources/icons/intro_qr_plane@3x.png"
- "https://raw.githubusercontent.com/ilya-fedin/nur-repository/09de9a8a98c79b8d4c4e19313a8e2b4db5591c58/pkgs/kotatogram-desktop/update-to-v1.9.3.patch"
- "cmake-rules-fix.patch"
- "remove-qt-config.patch"
- "fix-spellcheck.patch"
- "fix-notifications.patch"
+ "https://raw.githubusercontent.com/ilya-fedin/nur-repository/4c17ad9c0d190ebdcb4e6c68860025ca81e9c708/pkgs/kotatogram-desktop/update-to-v1.9.4.patch"
"Use-system-font.patch"
"Use-system-wide-font.patch"
"system-tray-icon.patch"
"linux-autostart.patch"
"Use-system-font-by-default.patch"
- "Use-native-notifications-by-default.patch"
"autostart.desktop"
)
@@ -99,17 +93,12 @@ sha512sums=('SKIP'
'767cc5f3a8e25ff94cfc4a0ad6968455ab52875262e40515cfd4ebea1765014808913ee624efa47c57b15de7cceb492bf7232de981d519bd104036f6d498b788'
'ac55bcd0c572b1e5fdd72cd0dd9db4bb5eb9c12adc8c702f348201a52b1cf0271f550e144e6654605753960cab55146604a8b52d5294861f73d85b548e5503f0'
'ec16fd3a70a225fd9aa54c8042b1115d0bdb15e2a95c1abbc74cee50a06878196a4e8c451167c9849ff816ce36e48f46166cb7e99790258d575bde11e305e548'
- 'a724ebcf13856fe9c261f9d0e5b4ffc3fc5f0b05b56e988554e75f65e5b9c5a2964444a5fa59b017c2c1689472f9a8be62a6cdde0ef7e3eae598b7c09d7f47b2'
- '660d077e5f5da14b8abf4a6f7a58b2e51c5f4c37dda302a2737a4fd7580335e44de64c4e0c9c16aab58f0d555b875da9ac41d5b59543969329e2e3098e44327b'
- 'c90dbebb216233b5a3d5036fb244d1ce746540fcc84413de70cab6c557fee7d0a065cf1dc828c5ae7f8a0be26ff3ea05eec99c74006d201118c2b2531da4182f'
- 'aad19022eb8ddedf21e582a0c7dc7eac8435c667e542b7c36c7cce876a031acb675a05e9d8fa7fea631f1c3a00f20e9f1bfb2dcc0c8aaa609fd3bc6891804153'
- 'a481a82e1eb03e378cb5955fc7688cca5eee220311d941c755e2329d4b77f0b3183650cfb9ac34f340cab4a94b3eadbcf905fc347cfdca73fdcaea85f4a848e5'
+ 'ece3cbbed63a04d1ee08218b16782a5105bc8f9d6d88b49bfbd768d3260a0d322e7544f224c5ee0da21177c252747dba24a0ce807da9dea2447e54ff04785e47'
'b9fe9cb91e19271920c4cf075ba83703f093111d6a692cab91eb493563940091cda7b204742711157beb1e9857c1fefd6788ec8784f7b362423a9564925c0de6'
- '94ea7c337c6c9dd6be7727d3b8e9f44cdcfe391c574607491aa32b6e64a93eff7bcc6adc993e7c93e8f5b75a4646a1cf884646fce65ca78edf1df7a969bcf56a'
+ '4263c3e3a3edcd91eed2a666b7aa1db61129531d60b5539d7aa24b83f46b17cb5fe65229175e36f76bf2ac76472aa2a1e5fa1c0c5ff0cbb809816cd006bb2ef4'
'6bdb73dd7ebd8cd50da0f09f2f1fa201e687fee949c4a05f90e62e7e6167ccca877a078021ca611ce8fbb464aab329b92270f07e0cb770c2b7a89a436d37549a'
'aaef50685b8871f32820e6cca2014aa986500ddcf34f4e99216081310e8622a242420a7d1ce30e277af85eb3f1d1e73c5a67dab9e02b42ef03ae6d76381fe635'
'a95122676e18b1505b796b79e24521adcf5b29a28a01b7cd3285b5855c8d27e5e0e8f15928f61826e81163dfd3f06e71d27879bef748c1d491a3cd8f9e3212cc'
- '14064af25fda0fcd31a0dc7626687eaf61c329e9100fb55a8a0a455600a63a761e864056088aa486afdd053eccad0a55f8b332151eeb46c90a2c562a64a0a36e'
'610ce239e1e8ae6cfaaccc507eb2ca174f38e340ceec8f56bec4da1a6e390b516c56be5c82a90674e92d0958ac7c8f2fdba560b044f30fb165b522a58bfb600a')
prepare() {
@@ -140,17 +129,12 @@ prepare() {
dos2unix "$srcdir/$pkgname/Telegram/build/build.bat"
- patch -Np1 -i "$srcdir/update-to-v1.9.3.patch"
- patch -Np1 -i "$srcdir/cmake-rules-fix.patch"
- patch -Np1 -i "$srcdir/remove-qt-config.patch"
- patch -Np1 -i "$srcdir/fix-spellcheck.patch"
- patch -Np1 -i "$srcdir/fix-notifications.patch"
+ patch -Np1 -i "$srcdir/update-to-v1.9.4.patch"
patch -Np1 -i "$srcdir/Use-system-font.patch"
patch -Np1 -i "$srcdir/Use-system-wide-font.patch"
patch -Np1 -i "$srcdir/system-tray-icon.patch"
patch -Np1 -i "$srcdir/linux-autostart.patch"
patch -Np1 -i "$srcdir/Use-system-font-by-default.patch"
- patch -Np1 -i "$srcdir/Use-native-notifications-by-default.patch"
unix2dos "$srcdir/$pkgname/Telegram/build/build.bat"
diff --git a/Use-native-notifications-by-default.patch b/Use-native-notifications-by-default.patch
deleted file mode 100644
index 4fe8f2ee3eec..000000000000
--- a/Use-native-notifications-by-default.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/Telegram/SourceFiles/facades.cpp b/Telegram/SourceFiles/facades.cpp
-index 7f1a9505b..9500a37ba 100644
---- a/Telegram/SourceFiles/facades.cpp
-+++ b/Telegram/SourceFiles/facades.cpp
-@@ -378,7 +378,7 @@ struct Data {
- bool DesktopNotify = true;
- bool RestoreSoundNotifyFromTray = false;
- DBINotifyView NotifyView = dbinvShowPreview;
-- bool NativeNotifications = false;
-+ bool NativeNotifications = Platform::IsLinux();
- int NotificationsCount = 3;
- Notify::ScreenCorner NotificationsCorner = Notify::ScreenCorner::BottomRight;
- bool NotificationsDemoIsShown = false;
diff --git a/Use-system-wide-font.patch b/Use-system-wide-font.patch
index 9e8df6e277b0..d7df29d1f746 100644
--- a/Use-system-wide-font.patch
+++ b/Use-system-wide-font.patch
@@ -1,18 +1,17 @@
-Submodule Telegram/lib_ui contains modified content
diff --git a/Telegram/lib_ui/CMakeLists.txt b/Telegram/lib_ui/CMakeLists.txt
-index 687b25f..5243936 100644
+index 81bf4d1..05bf2a1 100644
--- a/Telegram/lib_ui/CMakeLists.txt
+++ b/Telegram/lib_ui/CMakeLists.txt
-@@ -20,7 +20,6 @@ set(style_files
- ui/widgets/widgets.style
- )
- set(qrc_files
+@@ -33,7 +33,6 @@ PRIVATE
+ ui/colors.palette
+ emoji_suggestions/emoji_autocomplete.json
+
- fonts/fonts.qrc
- qt_conf/linux.qrc
qt_conf/mac.qrc
qt_conf/win.qrc
+
diff --git a/Telegram/lib_ui/ui/style/style_core_font.cpp b/Telegram/lib_ui/ui/style/style_core_font.cpp
-index e27850f..d1f45b8 100644
+index a4be3e4..aee47f5 100644
--- a/Telegram/lib_ui/ui/style/style_core_font.cpp
+++ b/Telegram/lib_ui/ui/style/style_core_font.cpp
@@ -15,7 +15,6 @@
diff --git a/cmake-rules-fix.patch b/cmake-rules-fix.patch
deleted file mode 100644
index c9027719151b..000000000000
--- a/cmake-rules-fix.patch
+++ /dev/null
@@ -1,3014 +0,0 @@
-diff --git a/Telegram/CMakeLists.txt b/Telegram/CMakeLists.txt
-index b00bd61e5..ea6114312 100644
---- a/Telegram/CMakeLists.txt
-+++ b/Telegram/CMakeLists.txt
-@@ -27,12 +27,12 @@ include(cmake/generate_numbers.cmake)
- get_filename_component(src_loc SourceFiles REALPATH)
- get_filename_component(res_loc Resources REALPATH)
-
-+include(cmake/telegram_options.cmake)
- include(cmake/lib_export.cmake)
- include(cmake/lib_ffmpeg.cmake)
- include(cmake/lib_mtproto.cmake)
- include(cmake/lib_scheme.cmake)
- include(cmake/lib_tgvoip.cmake)
--include(cmake/telegram_options.cmake)
-
- set(style_files
- boxes/boxes.style
-@@ -65,8 +65,13 @@ generate_numbers(Telegram ${res_loc}/numbers.txt)
-
- set_target_properties(Telegram PROPERTIES AUTOMOC ON AUTORCC ON)
-
-+set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
-+find_package(Threads)
-+
- target_link_libraries(Telegram
- PRIVATE
-+ ${CMAKE_DL_LIBS}
-+ Threads::Threads
- tdesktop::lib_mtproto
- tdesktop::lib_scheme
- tdesktop::lib_export
-@@ -83,15 +88,15 @@ PRIVATE
- desktop-app::external_zlib
- desktop-app::external_qt
- desktop-app::external_qr_code_generator
-+ desktop-app::external_crash_reports
- desktop-app::external_auto_updates
- tdesktop::lib_tgvoip
- desktop-app::external_openssl
-- desktop-app::external_opus
- desktop-app::external_openal
- )
-
--if (NOT DESKTOP_APP_DISABLE_CRASH_REPORTS)
-- target_link_libraries(Telegram PRIVATE desktop-app::external_crash_reports)
-+if (NOT DESKTOP_APP_USE_PACKAGED)
-+ target_link_libraries(Telegram PRIVATE desktop-app::external_opus)
- endif()
-
- target_precompile_headers(Telegram PRIVATE ${src_loc}/stdafx.h)
-@@ -944,11 +949,16 @@ PRIVATE
- mainwindow.h
- observer_peer.cpp
- observer_peer.h
-- qt_static_plugins.cpp
- settings.cpp
- settings.h
- )
-
-+if (DESKTOP_APP_USE_PACKAGED)
-+ nice_target_sources(Telegram ${src_loc} PRIVATE qt_functions.cpp)
-+else()
-+ nice_target_sources(Telegram ${src_loc} PRIVATE qt_static_plugins.cpp)
-+endif()
-+
- nice_target_sources(Telegram ${res_loc}
- PRIVATE
- qrc/emoji_1.qrc
-@@ -1026,10 +1036,15 @@ elseif (LINUX)
- if (NOT TDESKTOP_DISABLE_GTK_INTEGRATION)
- find_package(PkgConfig REQUIRED)
-
-- pkg_check_modules(GTK2 REQUIRED gtk+-2.0)
-- target_include_directories(Telegram PRIVATE ${GTK2_INCLUDE_DIRS})
-+ pkg_search_module(GTK REQUIRED gtk+-2.0 gtk+-3.0)
-+ target_include_directories(Telegram PRIVATE ${GTK_INCLUDE_DIRS})
- target_compile_options(Telegram PRIVATE -Wno-register)
-
-+ if (DESKTOP_APP_USE_PACKAGED)
-+ find_library(X11_LIBRARY X11)
-+ target_link_libraries(Telegram PRIVATE ${X11_LIBRARY})
-+ endif()
-+
- set(appindicator_packages
- ayatana-appindicator3-0.1
- ayatana-appindicator-0.1
-@@ -1102,23 +1117,26 @@ set(entitlement_sources
- target_sources(Telegram PRIVATE ${entitlement_sources})
- source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/Telegram PREFIX Resources FILES ${entitlement_sources})
-
--target_include_directories(Telegram
--PRIVATE
-- ${src_loc}
-- ${third_party_loc}/minizip
--)
-+target_include_directories(Telegram PRIVATE ${src_loc})
-+
-+if (NOT DESKTOP_APP_USE_PACKAGED)
-+ target_include_directories(Telegram PRIVATE ${third_party_loc}/minizip)
-+endif()
-
- target_compile_definitions(Telegram
- PRIVATE
- TDESKTOP_API_ID=${TDESKTOP_API_ID}
- TDESKTOP_API_HASH=${TDESKTOP_API_HASH}
-- AL_LIBTYPE_STATIC
- AL_ALEXT_PROTOTYPES
- )
-
--if (${CMAKE_GENERATOR} MATCHES "(Visual Studio|Xcode|Ninja)")
-+if (NOT DESKTOP_APP_USE_PACKAGED)
-+ target_compile_definitions(Telegram PRIVATE AL_LIBTYPE_STATIC)
-+endif()
-+
-+if (${CMAKE_GENERATOR} MATCHES "(Visual Studio|Xcode)")
- set(output_folder ${CMAKE_BINARY_DIR})
--elseif((${CMAKE_GENERATOR} MATCHES "(Unix Makefiles)") AND DESKTOP_APP_SPECIAL_TARGET STREQUAL "")
-+elseif (DESKTOP_APP_SPECIAL_TARGET STREQUAL "")
- set(output_folder ${CMAKE_BINARY_DIR}/bin)
- else()
- set(output_folder ${CMAKE_BINARY_DIR}/$<IF:$<CONFIG:Debug>,Debug,Release>)
-@@ -1126,7 +1144,7 @@ endif()
-
- set_target_properties(Telegram PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${output_folder})
-
--if (NOT build_macstore AND NOT build_winstore)
-+if (NOT disable_autoupdate AND NOT build_macstore AND NOT build_winstore)
- add_executable(Updater WIN32)
- init_target(Updater)
-
-diff --git a/Telegram/SourceFiles/qt_functions.cpp b/Telegram/SourceFiles/qt_functions.cpp
-new file mode 100644
-index 000000000..5a9117773
---- /dev/null
-+++ b/Telegram/SourceFiles/qt_functions.cpp
-@@ -0,0 +1,99 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2015 The Qt Company Ltd.
-+** Contact: http://www.qt.io/licensing/
-+**
-+** This file contains some parts of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL21$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and The Qt Company. For licensing terms
-+** and conditions see http://www.qt.io/terms-conditions. For further
-+** information use the contact form at http://www.qt.io/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 or version 3 as published by the Free
-+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
-+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
-+** following information to ensure the GNU Lesser General Public License
-+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
-+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** As a special exception, The Qt Company gives you certain additional
-+** rights. These rights are described in The Qt Company LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+// For QTextItemInt declaraion
-+#include <private/qtextengine_p.h>
-+
-+#ifndef TDESKTOP_DISABLE_GTK_INTEGRATION
-+/* TODO: find a dynamic library with these symbols. */
-+
-+/* Debian maintainer: this function is taken from qfiledialog.cpp */
-+/*
-+ Makes a list of filters from ;;-separated text.
-+ Used by the mac and windows implementations
-+*/
-+QStringList qt_make_filter_list(const QString &filter)
-+{
-+ QString f(filter);
-+
-+ if (f.isEmpty())
-+ return QStringList();
-+
-+ QString sep(QLatin1String(";;"));
-+ int i = f.indexOf(sep, 0);
-+ if (i == -1) {
-+ if (f.indexOf(QLatin1Char('\n'), 0) != -1) {
-+ sep = QLatin1Char('\n');
-+ i = f.indexOf(sep, 0);
-+ }
-+ }
-+
-+ return f.split(sep);
-+}
-+#endif // !TDESKTOP_DISABLE_GTK_INTEGRATION
-+
-+/* Debian maintainer: this constructor is taken from qtextengine.cpp for TextPainter::drawLine */
-+QTextItemInt::QTextItemInt(const QGlyphLayout &g, QFont *font, const QChar *chars_, int numChars, QFontEngine *fe, const QTextCharFormat &format)
-+ : flags(0), justified(false), underlineStyle(QTextCharFormat::NoUnderline), charFormat(format),
-+ num_chars(numChars), chars(chars_), logClusters(0), f(font), glyphs(g), fontEngine(fe)
-+{
-+}
-+
-+/* Debian maintainer: this method is also taken from qtextengine.cpp */
-+// Fix up flags and underlineStyle with given info
-+void QTextItemInt::initWithScriptItem(const QScriptItem &si)
-+{
-+ // explicitly initialize flags so that initFontAttributes can be called
-+ // multiple times on the same TextItem
-+ flags = 0;
-+ if (si.analysis.bidiLevel %2)
-+ flags |= QTextItem::RightToLeft;
-+ ascent = si.ascent;
-+ descent = si.descent;
-+
-+ if (charFormat.hasProperty(QTextFormat::TextUnderlineStyle)) {
-+ underlineStyle = charFormat.underlineStyle();
-+ } else if (charFormat.boolProperty(QTextFormat::FontUnderline)
-+ || f->d->underline) {
-+ underlineStyle = QTextCharFormat::SingleUnderline;
-+ }
-+
-+ // compat
-+ if (underlineStyle == QTextCharFormat::SingleUnderline)
-+ flags |= QTextItem::Underline;
-+
-+ if (f->d->overline || charFormat.fontOverline())
-+ flags |= QTextItem::Overline;
-+ if (f->d->strikeOut || charFormat.fontStrikeOut())
-+ flags |= QTextItem::StrikeOut;
-+}
-diff --git a/Telegram/cmake/generate_scheme.cmake b/Telegram/cmake/generate_scheme.cmake
-index 75d3995e2..e5802742a 100644
---- a/Telegram/cmake/generate_scheme.cmake
-+++ b/Telegram/cmake/generate_scheme.cmake
-@@ -5,6 +5,8 @@
- # https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
-
- function(generate_scheme target_name script scheme_files)
-+ find_package(Python REQUIRED)
-+
- set(gen_dst ${CMAKE_CURRENT_BINARY_DIR}/gen)
- file(MAKE_DIRECTORY ${gen_dst})
-
-@@ -22,7 +24,7 @@ function(generate_scheme target_name script scheme_files)
- BYPRODUCTS
- ${gen_files}
- COMMAND
-- python
-+ ${Python_EXECUTABLE}
- ${script}
- -o${gen_dst}/scheme
- ${scheme_files}
-diff --git a/Telegram/cmake/lib_tgvoip.cmake b/Telegram/cmake/lib_tgvoip.cmake
-index 38fa632a4..e820a5d5f 100644
---- a/Telegram/cmake/lib_tgvoip.cmake
-+++ b/Telegram/cmake/lib_tgvoip.cmake
-@@ -4,781 +4,792 @@
- # For license and copyright information please follow this link:
- # https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
-
--add_library(lib_tgvoip STATIC)
--init_target(lib_tgvoip cxx_std_11)
--add_library(tdesktop::lib_tgvoip ALIAS lib_tgvoip)
-+if (TDESKTOP_USE_PACKAGED_TGVOIP)
-+ add_library(lib_tgvoip INTERFACE IMPORTED GLOBAL)
-+ add_library(tdesktop::lib_tgvoip ALIAS lib_tgvoip)
-
--if (NOT APPLE)
-- # On macOS if you build libtgvoip with C++17 it uses std::optional
-- # instead of absl::optional and when it uses optional::value, the
-- # build fails, because optional::value is available starting with
-- # macOS 10.14+. This way we force using absl::optional.
-- target_compile_features(lib_tgvoip PUBLIC cxx_std_17)
--endif()
-+ find_package(PkgConfig REQUIRED)
-+ pkg_check_modules(TGVOIP REQUIRED tgvoip)
-
--set(tgvoip_loc ${third_party_loc}/libtgvoip)
-+ target_include_directories(lib_tgvoip INTERFACE ${TGVOIP_INCLUDE_DIRS})
-+ target_link_libraries(lib_tgvoip INTERFACE ${TGVOIP_LIBRARIES})
-+else()
-+ add_library(lib_tgvoip STATIC)
-+ init_target(lib_tgvoip cxx_std_11)
-+ add_library(tdesktop::lib_tgvoip ALIAS lib_tgvoip)
-
--nice_target_sources(lib_tgvoip ${tgvoip_loc}
--PRIVATE
-- BlockingQueue.cpp
-- BlockingQueue.h
-- Buffers.cpp
-- Buffers.h
-- CongestionControl.cpp
-- CongestionControl.h
-- EchoCanceller.cpp
-- EchoCanceller.h
-- JitterBuffer.cpp
-- JitterBuffer.h
-- logging.cpp
-- logging.h
-- MediaStreamItf.cpp
-- MediaStreamItf.h
-- OpusDecoder.cpp
-- OpusDecoder.h
-- OpusEncoder.cpp
-- OpusEncoder.h
-- threading.h
-- VoIPController.cpp
-- VoIPGroupController.cpp
-- VoIPController.h
-- PrivateDefines.h
-- VoIPServerConfig.cpp
-- VoIPServerConfig.h
-- audio/AudioInput.cpp
-- audio/AudioInput.h
-- audio/AudioOutput.cpp
-- audio/AudioOutput.h
-- audio/Resampler.cpp
-- audio/Resampler.h
-- NetworkSocket.cpp
-- NetworkSocket.h
-- PacketReassembler.cpp
-- PacketReassembler.h
-- MessageThread.cpp
-- MessageThread.h
-- audio/AudioIO.cpp
-- audio/AudioIO.h
-- video/ScreamCongestionController.cpp
-- video/ScreamCongestionController.h
-- video/VideoSource.cpp
-- video/VideoSource.h
-- video/VideoRenderer.cpp
-- video/VideoRenderer.h
-- json11.cpp
-- json11.hpp
-+ if (NOT APPLE)
-+ # On macOS if you build libtgvoip with C++17 it uses std::optional
-+ # instead of absl::optional and when it uses optional::value, the
-+ # build fails, because optional::value is available starting with
-+ # macOS 10.14+. This way we force using absl::optional.
-+ target_compile_features(lib_tgvoip PUBLIC cxx_std_17)
-+ endif()
-
-- # Windows
-- os/windows/NetworkSocketWinsock.cpp
-- os/windows/NetworkSocketWinsock.h
-- os/windows/AudioInputWave.cpp
-- os/windows/AudioInputWave.h
-- os/windows/AudioOutputWave.cpp
-- os/windows/AudioOutputWave.h
-- os/windows/AudioOutputWASAPI.cpp
-- os/windows/AudioOutputWASAPI.h
-- os/windows/AudioInputWASAPI.cpp
-- os/windows/AudioInputWASAPI.h
-- os/windows/WindowsSpecific.cpp
-- os/windows/WindowsSpecific.h
-+ set(tgvoip_loc ${third_party_loc}/libtgvoip)
-
-- # macOS
-- os/darwin/AudioInputAudioUnit.cpp
-- os/darwin/AudioInputAudioUnit.h
-- os/darwin/AudioOutputAudioUnit.cpp
-- os/darwin/AudioOutputAudioUnit.h
-- os/darwin/AudioInputAudioUnitOSX.cpp
-- os/darwin/AudioInputAudioUnitOSX.h
-- os/darwin/AudioOutputAudioUnitOSX.cpp
-- os/darwin/AudioOutputAudioUnitOSX.h
-- os/darwin/AudioUnitIO.cpp
-- os/darwin/AudioUnitIO.h
-- os/darwin/DarwinSpecific.mm
-- os/darwin/DarwinSpecific.h
-+ nice_target_sources(lib_tgvoip ${tgvoip_loc}
-+ PRIVATE
-+ BlockingQueue.cpp
-+ BlockingQueue.h
-+ Buffers.cpp
-+ Buffers.h
-+ CongestionControl.cpp
-+ CongestionControl.h
-+ EchoCanceller.cpp
-+ EchoCanceller.h
-+ JitterBuffer.cpp
-+ JitterBuffer.h
-+ logging.cpp
-+ logging.h
-+ MediaStreamItf.cpp
-+ MediaStreamItf.h
-+ OpusDecoder.cpp
-+ OpusDecoder.h
-+ OpusEncoder.cpp
-+ OpusEncoder.h
-+ threading.h
-+ VoIPController.cpp
-+ VoIPGroupController.cpp
-+ VoIPController.h
-+ PrivateDefines.h
-+ VoIPServerConfig.cpp
-+ VoIPServerConfig.h
-+ audio/AudioInput.cpp
-+ audio/AudioInput.h
-+ audio/AudioOutput.cpp
-+ audio/AudioOutput.h
-+ audio/Resampler.cpp
-+ audio/Resampler.h
-+ NetworkSocket.cpp
-+ NetworkSocket.h
-+ PacketReassembler.cpp
-+ PacketReassembler.h
-+ MessageThread.cpp
-+ MessageThread.h
-+ audio/AudioIO.cpp
-+ audio/AudioIO.h
-+ video/ScreamCongestionController.cpp
-+ video/ScreamCongestionController.h
-+ video/VideoSource.cpp
-+ video/VideoSource.h
-+ video/VideoRenderer.cpp
-+ video/VideoRenderer.h
-+ json11.cpp
-+ json11.hpp
-
-- # Linux
-- os/linux/AudioInputALSA.cpp
-- os/linux/AudioInputALSA.h
-- os/linux/AudioOutputALSA.cpp
-- os/linux/AudioOutputALSA.h
-- os/linux/AudioOutputPulse.cpp
-- os/linux/AudioOutputPulse.h
-- os/linux/AudioInputPulse.cpp
-- os/linux/AudioInputPulse.h
-- os/linux/AudioPulse.cpp
-- os/linux/AudioPulse.h
-+ # Windows
-+ os/windows/NetworkSocketWinsock.cpp
-+ os/windows/NetworkSocketWinsock.h
-+ os/windows/AudioInputWave.cpp
-+ os/windows/AudioInputWave.h
-+ os/windows/AudioOutputWave.cpp
-+ os/windows/AudioOutputWave.h
-+ os/windows/AudioOutputWASAPI.cpp
-+ os/windows/AudioOutputWASAPI.h
-+ os/windows/AudioInputWASAPI.cpp
-+ os/windows/AudioInputWASAPI.h
-+ os/windows/WindowsSpecific.cpp
-+ os/windows/WindowsSpecific.h
-
-- # POSIX
-- os/posix/NetworkSocketPosix.cpp
-- os/posix/NetworkSocketPosix.h
-+ # macOS
-+ os/darwin/AudioInputAudioUnit.cpp
-+ os/darwin/AudioInputAudioUnit.h
-+ os/darwin/AudioOutputAudioUnit.cpp
-+ os/darwin/AudioOutputAudioUnit.h
-+ os/darwin/AudioInputAudioUnitOSX.cpp
-+ os/darwin/AudioInputAudioUnitOSX.h
-+ os/darwin/AudioOutputAudioUnitOSX.cpp
-+ os/darwin/AudioOutputAudioUnitOSX.h
-+ os/darwin/AudioUnitIO.cpp
-+ os/darwin/AudioUnitIO.h
-+ os/darwin/DarwinSpecific.mm
-+ os/darwin/DarwinSpecific.h
-
-- # WebRTC APM
-- webrtc_dsp/system_wrappers/include/field_trial.h
-- webrtc_dsp/system_wrappers/include/cpu_features_wrapper.h
-- webrtc_dsp/system_wrappers/include/asm_defines.h
-- webrtc_dsp/system_wrappers/include/metrics.h
-- webrtc_dsp/system_wrappers/include/compile_assert_c.h
-- webrtc_dsp/system_wrappers/source/field_trial.cc
-- webrtc_dsp/system_wrappers/source/metrics.cc
-- webrtc_dsp/system_wrappers/source/cpu_features.cc
-- webrtc_dsp/typedefs.h
-- webrtc_dsp/absl/strings/internal/memutil.h
-- webrtc_dsp/absl/strings/internal/memutil.cc
-- webrtc_dsp/absl/strings/string_view.cc
-- webrtc_dsp/absl/strings/ascii.h
-- webrtc_dsp/absl/strings/ascii.cc
-- webrtc_dsp/absl/strings/string_view.h
-- webrtc_dsp/absl/types/optional.h
-- webrtc_dsp/absl/types/bad_optional_access.h
-- webrtc_dsp/absl/types/bad_optional_access.cc
-- webrtc_dsp/absl/types/optional.cc
-- webrtc_dsp/absl/memory/memory.h
-- webrtc_dsp/absl/meta/type_traits.h
-- webrtc_dsp/absl/algorithm/algorithm.h
-- webrtc_dsp/absl/container/inlined_vector.h
-- webrtc_dsp/absl/base/policy_checks.h
-- webrtc_dsp/absl/base/port.h
-- webrtc_dsp/absl/base/config.h
-- webrtc_dsp/absl/base/internal/raw_logging.cc
-- webrtc_dsp/absl/base/internal/throw_delegate.cc
-- webrtc_dsp/absl/base/internal/invoke.h
-- webrtc_dsp/absl/base/internal/inline_variable.h
-- webrtc_dsp/absl/base/internal/atomic_hook.h
-- webrtc_dsp/absl/base/internal/identity.h
-- webrtc_dsp/absl/base/internal/raw_logging.h
-- webrtc_dsp/absl/base/internal/throw_delegate.h
-- webrtc_dsp/absl/base/attributes.h
-- webrtc_dsp/absl/base/macros.h
-- webrtc_dsp/absl/base/optimization.h
-- webrtc_dsp/absl/base/log_severity.h
-- webrtc_dsp/absl/utility/utility.h
-- webrtc_dsp/rtc_base/string_to_number.h
-- webrtc_dsp/rtc_base/constructormagic.h
-- webrtc_dsp/rtc_base/race_checker.cc
-- webrtc_dsp/rtc_base/strings/string_builder.h
-- webrtc_dsp/rtc_base/strings/string_builder.cc
-- webrtc_dsp/rtc_base/event_tracer.h
-- webrtc_dsp/rtc_base/stringencode.h
-- webrtc_dsp/rtc_base/memory/aligned_malloc.cc
-- webrtc_dsp/rtc_base/memory/aligned_malloc.h
-- webrtc_dsp/rtc_base/timeutils.cc
-- webrtc_dsp/rtc_base/event.h
-- webrtc_dsp/rtc_base/ignore_wundef.h
-- webrtc_dsp/rtc_base/stringutils.h
-- webrtc_dsp/rtc_base/arraysize.h
-- webrtc_dsp/rtc_base/platform_file.cc
-- webrtc_dsp/rtc_base/swap_queue.h
-- webrtc_dsp/rtc_base/string_to_number.cc
-- webrtc_dsp/rtc_base/trace_event.h
-- webrtc_dsp/rtc_base/checks.h
-- webrtc_dsp/rtc_base/deprecation.h
-- webrtc_dsp/rtc_base/thread_checker_impl.cc
-- webrtc_dsp/rtc_base/sanitizer.h
-- webrtc_dsp/rtc_base/scoped_ref_ptr.h
-- webrtc_dsp/rtc_base/logging.h
-- webrtc_dsp/rtc_base/logging_mac.h
-- webrtc_dsp/rtc_base/logging_mac.mm
-- webrtc_dsp/rtc_base/timeutils.h
-- webrtc_dsp/rtc_base/atomicops.h
-- webrtc_dsp/rtc_base/stringencode.cc
-- webrtc_dsp/rtc_base/stringutils.cc
-- webrtc_dsp/rtc_base/checks.cc
-- webrtc_dsp/rtc_base/numerics/safe_minmax.h
-- webrtc_dsp/rtc_base/numerics/safe_conversions.h
-- webrtc_dsp/rtc_base/numerics/safe_conversions_impl.h
-- webrtc_dsp/rtc_base/numerics/safe_compare.h
-- webrtc_dsp/rtc_base/system/unused.h
-- webrtc_dsp/rtc_base/system/inline.h
-- webrtc_dsp/rtc_base/system/ignore_warnings.h
-- webrtc_dsp/rtc_base/system/asm_defines.h
-- webrtc_dsp/rtc_base/system/rtc_export.h
-- webrtc_dsp/rtc_base/system/arch.h
-- webrtc_dsp/rtc_base/platform_thread.cc
-- webrtc_dsp/rtc_base/platform_thread.h
-- webrtc_dsp/rtc_base/platform_thread_types.h
-- webrtc_dsp/rtc_base/protobuf_utils.h
-- webrtc_dsp/rtc_base/thread_annotations.h
-- webrtc_dsp/rtc_base/gtest_prod_util.h
-- webrtc_dsp/rtc_base/function_view.h
-- webrtc_dsp/rtc_base/criticalsection.h
-- webrtc_dsp/rtc_base/criticalsection.cc
-- webrtc_dsp/rtc_base/platform_thread_types.cc
-- webrtc_dsp/rtc_base/refcount.h
-- webrtc_dsp/rtc_base/event.cc
-- webrtc_dsp/rtc_base/thread_checker_impl.h
-- webrtc_dsp/rtc_base/event_tracer.cc
-- webrtc_dsp/rtc_base/compile_assert_c.h
-- webrtc_dsp/rtc_base/logging_webrtc.cc
-- webrtc_dsp/rtc_base/type_traits.h
-- webrtc_dsp/rtc_base/platform_file.h
-- webrtc_dsp/rtc_base/refcounter.h
-- webrtc_dsp/rtc_base/logging_mac.h
-- webrtc_dsp/rtc_base/thread_checker.h
-- webrtc_dsp/rtc_base/race_checker.h
-- webrtc_dsp/rtc_base/refcountedobject.h
-- webrtc_dsp/third_party/rnnoise/src/rnn_vad_weights.cc
-- webrtc_dsp/third_party/rnnoise/src/rnn_activations.h
-- webrtc_dsp/third_party/rnnoise/src/kiss_fft.h
-- webrtc_dsp/third_party/rnnoise/src/kiss_fft.cc
-- webrtc_dsp/third_party/rnnoise/src/rnn_vad_weights.h
-- webrtc_dsp/api/audio/audio_frame.cc
-- webrtc_dsp/api/audio/echo_canceller3_config.h
-- webrtc_dsp/api/audio/echo_control.h
-- webrtc_dsp/api/audio/audio_frame.h
-- webrtc_dsp/api/audio/echo_canceller3_config.cc
-- webrtc_dsp/api/audio/echo_canceller3_factory.h
-- webrtc_dsp/api/audio/echo_canceller3_factory.cc
-- webrtc_dsp/api/array_view.h
-- webrtc_dsp/modules/third_party/fft/fft.h
-- webrtc_dsp/modules/third_party/fft/fft.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/bandwidth_info.h
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/include/isac.h
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_estimator.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_shape_swb16_tables.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_gain_tables.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/arith_routines_logist.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/os_specific_inline.h
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/filterbanks.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/entropy_coding.h
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/isac_vad.h
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/settings.h
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/transform.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_shape_swb12_tables.h
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/arith_routines.h
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/crc.h
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_filter.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/encode_lpc_swb.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/filter_functions.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/decode.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lattice.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/intialize.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_tables.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_gain_swb_tables.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/bandwidth_estimator.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/isac_float_type.h
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_lag_tables.h
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/encode.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_analysis.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/spectrum_ar_model_tables.h
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/arith_routines_hist.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/codec.h
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_gain_tables.h
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_shape_swb16_tables.h
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_estimator.h
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/entropy_coding.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/isac_vad.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/structs.h
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/filter_functions.h
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/encode_lpc_swb.h
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_filter.h
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/arith_routines.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/crc.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_shape_swb12_tables.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_analysis.h
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/decode_bwe.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/spectrum_ar_model_tables.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/bandwidth_estimator.h
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_lag_tables.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/isac.c
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_gain_swb_tables.h
-- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_tables.h
-- webrtc_dsp/modules/audio_processing/rms_level.cc
-- webrtc_dsp/modules/audio_processing/echo_detector/moving_max.h
-- webrtc_dsp/modules/audio_processing/echo_detector/circular_buffer.h
-- webrtc_dsp/modules/audio_processing/echo_detector/normalized_covariance_estimator.h
-- webrtc_dsp/modules/audio_processing/echo_detector/normalized_covariance_estimator.cc
-- webrtc_dsp/modules/audio_processing/echo_detector/moving_max.cc
-- webrtc_dsp/modules/audio_processing/echo_detector/circular_buffer.cc
-- webrtc_dsp/modules/audio_processing/echo_detector/mean_variance_estimator.cc
-- webrtc_dsp/modules/audio_processing/echo_detector/mean_variance_estimator.h
-- webrtc_dsp/modules/audio_processing/gain_control_for_experimental_agc.h
-- webrtc_dsp/modules/audio_processing/splitting_filter.cc
-- webrtc_dsp/modules/audio_processing/gain_control_impl.cc
-- webrtc_dsp/modules/audio_processing/rms_level.h
-- webrtc_dsp/modules/audio_processing/ns/ns_core.h
-- webrtc_dsp/modules/audio_processing/ns/nsx_core.c
-- webrtc_dsp/modules/audio_processing/ns/noise_suppression_x.c
-- webrtc_dsp/modules/audio_processing/ns/nsx_core_c.c
-- webrtc_dsp/modules/audio_processing/ns/defines.h
-- webrtc_dsp/modules/audio_processing/ns/noise_suppression.h
-- webrtc_dsp/modules/audio_processing/ns/ns_core.c
-- webrtc_dsp/modules/audio_processing/ns/nsx_core.h
-- webrtc_dsp/modules/audio_processing/ns/windows_private.h
-- webrtc_dsp/modules/audio_processing/ns/noise_suppression_x.h
-- webrtc_dsp/modules/audio_processing/ns/noise_suppression.c
-- webrtc_dsp/modules/audio_processing/ns/nsx_defines.h
-- webrtc_dsp/modules/audio_processing/residual_echo_detector.h
-- webrtc_dsp/modules/audio_processing/audio_processing_impl.h
-- webrtc_dsp/modules/audio_processing/audio_buffer.cc
-- webrtc_dsp/modules/audio_processing/typing_detection.cc
-- webrtc_dsp/modules/audio_processing/render_queue_item_verifier.h
-- webrtc_dsp/modules/audio_processing/include/audio_generator.h
-- webrtc_dsp/modules/audio_processing/include/config.h
-- webrtc_dsp/modules/audio_processing/include/audio_frame_view.h
-- webrtc_dsp/modules/audio_processing/include/mock_audio_processing.h
-- webrtc_dsp/modules/audio_processing/include/gain_control.h
-- webrtc_dsp/modules/audio_processing/include/audio_generator_factory.h
-- webrtc_dsp/modules/audio_processing/include/audio_processing_statistics.cc
-- webrtc_dsp/modules/audio_processing/include/audio_generator_factory.cc
-- webrtc_dsp/modules/audio_processing/include/aec_dump.cc
-- webrtc_dsp/modules/audio_processing/include/aec_dump.h
-- webrtc_dsp/modules/audio_processing/include/audio_processing_statistics.h
-- webrtc_dsp/modules/audio_processing/include/audio_processing.h
-- webrtc_dsp/modules/audio_processing/include/audio_processing.cc
-- webrtc_dsp/modules/audio_processing/include/config.cc
-- webrtc_dsp/modules/audio_processing/agc2/interpolated_gain_curve.h
-- webrtc_dsp/modules/audio_processing/agc2/biquad_filter.h
-- webrtc_dsp/modules/audio_processing/agc2/interpolated_gain_curve.cc
-- webrtc_dsp/modules/audio_processing/agc2/agc2_common.cc
-- webrtc_dsp/modules/audio_processing/agc2/agc2_testing_common.h
-- webrtc_dsp/modules/audio_processing/agc2/adaptive_mode_level_estimator.h
-- webrtc_dsp/modules/audio_processing/agc2/gain_applier.cc
-- webrtc_dsp/modules/audio_processing/agc2/signal_classifier.h
-- webrtc_dsp/modules/audio_processing/agc2/adaptive_agc.cc
-- webrtc_dsp/modules/audio_processing/agc2/adaptive_digital_gain_applier.cc
-- webrtc_dsp/modules/audio_processing/agc2/limiter.cc
-- webrtc_dsp/modules/audio_processing/agc2/saturation_protector.cc
-- webrtc_dsp/modules/audio_processing/agc2/vector_float_frame.h
-- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/spectral_features_internal.cc
-- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/sequence_buffer.h
-- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/rnn.h
-- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/rnn.cc
-- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/test_utils.h
-- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/pitch_info.h
-- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/lp_residual.h
-- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/ring_buffer.h
-- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/pitch_search_internal.cc
-- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/symmetric_matrix_buffer.h
-- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/spectral_features.h
-- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/features_extraction.h
-- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/common.h
-- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/spectral_features_internal.h
-- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/fft_util.h
-- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/spectral_features.cc
-- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/pitch_search_internal.h
-- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/pitch_search.cc
-- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/pitch_search.h
-- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/features_extraction.cc
-- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/fft_util.cc
-- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/lp_residual.cc
-- webrtc_dsp/modules/audio_processing/agc2/fixed_gain_controller.h
-- webrtc_dsp/modules/audio_processing/agc2/adaptive_mode_level_estimator_agc.cc
-- webrtc_dsp/modules/audio_processing/agc2/vector_float_frame.cc
-- webrtc_dsp/modules/audio_processing/agc2/down_sampler.h
-- webrtc_dsp/modules/audio_processing/agc2/noise_level_estimator.cc
-- webrtc_dsp/modules/audio_processing/agc2/agc2_testing_common.cc
-- webrtc_dsp/modules/audio_processing/agc2/fixed_digital_level_estimator.cc
-- webrtc_dsp/modules/audio_processing/agc2/fixed_gain_controller.cc
-- webrtc_dsp/modules/audio_processing/agc2/saturation_protector.h
-- webrtc_dsp/modules/audio_processing/agc2/vad_with_level.cc
-- webrtc_dsp/modules/audio_processing/agc2/limiter_db_gain_curve.cc
-- webrtc_dsp/modules/audio_processing/agc2/agc2_common.h
-- webrtc_dsp/modules/audio_processing/agc2/adaptive_mode_level_estimator_agc.h
-- webrtc_dsp/modules/audio_processing/agc2/adaptive_digital_gain_applier.h
-- webrtc_dsp/modules/audio_processing/agc2/vad_with_level.h
-- webrtc_dsp/modules/audio_processing/agc2/limiter_db_gain_curve.h
-- webrtc_dsp/modules/audio_processing/agc2/fixed_digital_level_estimator.h
-- webrtc_dsp/modules/audio_processing/agc2/adaptive_agc.h
-- webrtc_dsp/modules/audio_processing/agc2/gain_applier.h
-- webrtc_dsp/modules/audio_processing/agc2/down_sampler.cc
-- webrtc_dsp/modules/audio_processing/agc2/noise_level_estimator.h
-- webrtc_dsp/modules/audio_processing/agc2/signal_classifier.cc
-- webrtc_dsp/modules/audio_processing/agc2/noise_spectrum_estimator.cc
-- webrtc_dsp/modules/audio_processing/agc2/compute_interpolated_gain_curve.cc
-- webrtc_dsp/modules/audio_processing/agc2/compute_interpolated_gain_curve.h
-- webrtc_dsp/modules/audio_processing/agc2/biquad_filter.cc
-- webrtc_dsp/modules/audio_processing/agc2/noise_spectrum_estimator.h
-- webrtc_dsp/modules/audio_processing/agc2/limiter.h
-- webrtc_dsp/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc
-- webrtc_dsp/modules/audio_processing/transient/moving_moments.cc
-- webrtc_dsp/modules/audio_processing/transient/transient_detector.h
-- webrtc_dsp/modules/audio_processing/transient/wpd_tree.cc
-- webrtc_dsp/modules/audio_processing/transient/transient_suppressor.h
-- webrtc_dsp/modules/audio_processing/transient/daubechies_8_wavelet_coeffs.h
-- webrtc_dsp/modules/audio_processing/transient/common.h
-- webrtc_dsp/modules/audio_processing/transient/wpd_node.h
-- webrtc_dsp/modules/audio_processing/transient/moving_moments.h
-- webrtc_dsp/modules/audio_processing/transient/wpd_tree.h
-- webrtc_dsp/modules/audio_processing/transient/wpd_node.cc
-- webrtc_dsp/modules/audio_processing/transient/transient_suppressor.cc
-- webrtc_dsp/modules/audio_processing/transient/transient_detector.cc
-- webrtc_dsp/modules/audio_processing/transient/dyadic_decimator.h
-- webrtc_dsp/modules/audio_processing/low_cut_filter.cc
-- webrtc_dsp/modules/audio_processing/noise_suppression_impl.h
-- webrtc_dsp/modules/audio_processing/level_estimator_impl.cc
-- webrtc_dsp/modules/audio_processing/three_band_filter_bank.cc
-- webrtc_dsp/modules/audio_processing/aec/echo_cancellation.cc
-- webrtc_dsp/modules/audio_processing/aec/aec_resampler.h
-- webrtc_dsp/modules/audio_processing/aec/aec_resampler.cc
-- webrtc_dsp/modules/audio_processing/aec/echo_cancellation.h
-- webrtc_dsp/modules/audio_processing/aec/aec_core.cc
-- webrtc_dsp/modules/audio_processing/aec/aec_core.h
-- webrtc_dsp/modules/audio_processing/aec/aec_core_optimized_methods.h
-- webrtc_dsp/modules/audio_processing/aec/aec_core_sse2.cc
-- webrtc_dsp/modules/audio_processing/aec/aec_common.h
-- webrtc_dsp/modules/audio_processing/voice_detection_impl.h
-- webrtc_dsp/modules/audio_processing/voice_detection_impl.cc
-- webrtc_dsp/modules/audio_processing/echo_cancellation_impl.cc
-- webrtc_dsp/modules/audio_processing/gain_control_for_experimental_agc.cc
-- webrtc_dsp/modules/audio_processing/agc/agc.cc
-- webrtc_dsp/modules/audio_processing/agc/loudness_histogram.cc
-- webrtc_dsp/modules/audio_processing/agc/agc_manager_direct.cc
-- webrtc_dsp/modules/audio_processing/agc/legacy/analog_agc.h
-- webrtc_dsp/modules/audio_processing/agc/legacy/gain_control.h
-- webrtc_dsp/modules/audio_processing/agc/legacy/digital_agc.h
-- webrtc_dsp/modules/audio_processing/agc/legacy/analog_agc.c
-- webrtc_dsp/modules/audio_processing/agc/legacy/digital_agc.c
-- webrtc_dsp/modules/audio_processing/agc/utility.cc
-- webrtc_dsp/modules/audio_processing/agc/mock_agc.h
-- webrtc_dsp/modules/audio_processing/agc/loudness_histogram.h
-- webrtc_dsp/modules/audio_processing/agc/gain_map_internal.h
-- webrtc_dsp/modules/audio_processing/agc/utility.h
-- webrtc_dsp/modules/audio_processing/agc/agc_manager_direct.h
-- webrtc_dsp/modules/audio_processing/agc/agc.h
-- webrtc_dsp/modules/audio_processing/common.h
-- webrtc_dsp/modules/audio_processing/audio_processing_impl.cc
-- webrtc_dsp/modules/audio_processing/audio_buffer.h
-- webrtc_dsp/modules/audio_processing/echo_control_mobile_impl.h
-- webrtc_dsp/modules/audio_processing/splitting_filter.h
-- webrtc_dsp/modules/audio_processing/low_cut_filter.h
-- webrtc_dsp/modules/audio_processing/audio_generator/file_audio_generator.h
-- webrtc_dsp/modules/audio_processing/audio_generator/file_audio_generator.cc
-- webrtc_dsp/modules/audio_processing/gain_controller2.cc
-- webrtc_dsp/modules/audio_processing/three_band_filter_bank.h
-- webrtc_dsp/modules/audio_processing/residual_echo_detector.cc
-- webrtc_dsp/modules/audio_processing/echo_cancellation_impl.h
-- webrtc_dsp/modules/audio_processing/noise_suppression_impl.cc
-- webrtc_dsp/modules/audio_processing/level_estimator_impl.h
-- webrtc_dsp/modules/audio_processing/gain_controller2.h
-- webrtc_dsp/modules/audio_processing/aecm/aecm_core.h
-- webrtc_dsp/modules/audio_processing/aecm/aecm_defines.h
-- webrtc_dsp/modules/audio_processing/aecm/aecm_core.cc
-- webrtc_dsp/modules/audio_processing/aecm/aecm_core_c.cc
-- webrtc_dsp/modules/audio_processing/aecm/echo_control_mobile.h
-- webrtc_dsp/modules/audio_processing/aecm/echo_control_mobile.cc
-- webrtc_dsp/modules/audio_processing/aec3/render_reverb_model.cc
-- webrtc_dsp/modules/audio_processing/aec3/downsampled_render_buffer.h
-- webrtc_dsp/modules/audio_processing/aec3/subtractor_output_analyzer.h
-- webrtc_dsp/modules/audio_processing/aec3/reverb_model_fallback.cc
-- webrtc_dsp/modules/audio_processing/aec3/residual_echo_estimator.h
-- webrtc_dsp/modules/audio_processing/aec3/shadow_filter_update_gain.h
-- webrtc_dsp/modules/audio_processing/aec3/echo_remover_metrics.cc
-- webrtc_dsp/modules/audio_processing/aec3/matched_filter_lag_aggregator.cc
-- webrtc_dsp/modules/audio_processing/aec3/render_delay_buffer2.cc
-- webrtc_dsp/modules/audio_processing/aec3/aec_state.h
-- webrtc_dsp/modules/audio_processing/aec3/suppression_filter.h
-- webrtc_dsp/modules/audio_processing/aec3/echo_path_variability.cc
-- webrtc_dsp/modules/audio_processing/aec3/frame_blocker.cc
-- webrtc_dsp/modules/audio_processing/aec3/subtractor.cc
-- webrtc_dsp/modules/audio_processing/aec3/block_delay_buffer.h
-- webrtc_dsp/modules/audio_processing/aec3/adaptive_fir_filter.h
-- webrtc_dsp/modules/audio_processing/aec3/cascaded_biquad_filter.h
-- webrtc_dsp/modules/audio_processing/aec3/matched_filter.h
-- webrtc_dsp/modules/audio_processing/aec3/subtractor_output.h
-- webrtc_dsp/modules/audio_processing/aec3/render_signal_analyzer.h
-- webrtc_dsp/modules/audio_processing/aec3/aec3_fft.cc
-- webrtc_dsp/modules/audio_processing/aec3/aec3_fft.h
-- webrtc_dsp/modules/audio_processing/aec3/echo_remover_metrics.h
-- webrtc_dsp/modules/audio_processing/aec3/fullband_erle_estimator.cc
-- webrtc_dsp/modules/audio_processing/aec3/suppression_filter.cc
-- webrtc_dsp/modules/audio_processing/aec3/block_processor.cc
-- webrtc_dsp/modules/audio_processing/aec3/filter_analyzer.h
-- webrtc_dsp/modules/audio_processing/aec3/subtractor.h
-- webrtc_dsp/modules/audio_processing/aec3/echo_path_delay_estimator.h
-- webrtc_dsp/modules/audio_processing/aec3/subband_erle_estimator.cc
-- webrtc_dsp/modules/audio_processing/aec3/render_delay_controller_metrics.cc
-- webrtc_dsp/modules/audio_processing/aec3/render_delay_buffer.cc
-- webrtc_dsp/modules/audio_processing/aec3/block_processor_metrics.h
-- webrtc_dsp/modules/audio_processing/aec3/vector_buffer.cc
-- webrtc_dsp/modules/audio_processing/aec3/erl_estimator.cc
-- webrtc_dsp/modules/audio_processing/aec3/aec_state.cc
-- webrtc_dsp/modules/audio_processing/aec3/adaptive_fir_filter.cc
-- webrtc_dsp/modules/audio_processing/aec3/fft_data.h
-- webrtc_dsp/modules/audio_processing/aec3/render_delay_controller.cc
-- webrtc_dsp/modules/audio_processing/aec3/skew_estimator.cc
-- webrtc_dsp/modules/audio_processing/aec3/render_delay_controller_metrics.h
-- webrtc_dsp/modules/audio_processing/aec3/comfort_noise_generator.h
-- webrtc_dsp/modules/audio_processing/aec3/echo_path_delay_estimator.cc
-- webrtc_dsp/modules/audio_processing/aec3/erl_estimator.h
-- webrtc_dsp/modules/audio_processing/aec3/echo_remover.h
-- webrtc_dsp/modules/audio_processing/aec3/block_framer.cc
-- webrtc_dsp/modules/audio_processing/aec3/erle_estimator.cc
-- webrtc_dsp/modules/audio_processing/aec3/reverb_model.cc
-- webrtc_dsp/modules/audio_processing/aec3/cascaded_biquad_filter.cc
-- webrtc_dsp/modules/audio_processing/aec3/matrix_buffer.h
-- webrtc_dsp/modules/audio_processing/aec3/render_buffer.cc
-- webrtc_dsp/modules/audio_processing/aec3/reverb_model_estimator.h
-- webrtc_dsp/modules/audio_processing/aec3/subtractor_output.cc
-- webrtc_dsp/modules/audio_processing/aec3/stationarity_estimator.cc
-- webrtc_dsp/modules/audio_processing/aec3/render_signal_analyzer.cc
-- webrtc_dsp/modules/audio_processing/aec3/echo_path_variability.h
-- webrtc_dsp/modules/audio_processing/aec3/moving_average.h
-- webrtc_dsp/modules/audio_processing/aec3/render_reverb_model.h
-- webrtc_dsp/modules/audio_processing/aec3/subtractor_output_analyzer.cc
-- webrtc_dsp/modules/audio_processing/aec3/suppression_gain.cc
-- webrtc_dsp/modules/audio_processing/aec3/echo_audibility.cc
-- webrtc_dsp/modules/audio_processing/aec3/block_processor_metrics.cc
-- webrtc_dsp/modules/audio_processing/aec3/render_delay_controller.h
-- webrtc_dsp/modules/audio_processing/aec3/suppression_gain.h
-- webrtc_dsp/modules/audio_processing/aec3/moving_average.cc
-- webrtc_dsp/modules/audio_processing/aec3/erle_estimator.h
-- webrtc_dsp/modules/audio_processing/aec3/subband_erle_estimator.h
-- webrtc_dsp/modules/audio_processing/aec3/reverb_model_estimator.cc
-- webrtc_dsp/modules/audio_processing/aec3/aec3_common.cc
-- webrtc_dsp/modules/audio_processing/aec3/residual_echo_estimator.cc
-- webrtc_dsp/modules/audio_processing/aec3/block_processor.h
-- webrtc_dsp/modules/audio_processing/aec3/fullband_erle_estimator.h
-- webrtc_dsp/modules/audio_processing/aec3/matched_filter.cc
-- webrtc_dsp/modules/audio_processing/aec3/stationarity_estimator.h
-- webrtc_dsp/modules/audio_processing/aec3/echo_canceller3.h
-- webrtc_dsp/modules/audio_processing/aec3/skew_estimator.h
-- webrtc_dsp/modules/audio_processing/aec3/reverb_decay_estimator.cc
-- webrtc_dsp/modules/audio_processing/aec3/render_delay_controller2.cc
-- webrtc_dsp/modules/audio_processing/aec3/render_buffer.h
-- webrtc_dsp/modules/audio_processing/aec3/suppression_gain_limiter.cc
-- webrtc_dsp/modules/audio_processing/aec3/main_filter_update_gain.cc
-- webrtc_dsp/modules/audio_processing/aec3/echo_remover.cc
-- webrtc_dsp/modules/audio_processing/aec3/reverb_model_fallback.h
-- webrtc_dsp/modules/audio_processing/aec3/downsampled_render_buffer.cc
-- webrtc_dsp/modules/audio_processing/aec3/vector_buffer.h
-- webrtc_dsp/modules/audio_processing/aec3/matrix_buffer.cc
-- webrtc_dsp/modules/audio_processing/aec3/reverb_frequency_response.h
-- webrtc_dsp/modules/audio_processing/aec3/echo_audibility.h
-- webrtc_dsp/modules/audio_processing/aec3/fft_buffer.h
-- webrtc_dsp/modules/audio_processing/aec3/block_processor2.cc
-- webrtc_dsp/modules/audio_processing/aec3/echo_canceller3.cc
-- webrtc_dsp/modules/audio_processing/aec3/block_delay_buffer.cc
-- webrtc_dsp/modules/audio_processing/aec3/aec3_common.h
-- webrtc_dsp/modules/audio_processing/aec3/fft_buffer.cc
-- webrtc_dsp/modules/audio_processing/aec3/vector_math.h
-- webrtc_dsp/modules/audio_processing/aec3/decimator.h
-- webrtc_dsp/modules/audio_processing/aec3/frame_blocker.h
-- webrtc_dsp/modules/audio_processing/aec3/block_framer.h
-- webrtc_dsp/modules/audio_processing/aec3/suppression_gain_limiter.h
-- webrtc_dsp/modules/audio_processing/aec3/delay_estimate.h
-- webrtc_dsp/modules/audio_processing/aec3/comfort_noise_generator.cc
-- webrtc_dsp/modules/audio_processing/aec3/reverb_model.h
-- webrtc_dsp/modules/audio_processing/aec3/main_filter_update_gain.h
-- webrtc_dsp/modules/audio_processing/aec3/matched_filter_lag_aggregator.h
-- webrtc_dsp/modules/audio_processing/aec3/shadow_filter_update_gain.cc
-- webrtc_dsp/modules/audio_processing/aec3/filter_analyzer.cc
-- webrtc_dsp/modules/audio_processing/aec3/reverb_decay_estimator.h
-- webrtc_dsp/modules/audio_processing/aec3/reverb_frequency_response.cc
-- webrtc_dsp/modules/audio_processing/aec3/decimator.cc
-- webrtc_dsp/modules/audio_processing/aec3/render_delay_buffer.h
-- webrtc_dsp/modules/audio_processing/echo_control_mobile_impl.cc
-- webrtc_dsp/modules/audio_processing/gain_control_impl.h
-- webrtc_dsp/modules/audio_processing/typing_detection.h
-- webrtc_dsp/modules/audio_processing/logging/apm_data_dumper.cc
-- webrtc_dsp/modules/audio_processing/logging/apm_data_dumper.h
-- webrtc_dsp/modules/audio_processing/vad/voice_activity_detector.cc
-- webrtc_dsp/modules/audio_processing/vad/standalone_vad.cc
-- webrtc_dsp/modules/audio_processing/vad/vad_audio_proc_internal.h
-- webrtc_dsp/modules/audio_processing/vad/pitch_internal.cc
-- webrtc_dsp/modules/audio_processing/vad/vad_circular_buffer.cc
-- webrtc_dsp/modules/audio_processing/vad/vad_circular_buffer.h
-- webrtc_dsp/modules/audio_processing/vad/pitch_based_vad.h
-- webrtc_dsp/modules/audio_processing/vad/vad_audio_proc.cc
-- webrtc_dsp/modules/audio_processing/vad/pole_zero_filter.cc
-- webrtc_dsp/modules/audio_processing/vad/pole_zero_filter.h
-- webrtc_dsp/modules/audio_processing/vad/pitch_based_vad.cc
-- webrtc_dsp/modules/audio_processing/vad/gmm.h
-- webrtc_dsp/modules/audio_processing/vad/common.h
-- webrtc_dsp/modules/audio_processing/vad/vad_audio_proc.h
-- webrtc_dsp/modules/audio_processing/vad/voice_gmm_tables.h
-- webrtc_dsp/modules/audio_processing/vad/noise_gmm_tables.h
-- webrtc_dsp/modules/audio_processing/vad/pitch_internal.h
-- webrtc_dsp/modules/audio_processing/vad/gmm.cc
-- webrtc_dsp/modules/audio_processing/vad/standalone_vad.h
-- webrtc_dsp/modules/audio_processing/vad/voice_activity_detector.h
-- webrtc_dsp/modules/audio_processing/utility/delay_estimator_internal.h
-- webrtc_dsp/modules/audio_processing/utility/ooura_fft.cc
-- webrtc_dsp/modules/audio_processing/utility/ooura_fft.h
-- webrtc_dsp/modules/audio_processing/utility/delay_estimator_wrapper.cc
-- webrtc_dsp/modules/audio_processing/utility/ooura_fft_sse2.cc
-- webrtc_dsp/modules/audio_processing/utility/delay_estimator.cc
-- webrtc_dsp/modules/audio_processing/utility/block_mean_calculator.h
-- webrtc_dsp/modules/audio_processing/utility/block_mean_calculator.cc
-- webrtc_dsp/modules/audio_processing/utility/delay_estimator.h
-- webrtc_dsp/modules/audio_processing/utility/ooura_fft_tables_common.h
-- webrtc_dsp/modules/audio_processing/utility/delay_estimator_wrapper.h
-- webrtc_dsp/common_audio/mocks/mock_smoothing_filter.h
-- webrtc_dsp/common_audio/wav_file.h
-- webrtc_dsp/common_audio/window_generator.cc
-- webrtc_dsp/common_audio/channel_buffer.cc
-- webrtc_dsp/common_audio/fir_filter_factory.cc
-- webrtc_dsp/common_audio/sparse_fir_filter.h
-- webrtc_dsp/common_audio/fir_filter_sse.h
-- webrtc_dsp/common_audio/window_generator.h
-- webrtc_dsp/common_audio/ring_buffer.h
-- webrtc_dsp/common_audio/fir_filter.h
-- webrtc_dsp/common_audio/include/audio_util.h
-- webrtc_dsp/common_audio/wav_header.cc
-- webrtc_dsp/common_audio/real_fourier_ooura.cc
-- webrtc_dsp/common_audio/audio_util.cc
-- webrtc_dsp/common_audio/real_fourier_ooura.h
-- webrtc_dsp/common_audio/fir_filter_sse.cc
-- webrtc_dsp/common_audio/smoothing_filter.h
-- webrtc_dsp/common_audio/resampler/push_sinc_resampler.cc
-- webrtc_dsp/common_audio/resampler/sinc_resampler.h
-- webrtc_dsp/common_audio/resampler/resampler.cc
-- webrtc_dsp/common_audio/resampler/sinc_resampler_sse.cc
-- webrtc_dsp/common_audio/resampler/include/push_resampler.h
-- webrtc_dsp/common_audio/resampler/include/resampler.h
-- webrtc_dsp/common_audio/resampler/push_sinc_resampler.h
-- webrtc_dsp/common_audio/resampler/push_resampler.cc
-- webrtc_dsp/common_audio/resampler/sinusoidal_linear_chirp_source.h
-- webrtc_dsp/common_audio/resampler/sinc_resampler.cc
-- webrtc_dsp/common_audio/resampler/sinusoidal_linear_chirp_source.cc
-- webrtc_dsp/common_audio/fir_filter_factory.h
-- webrtc_dsp/common_audio/audio_converter.h
-- webrtc_dsp/common_audio/wav_file.cc
-- webrtc_dsp/common_audio/third_party/spl_sqrt_floor/spl_sqrt_floor.c
-- webrtc_dsp/common_audio/third_party/spl_sqrt_floor/spl_sqrt_floor.h
-- webrtc_dsp/common_audio/third_party/fft4g/fft4g.c
-- webrtc_dsp/common_audio/third_party/fft4g/fft4g.h
-- webrtc_dsp/common_audio/audio_converter.cc
-- webrtc_dsp/common_audio/real_fourier.cc
-- webrtc_dsp/common_audio/channel_buffer.h
-- webrtc_dsp/common_audio/real_fourier.h
-- webrtc_dsp/common_audio/sparse_fir_filter.cc
-- webrtc_dsp/common_audio/smoothing_filter.cc
-- webrtc_dsp/common_audio/fir_filter_c.cc
-- webrtc_dsp/common_audio/ring_buffer.c
-- webrtc_dsp/common_audio/fir_filter_c.h
-- webrtc_dsp/common_audio/signal_processing/complex_fft_tables.h
-- webrtc_dsp/common_audio/signal_processing/complex_fft.c
-- webrtc_dsp/common_audio/signal_processing/filter_ma_fast_q12.c
-- webrtc_dsp/common_audio/signal_processing/levinson_durbin.c
-- webrtc_dsp/common_audio/signal_processing/dot_product_with_scale.cc
-- webrtc_dsp/common_audio/signal_processing/auto_corr_to_refl_coef.c
-- webrtc_dsp/common_audio/signal_processing/resample_by_2_internal.c
-- webrtc_dsp/common_audio/signal_processing/energy.c
-- webrtc_dsp/common_audio/signal_processing/sqrt_of_one_minus_x_squared.c
-- webrtc_dsp/common_audio/signal_processing/downsample_fast.c
-- webrtc_dsp/common_audio/signal_processing/splitting_filter1.c
-- webrtc_dsp/common_audio/signal_processing/filter_ar_fast_q12.c
-- webrtc_dsp/common_audio/signal_processing/spl_init.c
-- webrtc_dsp/common_audio/signal_processing/lpc_to_refl_coef.c
-- webrtc_dsp/common_audio/signal_processing/cross_correlation.c
-- webrtc_dsp/common_audio/signal_processing/include/signal_processing_library.h
-- webrtc_dsp/common_audio/signal_processing/include/real_fft.h
-- webrtc_dsp/common_audio/signal_processing/include/spl_inl.h
-- webrtc_dsp/common_audio/signal_processing/division_operations.c
-- webrtc_dsp/common_audio/signal_processing/auto_correlation.c
-- webrtc_dsp/common_audio/signal_processing/get_scaling_square.c
-- webrtc_dsp/common_audio/signal_processing/dot_product_with_scale.h
-- webrtc_dsp/common_audio/signal_processing/resample_by_2_internal.h
-- webrtc_dsp/common_audio/signal_processing/resample.c
-- webrtc_dsp/common_audio/signal_processing/min_max_operations.c
-- webrtc_dsp/common_audio/signal_processing/refl_coef_to_lpc.c
-- webrtc_dsp/common_audio/signal_processing/filter_ar.c
-- webrtc_dsp/common_audio/signal_processing/vector_scaling_operations.c
-- webrtc_dsp/common_audio/signal_processing/resample_fractional.c
-- webrtc_dsp/common_audio/signal_processing/real_fft.c
-- webrtc_dsp/common_audio/signal_processing/ilbc_specific_functions.c
-- webrtc_dsp/common_audio/signal_processing/complex_bit_reverse.c
-- webrtc_dsp/common_audio/signal_processing/randomization_functions.c
-- webrtc_dsp/common_audio/signal_processing/copy_set_operations.c
-- webrtc_dsp/common_audio/signal_processing/resample_by_2.c
-- webrtc_dsp/common_audio/signal_processing/get_hanning_window.c
-- webrtc_dsp/common_audio/signal_processing/resample_48khz.c
-- webrtc_dsp/common_audio/signal_processing/spl_inl.c
-- webrtc_dsp/common_audio/signal_processing/spl_sqrt.c
-- webrtc_dsp/common_audio/wav_header.h
-- webrtc_dsp/common_audio/vad/vad_sp.c
-- webrtc_dsp/common_audio/vad/vad.cc
-- webrtc_dsp/common_audio/vad/webrtc_vad.c
-- webrtc_dsp/common_audio/vad/vad_core.h
-- webrtc_dsp/common_audio/vad/include/vad.h
-- webrtc_dsp/common_audio/vad/include/webrtc_vad.h
-- webrtc_dsp/common_audio/vad/vad_gmm.h
-- webrtc_dsp/common_audio/vad/vad_filterbank.c
-- webrtc_dsp/common_audio/vad/vad_core.c
-- webrtc_dsp/common_audio/vad/vad_sp.h
-- webrtc_dsp/common_audio/vad/vad_filterbank.h
-- webrtc_dsp/common_audio/vad/vad_gmm.c
-+ # Linux
-+ os/linux/AudioInputALSA.cpp
-+ os/linux/AudioInputALSA.h
-+ os/linux/AudioOutputALSA.cpp
-+ os/linux/AudioOutputALSA.h
-+ os/linux/AudioOutputPulse.cpp
-+ os/linux/AudioOutputPulse.h
-+ os/linux/AudioInputPulse.cpp
-+ os/linux/AudioInputPulse.h
-+ os/linux/AudioPulse.cpp
-+ os/linux/AudioPulse.h
-
-- # ARM/NEON sources
-- # TODO check if there's a good way to make these compile with ARM ports of TDesktop
-- # webrtc_dsp/modules/audio_processing/ns/nsx_core_neon.c
-- # webrtc_dsp/modules/audio_processing/aec/aec_core_neon.cc
-- # webrtc_dsp/modules/audio_processing/aecm/aecm_core_neon.cc
-- # webrtc_dsp/modules/audio_processing/utility/ooura_fft_tables_neon_sse2.h
-- # webrtc_dsp/modules/audio_processing/utility/ooura_fft_neon.cc
-- # webrtc_dsp/common_audio/fir_filter_neon.cc
-- # webrtc_dsp/common_audio/resampler/sinc_resampler_neon.cc
-- # webrtc_dsp/common_audio/third_party/spl_sqrt_floor/spl_sqrt_floor_arm.S
-- # webrtc_dsp/common_audio/fir_filter_neon.h
-- # webrtc_dsp/common_audio/signal_processing/downsample_fast_neon.c
-- # webrtc_dsp/common_audio/signal_processing/complex_bit_reverse_arm.S
-- # webrtc_dsp/common_audio/signal_processing/include/spl_inl_armv7.h
-- # webrtc_dsp/common_audio/signal_processing/min_max_operations_neon.c
-- # webrtc_dsp/common_audio/signal_processing/cross_correlation_neon.c
-- # webrtc_dsp/common_audio/signal_processing/filter_ar_fast_q12_armv7.S
--)
-+ # POSIX
-+ os/posix/NetworkSocketPosix.cpp
-+ os/posix/NetworkSocketPosix.h
-
--target_compile_definitions(lib_tgvoip
--PUBLIC
-- WEBRTC_APM_DEBUG_DUMP=0
-- TGVOIP_USE_DESKTOP_DSP
-- WEBRTC_NS_FLOAT
--)
-+ # WebRTC APM
-+ webrtc_dsp/system_wrappers/include/field_trial.h
-+ webrtc_dsp/system_wrappers/include/cpu_features_wrapper.h
-+ webrtc_dsp/system_wrappers/include/asm_defines.h
-+ webrtc_dsp/system_wrappers/include/metrics.h
-+ webrtc_dsp/system_wrappers/include/compile_assert_c.h
-+ webrtc_dsp/system_wrappers/source/field_trial.cc
-+ webrtc_dsp/system_wrappers/source/metrics.cc
-+ webrtc_dsp/system_wrappers/source/cpu_features.cc
-+ webrtc_dsp/typedefs.h
-+ webrtc_dsp/absl/strings/internal/memutil.h
-+ webrtc_dsp/absl/strings/internal/memutil.cc
-+ webrtc_dsp/absl/strings/string_view.cc
-+ webrtc_dsp/absl/strings/ascii.h
-+ webrtc_dsp/absl/strings/ascii.cc
-+ webrtc_dsp/absl/strings/string_view.h
-+ webrtc_dsp/absl/types/optional.h
-+ webrtc_dsp/absl/types/bad_optional_access.h
-+ webrtc_dsp/absl/types/bad_optional_access.cc
-+ webrtc_dsp/absl/types/optional.cc
-+ webrtc_dsp/absl/memory/memory.h
-+ webrtc_dsp/absl/meta/type_traits.h
-+ webrtc_dsp/absl/algorithm/algorithm.h
-+ webrtc_dsp/absl/container/inlined_vector.h
-+ webrtc_dsp/absl/base/policy_checks.h
-+ webrtc_dsp/absl/base/port.h
-+ webrtc_dsp/absl/base/config.h
-+ webrtc_dsp/absl/base/internal/raw_logging.cc
-+ webrtc_dsp/absl/base/internal/throw_delegate.cc
-+ webrtc_dsp/absl/base/internal/invoke.h
-+ webrtc_dsp/absl/base/internal/inline_variable.h
-+ webrtc_dsp/absl/base/internal/atomic_hook.h
-+ webrtc_dsp/absl/base/internal/identity.h
-+ webrtc_dsp/absl/base/internal/raw_logging.h
-+ webrtc_dsp/absl/base/internal/throw_delegate.h
-+ webrtc_dsp/absl/base/attributes.h
-+ webrtc_dsp/absl/base/macros.h
-+ webrtc_dsp/absl/base/optimization.h
-+ webrtc_dsp/absl/base/log_severity.h
-+ webrtc_dsp/absl/utility/utility.h
-+ webrtc_dsp/rtc_base/string_to_number.h
-+ webrtc_dsp/rtc_base/constructormagic.h
-+ webrtc_dsp/rtc_base/race_checker.cc
-+ webrtc_dsp/rtc_base/strings/string_builder.h
-+ webrtc_dsp/rtc_base/strings/string_builder.cc
-+ webrtc_dsp/rtc_base/event_tracer.h
-+ webrtc_dsp/rtc_base/stringencode.h
-+ webrtc_dsp/rtc_base/memory/aligned_malloc.cc
-+ webrtc_dsp/rtc_base/memory/aligned_malloc.h
-+ webrtc_dsp/rtc_base/timeutils.cc
-+ webrtc_dsp/rtc_base/event.h
-+ webrtc_dsp/rtc_base/ignore_wundef.h
-+ webrtc_dsp/rtc_base/stringutils.h
-+ webrtc_dsp/rtc_base/arraysize.h
-+ webrtc_dsp/rtc_base/platform_file.cc
-+ webrtc_dsp/rtc_base/swap_queue.h
-+ webrtc_dsp/rtc_base/string_to_number.cc
-+ webrtc_dsp/rtc_base/trace_event.h
-+ webrtc_dsp/rtc_base/checks.h
-+ webrtc_dsp/rtc_base/deprecation.h
-+ webrtc_dsp/rtc_base/thread_checker_impl.cc
-+ webrtc_dsp/rtc_base/sanitizer.h
-+ webrtc_dsp/rtc_base/scoped_ref_ptr.h
-+ webrtc_dsp/rtc_base/logging.h
-+ webrtc_dsp/rtc_base/logging_mac.h
-+ webrtc_dsp/rtc_base/logging_mac.mm
-+ webrtc_dsp/rtc_base/timeutils.h
-+ webrtc_dsp/rtc_base/atomicops.h
-+ webrtc_dsp/rtc_base/stringencode.cc
-+ webrtc_dsp/rtc_base/stringutils.cc
-+ webrtc_dsp/rtc_base/checks.cc
-+ webrtc_dsp/rtc_base/numerics/safe_minmax.h
-+ webrtc_dsp/rtc_base/numerics/safe_conversions.h
-+ webrtc_dsp/rtc_base/numerics/safe_conversions_impl.h
-+ webrtc_dsp/rtc_base/numerics/safe_compare.h
-+ webrtc_dsp/rtc_base/system/unused.h
-+ webrtc_dsp/rtc_base/system/inline.h
-+ webrtc_dsp/rtc_base/system/ignore_warnings.h
-+ webrtc_dsp/rtc_base/system/asm_defines.h
-+ webrtc_dsp/rtc_base/system/rtc_export.h
-+ webrtc_dsp/rtc_base/system/arch.h
-+ webrtc_dsp/rtc_base/platform_thread.cc
-+ webrtc_dsp/rtc_base/platform_thread.h
-+ webrtc_dsp/rtc_base/platform_thread_types.h
-+ webrtc_dsp/rtc_base/protobuf_utils.h
-+ webrtc_dsp/rtc_base/thread_annotations.h
-+ webrtc_dsp/rtc_base/gtest_prod_util.h
-+ webrtc_dsp/rtc_base/function_view.h
-+ webrtc_dsp/rtc_base/criticalsection.h
-+ webrtc_dsp/rtc_base/criticalsection.cc
-+ webrtc_dsp/rtc_base/platform_thread_types.cc
-+ webrtc_dsp/rtc_base/refcount.h
-+ webrtc_dsp/rtc_base/event.cc
-+ webrtc_dsp/rtc_base/thread_checker_impl.h
-+ webrtc_dsp/rtc_base/event_tracer.cc
-+ webrtc_dsp/rtc_base/compile_assert_c.h
-+ webrtc_dsp/rtc_base/logging_webrtc.cc
-+ webrtc_dsp/rtc_base/type_traits.h
-+ webrtc_dsp/rtc_base/platform_file.h
-+ webrtc_dsp/rtc_base/refcounter.h
-+ webrtc_dsp/rtc_base/logging_mac.h
-+ webrtc_dsp/rtc_base/thread_checker.h
-+ webrtc_dsp/rtc_base/race_checker.h
-+ webrtc_dsp/rtc_base/refcountedobject.h
-+ webrtc_dsp/third_party/rnnoise/src/rnn_vad_weights.cc
-+ webrtc_dsp/third_party/rnnoise/src/rnn_activations.h
-+ webrtc_dsp/third_party/rnnoise/src/kiss_fft.h
-+ webrtc_dsp/third_party/rnnoise/src/kiss_fft.cc
-+ webrtc_dsp/third_party/rnnoise/src/rnn_vad_weights.h
-+ webrtc_dsp/api/audio/audio_frame.cc
-+ webrtc_dsp/api/audio/echo_canceller3_config.h
-+ webrtc_dsp/api/audio/echo_control.h
-+ webrtc_dsp/api/audio/audio_frame.h
-+ webrtc_dsp/api/audio/echo_canceller3_config.cc
-+ webrtc_dsp/api/audio/echo_canceller3_factory.h
-+ webrtc_dsp/api/audio/echo_canceller3_factory.cc
-+ webrtc_dsp/api/array_view.h
-+ webrtc_dsp/modules/third_party/fft/fft.h
-+ webrtc_dsp/modules/third_party/fft/fft.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/bandwidth_info.h
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/include/isac.h
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_estimator.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_shape_swb16_tables.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_gain_tables.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/arith_routines_logist.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/os_specific_inline.h
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/filterbanks.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/entropy_coding.h
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/isac_vad.h
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/settings.h
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/transform.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_shape_swb12_tables.h
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/arith_routines.h
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/crc.h
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_filter.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/encode_lpc_swb.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/filter_functions.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/decode.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lattice.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/intialize.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_tables.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_gain_swb_tables.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/bandwidth_estimator.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/isac_float_type.h
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_lag_tables.h
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/encode.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_analysis.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/spectrum_ar_model_tables.h
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/arith_routines_hist.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/codec.h
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_gain_tables.h
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_shape_swb16_tables.h
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_estimator.h
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/entropy_coding.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/isac_vad.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/structs.h
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/filter_functions.h
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/encode_lpc_swb.h
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_filter.h
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/arith_routines.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/crc.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_shape_swb12_tables.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_analysis.h
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/decode_bwe.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/spectrum_ar_model_tables.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/bandwidth_estimator.h
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_lag_tables.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/isac.c
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_gain_swb_tables.h
-+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_tables.h
-+ webrtc_dsp/modules/audio_processing/rms_level.cc
-+ webrtc_dsp/modules/audio_processing/echo_detector/moving_max.h
-+ webrtc_dsp/modules/audio_processing/echo_detector/circular_buffer.h
-+ webrtc_dsp/modules/audio_processing/echo_detector/normalized_covariance_estimator.h
-+ webrtc_dsp/modules/audio_processing/echo_detector/normalized_covariance_estimator.cc
-+ webrtc_dsp/modules/audio_processing/echo_detector/moving_max.cc
-+ webrtc_dsp/modules/audio_processing/echo_detector/circular_buffer.cc
-+ webrtc_dsp/modules/audio_processing/echo_detector/mean_variance_estimator.cc
-+ webrtc_dsp/modules/audio_processing/echo_detector/mean_variance_estimator.h
-+ webrtc_dsp/modules/audio_processing/gain_control_for_experimental_agc.h
-+ webrtc_dsp/modules/audio_processing/splitting_filter.cc
-+ webrtc_dsp/modules/audio_processing/gain_control_impl.cc
-+ webrtc_dsp/modules/audio_processing/rms_level.h
-+ webrtc_dsp/modules/audio_processing/ns/ns_core.h
-+ webrtc_dsp/modules/audio_processing/ns/nsx_core.c
-+ webrtc_dsp/modules/audio_processing/ns/noise_suppression_x.c
-+ webrtc_dsp/modules/audio_processing/ns/nsx_core_c.c
-+ webrtc_dsp/modules/audio_processing/ns/defines.h
-+ webrtc_dsp/modules/audio_processing/ns/noise_suppression.h
-+ webrtc_dsp/modules/audio_processing/ns/ns_core.c
-+ webrtc_dsp/modules/audio_processing/ns/nsx_core.h
-+ webrtc_dsp/modules/audio_processing/ns/windows_private.h
-+ webrtc_dsp/modules/audio_processing/ns/noise_suppression_x.h
-+ webrtc_dsp/modules/audio_processing/ns/noise_suppression.c
-+ webrtc_dsp/modules/audio_processing/ns/nsx_defines.h
-+ webrtc_dsp/modules/audio_processing/residual_echo_detector.h
-+ webrtc_dsp/modules/audio_processing/audio_processing_impl.h
-+ webrtc_dsp/modules/audio_processing/audio_buffer.cc
-+ webrtc_dsp/modules/audio_processing/typing_detection.cc
-+ webrtc_dsp/modules/audio_processing/render_queue_item_verifier.h
-+ webrtc_dsp/modules/audio_processing/include/audio_generator.h
-+ webrtc_dsp/modules/audio_processing/include/config.h
-+ webrtc_dsp/modules/audio_processing/include/audio_frame_view.h
-+ webrtc_dsp/modules/audio_processing/include/mock_audio_processing.h
-+ webrtc_dsp/modules/audio_processing/include/gain_control.h
-+ webrtc_dsp/modules/audio_processing/include/audio_generator_factory.h
-+ webrtc_dsp/modules/audio_processing/include/audio_processing_statistics.cc
-+ webrtc_dsp/modules/audio_processing/include/audio_generator_factory.cc
-+ webrtc_dsp/modules/audio_processing/include/aec_dump.cc
-+ webrtc_dsp/modules/audio_processing/include/aec_dump.h
-+ webrtc_dsp/modules/audio_processing/include/audio_processing_statistics.h
-+ webrtc_dsp/modules/audio_processing/include/audio_processing.h
-+ webrtc_dsp/modules/audio_processing/include/audio_processing.cc
-+ webrtc_dsp/modules/audio_processing/include/config.cc
-+ webrtc_dsp/modules/audio_processing/agc2/interpolated_gain_curve.h
-+ webrtc_dsp/modules/audio_processing/agc2/biquad_filter.h
-+ webrtc_dsp/modules/audio_processing/agc2/interpolated_gain_curve.cc
-+ webrtc_dsp/modules/audio_processing/agc2/agc2_common.cc
-+ webrtc_dsp/modules/audio_processing/agc2/agc2_testing_common.h
-+ webrtc_dsp/modules/audio_processing/agc2/adaptive_mode_level_estimator.h
-+ webrtc_dsp/modules/audio_processing/agc2/gain_applier.cc
-+ webrtc_dsp/modules/audio_processing/agc2/signal_classifier.h
-+ webrtc_dsp/modules/audio_processing/agc2/adaptive_agc.cc
-+ webrtc_dsp/modules/audio_processing/agc2/adaptive_digital_gain_applier.cc
-+ webrtc_dsp/modules/audio_processing/agc2/limiter.cc
-+ webrtc_dsp/modules/audio_processing/agc2/saturation_protector.cc
-+ webrtc_dsp/modules/audio_processing/agc2/vector_float_frame.h
-+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/spectral_features_internal.cc
-+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/sequence_buffer.h
-+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/rnn.h
-+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/rnn.cc
-+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/test_utils.h
-+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/pitch_info.h
-+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/lp_residual.h
-+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/ring_buffer.h
-+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/pitch_search_internal.cc
-+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/symmetric_matrix_buffer.h
-+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/spectral_features.h
-+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/features_extraction.h
-+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/common.h
-+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/spectral_features_internal.h
-+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/fft_util.h
-+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/spectral_features.cc
-+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/pitch_search_internal.h
-+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/pitch_search.cc
-+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/pitch_search.h
-+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/features_extraction.cc
-+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/fft_util.cc
-+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/lp_residual.cc
-+ webrtc_dsp/modules/audio_processing/agc2/fixed_gain_controller.h
-+ webrtc_dsp/modules/audio_processing/agc2/adaptive_mode_level_estimator_agc.cc
-+ webrtc_dsp/modules/audio_processing/agc2/vector_float_frame.cc
-+ webrtc_dsp/modules/audio_processing/agc2/down_sampler.h
-+ webrtc_dsp/modules/audio_processing/agc2/noise_level_estimator.cc
-+ webrtc_dsp/modules/audio_processing/agc2/agc2_testing_common.cc
-+ webrtc_dsp/modules/audio_processing/agc2/fixed_digital_level_estimator.cc
-+ webrtc_dsp/modules/audio_processing/agc2/fixed_gain_controller.cc
-+ webrtc_dsp/modules/audio_processing/agc2/saturation_protector.h
-+ webrtc_dsp/modules/audio_processing/agc2/vad_with_level.cc
-+ webrtc_dsp/modules/audio_processing/agc2/limiter_db_gain_curve.cc
-+ webrtc_dsp/modules/audio_processing/agc2/agc2_common.h
-+ webrtc_dsp/modules/audio_processing/agc2/adaptive_mode_level_estimator_agc.h
-+ webrtc_dsp/modules/audio_processing/agc2/adaptive_digital_gain_applier.h
-+ webrtc_dsp/modules/audio_processing/agc2/vad_with_level.h
-+ webrtc_dsp/modules/audio_processing/agc2/limiter_db_gain_curve.h
-+ webrtc_dsp/modules/audio_processing/agc2/fixed_digital_level_estimator.h
-+ webrtc_dsp/modules/audio_processing/agc2/adaptive_agc.h
-+ webrtc_dsp/modules/audio_processing/agc2/gain_applier.h
-+ webrtc_dsp/modules/audio_processing/agc2/down_sampler.cc
-+ webrtc_dsp/modules/audio_processing/agc2/noise_level_estimator.h
-+ webrtc_dsp/modules/audio_processing/agc2/signal_classifier.cc
-+ webrtc_dsp/modules/audio_processing/agc2/noise_spectrum_estimator.cc
-+ webrtc_dsp/modules/audio_processing/agc2/compute_interpolated_gain_curve.cc
-+ webrtc_dsp/modules/audio_processing/agc2/compute_interpolated_gain_curve.h
-+ webrtc_dsp/modules/audio_processing/agc2/biquad_filter.cc
-+ webrtc_dsp/modules/audio_processing/agc2/noise_spectrum_estimator.h
-+ webrtc_dsp/modules/audio_processing/agc2/limiter.h
-+ webrtc_dsp/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc
-+ webrtc_dsp/modules/audio_processing/transient/moving_moments.cc
-+ webrtc_dsp/modules/audio_processing/transient/transient_detector.h
-+ webrtc_dsp/modules/audio_processing/transient/wpd_tree.cc
-+ webrtc_dsp/modules/audio_processing/transient/transient_suppressor.h
-+ webrtc_dsp/modules/audio_processing/transient/daubechies_8_wavelet_coeffs.h
-+ webrtc_dsp/modules/audio_processing/transient/common.h
-+ webrtc_dsp/modules/audio_processing/transient/wpd_node.h
-+ webrtc_dsp/modules/audio_processing/transient/moving_moments.h
-+ webrtc_dsp/modules/audio_processing/transient/wpd_tree.h
-+ webrtc_dsp/modules/audio_processing/transient/wpd_node.cc
-+ webrtc_dsp/modules/audio_processing/transient/transient_suppressor.cc
-+ webrtc_dsp/modules/audio_processing/transient/transient_detector.cc
-+ webrtc_dsp/modules/audio_processing/transient/dyadic_decimator.h
-+ webrtc_dsp/modules/audio_processing/low_cut_filter.cc
-+ webrtc_dsp/modules/audio_processing/noise_suppression_impl.h
-+ webrtc_dsp/modules/audio_processing/level_estimator_impl.cc
-+ webrtc_dsp/modules/audio_processing/three_band_filter_bank.cc
-+ webrtc_dsp/modules/audio_processing/aec/echo_cancellation.cc
-+ webrtc_dsp/modules/audio_processing/aec/aec_resampler.h
-+ webrtc_dsp/modules/audio_processing/aec/aec_resampler.cc
-+ webrtc_dsp/modules/audio_processing/aec/echo_cancellation.h
-+ webrtc_dsp/modules/audio_processing/aec/aec_core.cc
-+ webrtc_dsp/modules/audio_processing/aec/aec_core.h
-+ webrtc_dsp/modules/audio_processing/aec/aec_core_optimized_methods.h
-+ webrtc_dsp/modules/audio_processing/aec/aec_core_sse2.cc
-+ webrtc_dsp/modules/audio_processing/aec/aec_common.h
-+ webrtc_dsp/modules/audio_processing/voice_detection_impl.h
-+ webrtc_dsp/modules/audio_processing/voice_detection_impl.cc
-+ webrtc_dsp/modules/audio_processing/echo_cancellation_impl.cc
-+ webrtc_dsp/modules/audio_processing/gain_control_for_experimental_agc.cc
-+ webrtc_dsp/modules/audio_processing/agc/agc.cc
-+ webrtc_dsp/modules/audio_processing/agc/loudness_histogram.cc
-+ webrtc_dsp/modules/audio_processing/agc/agc_manager_direct.cc
-+ webrtc_dsp/modules/audio_processing/agc/legacy/analog_agc.h
-+ webrtc_dsp/modules/audio_processing/agc/legacy/gain_control.h
-+ webrtc_dsp/modules/audio_processing/agc/legacy/digital_agc.h
-+ webrtc_dsp/modules/audio_processing/agc/legacy/analog_agc.c
-+ webrtc_dsp/modules/audio_processing/agc/legacy/digital_agc.c
-+ webrtc_dsp/modules/audio_processing/agc/utility.cc
-+ webrtc_dsp/modules/audio_processing/agc/mock_agc.h
-+ webrtc_dsp/modules/audio_processing/agc/loudness_histogram.h
-+ webrtc_dsp/modules/audio_processing/agc/gain_map_internal.h
-+ webrtc_dsp/modules/audio_processing/agc/utility.h
-+ webrtc_dsp/modules/audio_processing/agc/agc_manager_direct.h
-+ webrtc_dsp/modules/audio_processing/agc/agc.h
-+ webrtc_dsp/modules/audio_processing/common.h
-+ webrtc_dsp/modules/audio_processing/audio_processing_impl.cc
-+ webrtc_dsp/modules/audio_processing/audio_buffer.h
-+ webrtc_dsp/modules/audio_processing/echo_control_mobile_impl.h
-+ webrtc_dsp/modules/audio_processing/splitting_filter.h
-+ webrtc_dsp/modules/audio_processing/low_cut_filter.h
-+ webrtc_dsp/modules/audio_processing/audio_generator/file_audio_generator.h
-+ webrtc_dsp/modules/audio_processing/audio_generator/file_audio_generator.cc
-+ webrtc_dsp/modules/audio_processing/gain_controller2.cc
-+ webrtc_dsp/modules/audio_processing/three_band_filter_bank.h
-+ webrtc_dsp/modules/audio_processing/residual_echo_detector.cc
-+ webrtc_dsp/modules/audio_processing/echo_cancellation_impl.h
-+ webrtc_dsp/modules/audio_processing/noise_suppression_impl.cc
-+ webrtc_dsp/modules/audio_processing/level_estimator_impl.h
-+ webrtc_dsp/modules/audio_processing/gain_controller2.h
-+ webrtc_dsp/modules/audio_processing/aecm/aecm_core.h
-+ webrtc_dsp/modules/audio_processing/aecm/aecm_defines.h
-+ webrtc_dsp/modules/audio_processing/aecm/aecm_core.cc
-+ webrtc_dsp/modules/audio_processing/aecm/aecm_core_c.cc
-+ webrtc_dsp/modules/audio_processing/aecm/echo_control_mobile.h
-+ webrtc_dsp/modules/audio_processing/aecm/echo_control_mobile.cc
-+ webrtc_dsp/modules/audio_processing/aec3/render_reverb_model.cc
-+ webrtc_dsp/modules/audio_processing/aec3/downsampled_render_buffer.h
-+ webrtc_dsp/modules/audio_processing/aec3/subtractor_output_analyzer.h
-+ webrtc_dsp/modules/audio_processing/aec3/reverb_model_fallback.cc
-+ webrtc_dsp/modules/audio_processing/aec3/residual_echo_estimator.h
-+ webrtc_dsp/modules/audio_processing/aec3/shadow_filter_update_gain.h
-+ webrtc_dsp/modules/audio_processing/aec3/echo_remover_metrics.cc
-+ webrtc_dsp/modules/audio_processing/aec3/matched_filter_lag_aggregator.cc
-+ webrtc_dsp/modules/audio_processing/aec3/render_delay_buffer2.cc
-+ webrtc_dsp/modules/audio_processing/aec3/aec_state.h
-+ webrtc_dsp/modules/audio_processing/aec3/suppression_filter.h
-+ webrtc_dsp/modules/audio_processing/aec3/echo_path_variability.cc
-+ webrtc_dsp/modules/audio_processing/aec3/frame_blocker.cc
-+ webrtc_dsp/modules/audio_processing/aec3/subtractor.cc
-+ webrtc_dsp/modules/audio_processing/aec3/block_delay_buffer.h
-+ webrtc_dsp/modules/audio_processing/aec3/adaptive_fir_filter.h
-+ webrtc_dsp/modules/audio_processing/aec3/cascaded_biquad_filter.h
-+ webrtc_dsp/modules/audio_processing/aec3/matched_filter.h
-+ webrtc_dsp/modules/audio_processing/aec3/subtractor_output.h
-+ webrtc_dsp/modules/audio_processing/aec3/render_signal_analyzer.h
-+ webrtc_dsp/modules/audio_processing/aec3/aec3_fft.cc
-+ webrtc_dsp/modules/audio_processing/aec3/aec3_fft.h
-+ webrtc_dsp/modules/audio_processing/aec3/echo_remover_metrics.h
-+ webrtc_dsp/modules/audio_processing/aec3/fullband_erle_estimator.cc
-+ webrtc_dsp/modules/audio_processing/aec3/suppression_filter.cc
-+ webrtc_dsp/modules/audio_processing/aec3/block_processor.cc
-+ webrtc_dsp/modules/audio_processing/aec3/filter_analyzer.h
-+ webrtc_dsp/modules/audio_processing/aec3/subtractor.h
-+ webrtc_dsp/modules/audio_processing/aec3/echo_path_delay_estimator.h
-+ webrtc_dsp/modules/audio_processing/aec3/subband_erle_estimator.cc
-+ webrtc_dsp/modules/audio_processing/aec3/render_delay_controller_metrics.cc
-+ webrtc_dsp/modules/audio_processing/aec3/render_delay_buffer.cc
-+ webrtc_dsp/modules/audio_processing/aec3/block_processor_metrics.h
-+ webrtc_dsp/modules/audio_processing/aec3/vector_buffer.cc
-+ webrtc_dsp/modules/audio_processing/aec3/erl_estimator.cc
-+ webrtc_dsp/modules/audio_processing/aec3/aec_state.cc
-+ webrtc_dsp/modules/audio_processing/aec3/adaptive_fir_filter.cc
-+ webrtc_dsp/modules/audio_processing/aec3/fft_data.h
-+ webrtc_dsp/modules/audio_processing/aec3/render_delay_controller.cc
-+ webrtc_dsp/modules/audio_processing/aec3/skew_estimator.cc
-+ webrtc_dsp/modules/audio_processing/aec3/render_delay_controller_metrics.h
-+ webrtc_dsp/modules/audio_processing/aec3/comfort_noise_generator.h
-+ webrtc_dsp/modules/audio_processing/aec3/echo_path_delay_estimator.cc
-+ webrtc_dsp/modules/audio_processing/aec3/erl_estimator.h
-+ webrtc_dsp/modules/audio_processing/aec3/echo_remover.h
-+ webrtc_dsp/modules/audio_processing/aec3/block_framer.cc
-+ webrtc_dsp/modules/audio_processing/aec3/erle_estimator.cc
-+ webrtc_dsp/modules/audio_processing/aec3/reverb_model.cc
-+ webrtc_dsp/modules/audio_processing/aec3/cascaded_biquad_filter.cc
-+ webrtc_dsp/modules/audio_processing/aec3/matrix_buffer.h
-+ webrtc_dsp/modules/audio_processing/aec3/render_buffer.cc
-+ webrtc_dsp/modules/audio_processing/aec3/reverb_model_estimator.h
-+ webrtc_dsp/modules/audio_processing/aec3/subtractor_output.cc
-+ webrtc_dsp/modules/audio_processing/aec3/stationarity_estimator.cc
-+ webrtc_dsp/modules/audio_processing/aec3/render_signal_analyzer.cc
-+ webrtc_dsp/modules/audio_processing/aec3/echo_path_variability.h
-+ webrtc_dsp/modules/audio_processing/aec3/moving_average.h
-+ webrtc_dsp/modules/audio_processing/aec3/render_reverb_model.h
-+ webrtc_dsp/modules/audio_processing/aec3/subtractor_output_analyzer.cc
-+ webrtc_dsp/modules/audio_processing/aec3/suppression_gain.cc
-+ webrtc_dsp/modules/audio_processing/aec3/echo_audibility.cc
-+ webrtc_dsp/modules/audio_processing/aec3/block_processor_metrics.cc
-+ webrtc_dsp/modules/audio_processing/aec3/render_delay_controller.h
-+ webrtc_dsp/modules/audio_processing/aec3/suppression_gain.h
-+ webrtc_dsp/modules/audio_processing/aec3/moving_average.cc
-+ webrtc_dsp/modules/audio_processing/aec3/erle_estimator.h
-+ webrtc_dsp/modules/audio_processing/aec3/subband_erle_estimator.h
-+ webrtc_dsp/modules/audio_processing/aec3/reverb_model_estimator.cc
-+ webrtc_dsp/modules/audio_processing/aec3/aec3_common.cc
-+ webrtc_dsp/modules/audio_processing/aec3/residual_echo_estimator.cc
-+ webrtc_dsp/modules/audio_processing/aec3/block_processor.h
-+ webrtc_dsp/modules/audio_processing/aec3/fullband_erle_estimator.h
-+ webrtc_dsp/modules/audio_processing/aec3/matched_filter.cc
-+ webrtc_dsp/modules/audio_processing/aec3/stationarity_estimator.h
-+ webrtc_dsp/modules/audio_processing/aec3/echo_canceller3.h
-+ webrtc_dsp/modules/audio_processing/aec3/skew_estimator.h
-+ webrtc_dsp/modules/audio_processing/aec3/reverb_decay_estimator.cc
-+ webrtc_dsp/modules/audio_processing/aec3/render_delay_controller2.cc
-+ webrtc_dsp/modules/audio_processing/aec3/render_buffer.h
-+ webrtc_dsp/modules/audio_processing/aec3/suppression_gain_limiter.cc
-+ webrtc_dsp/modules/audio_processing/aec3/main_filter_update_gain.cc
-+ webrtc_dsp/modules/audio_processing/aec3/echo_remover.cc
-+ webrtc_dsp/modules/audio_processing/aec3/reverb_model_fallback.h
-+ webrtc_dsp/modules/audio_processing/aec3/downsampled_render_buffer.cc
-+ webrtc_dsp/modules/audio_processing/aec3/vector_buffer.h
-+ webrtc_dsp/modules/audio_processing/aec3/matrix_buffer.cc
-+ webrtc_dsp/modules/audio_processing/aec3/reverb_frequency_response.h
-+ webrtc_dsp/modules/audio_processing/aec3/echo_audibility.h
-+ webrtc_dsp/modules/audio_processing/aec3/fft_buffer.h
-+ webrtc_dsp/modules/audio_processing/aec3/block_processor2.cc
-+ webrtc_dsp/modules/audio_processing/aec3/echo_canceller3.cc
-+ webrtc_dsp/modules/audio_processing/aec3/block_delay_buffer.cc
-+ webrtc_dsp/modules/audio_processing/aec3/aec3_common.h
-+ webrtc_dsp/modules/audio_processing/aec3/fft_buffer.cc
-+ webrtc_dsp/modules/audio_processing/aec3/vector_math.h
-+ webrtc_dsp/modules/audio_processing/aec3/decimator.h
-+ webrtc_dsp/modules/audio_processing/aec3/frame_blocker.h
-+ webrtc_dsp/modules/audio_processing/aec3/block_framer.h
-+ webrtc_dsp/modules/audio_processing/aec3/suppression_gain_limiter.h
-+ webrtc_dsp/modules/audio_processing/aec3/delay_estimate.h
-+ webrtc_dsp/modules/audio_processing/aec3/comfort_noise_generator.cc
-+ webrtc_dsp/modules/audio_processing/aec3/reverb_model.h
-+ webrtc_dsp/modules/audio_processing/aec3/main_filter_update_gain.h
-+ webrtc_dsp/modules/audio_processing/aec3/matched_filter_lag_aggregator.h
-+ webrtc_dsp/modules/audio_processing/aec3/shadow_filter_update_gain.cc
-+ webrtc_dsp/modules/audio_processing/aec3/filter_analyzer.cc
-+ webrtc_dsp/modules/audio_processing/aec3/reverb_decay_estimator.h
-+ webrtc_dsp/modules/audio_processing/aec3/reverb_frequency_response.cc
-+ webrtc_dsp/modules/audio_processing/aec3/decimator.cc
-+ webrtc_dsp/modules/audio_processing/aec3/render_delay_buffer.h
-+ webrtc_dsp/modules/audio_processing/echo_control_mobile_impl.cc
-+ webrtc_dsp/modules/audio_processing/gain_control_impl.h
-+ webrtc_dsp/modules/audio_processing/typing_detection.h
-+ webrtc_dsp/modules/audio_processing/logging/apm_data_dumper.cc
-+ webrtc_dsp/modules/audio_processing/logging/apm_data_dumper.h
-+ webrtc_dsp/modules/audio_processing/vad/voice_activity_detector.cc
-+ webrtc_dsp/modules/audio_processing/vad/standalone_vad.cc
-+ webrtc_dsp/modules/audio_processing/vad/vad_audio_proc_internal.h
-+ webrtc_dsp/modules/audio_processing/vad/pitch_internal.cc
-+ webrtc_dsp/modules/audio_processing/vad/vad_circular_buffer.cc
-+ webrtc_dsp/modules/audio_processing/vad/vad_circular_buffer.h
-+ webrtc_dsp/modules/audio_processing/vad/pitch_based_vad.h
-+ webrtc_dsp/modules/audio_processing/vad/vad_audio_proc.cc
-+ webrtc_dsp/modules/audio_processing/vad/pole_zero_filter.cc
-+ webrtc_dsp/modules/audio_processing/vad/pole_zero_filter.h
-+ webrtc_dsp/modules/audio_processing/vad/pitch_based_vad.cc
-+ webrtc_dsp/modules/audio_processing/vad/gmm.h
-+ webrtc_dsp/modules/audio_processing/vad/common.h
-+ webrtc_dsp/modules/audio_processing/vad/vad_audio_proc.h
-+ webrtc_dsp/modules/audio_processing/vad/voice_gmm_tables.h
-+ webrtc_dsp/modules/audio_processing/vad/noise_gmm_tables.h
-+ webrtc_dsp/modules/audio_processing/vad/pitch_internal.h
-+ webrtc_dsp/modules/audio_processing/vad/gmm.cc
-+ webrtc_dsp/modules/audio_processing/vad/standalone_vad.h
-+ webrtc_dsp/modules/audio_processing/vad/voice_activity_detector.h
-+ webrtc_dsp/modules/audio_processing/utility/delay_estimator_internal.h
-+ webrtc_dsp/modules/audio_processing/utility/ooura_fft.cc
-+ webrtc_dsp/modules/audio_processing/utility/ooura_fft.h
-+ webrtc_dsp/modules/audio_processing/utility/delay_estimator_wrapper.cc
-+ webrtc_dsp/modules/audio_processing/utility/ooura_fft_sse2.cc
-+ webrtc_dsp/modules/audio_processing/utility/delay_estimator.cc
-+ webrtc_dsp/modules/audio_processing/utility/block_mean_calculator.h
-+ webrtc_dsp/modules/audio_processing/utility/block_mean_calculator.cc
-+ webrtc_dsp/modules/audio_processing/utility/delay_estimator.h
-+ webrtc_dsp/modules/audio_processing/utility/ooura_fft_tables_common.h
-+ webrtc_dsp/modules/audio_processing/utility/delay_estimator_wrapper.h
-+ webrtc_dsp/common_audio/mocks/mock_smoothing_filter.h
-+ webrtc_dsp/common_audio/wav_file.h
-+ webrtc_dsp/common_audio/window_generator.cc
-+ webrtc_dsp/common_audio/channel_buffer.cc
-+ webrtc_dsp/common_audio/fir_filter_factory.cc
-+ webrtc_dsp/common_audio/sparse_fir_filter.h
-+ webrtc_dsp/common_audio/fir_filter_sse.h
-+ webrtc_dsp/common_audio/window_generator.h
-+ webrtc_dsp/common_audio/ring_buffer.h
-+ webrtc_dsp/common_audio/fir_filter.h
-+ webrtc_dsp/common_audio/include/audio_util.h
-+ webrtc_dsp/common_audio/wav_header.cc
-+ webrtc_dsp/common_audio/real_fourier_ooura.cc
-+ webrtc_dsp/common_audio/audio_util.cc
-+ webrtc_dsp/common_audio/real_fourier_ooura.h
-+ webrtc_dsp/common_audio/fir_filter_sse.cc
-+ webrtc_dsp/common_audio/smoothing_filter.h
-+ webrtc_dsp/common_audio/resampler/push_sinc_resampler.cc
-+ webrtc_dsp/common_audio/resampler/sinc_resampler.h
-+ webrtc_dsp/common_audio/resampler/resampler.cc
-+ webrtc_dsp/common_audio/resampler/sinc_resampler_sse.cc
-+ webrtc_dsp/common_audio/resampler/include/push_resampler.h
-+ webrtc_dsp/common_audio/resampler/include/resampler.h
-+ webrtc_dsp/common_audio/resampler/push_sinc_resampler.h
-+ webrtc_dsp/common_audio/resampler/push_resampler.cc
-+ webrtc_dsp/common_audio/resampler/sinusoidal_linear_chirp_source.h
-+ webrtc_dsp/common_audio/resampler/sinc_resampler.cc
-+ webrtc_dsp/common_audio/resampler/sinusoidal_linear_chirp_source.cc
-+ webrtc_dsp/common_audio/fir_filter_factory.h
-+ webrtc_dsp/common_audio/audio_converter.h
-+ webrtc_dsp/common_audio/wav_file.cc
-+ webrtc_dsp/common_audio/third_party/spl_sqrt_floor/spl_sqrt_floor.c
-+ webrtc_dsp/common_audio/third_party/spl_sqrt_floor/spl_sqrt_floor.h
-+ webrtc_dsp/common_audio/third_party/fft4g/fft4g.c
-+ webrtc_dsp/common_audio/third_party/fft4g/fft4g.h
-+ webrtc_dsp/common_audio/audio_converter.cc
-+ webrtc_dsp/common_audio/real_fourier.cc
-+ webrtc_dsp/common_audio/channel_buffer.h
-+ webrtc_dsp/common_audio/real_fourier.h
-+ webrtc_dsp/common_audio/sparse_fir_filter.cc
-+ webrtc_dsp/common_audio/smoothing_filter.cc
-+ webrtc_dsp/common_audio/fir_filter_c.cc
-+ webrtc_dsp/common_audio/ring_buffer.c
-+ webrtc_dsp/common_audio/fir_filter_c.h
-+ webrtc_dsp/common_audio/signal_processing/complex_fft_tables.h
-+ webrtc_dsp/common_audio/signal_processing/complex_fft.c
-+ webrtc_dsp/common_audio/signal_processing/filter_ma_fast_q12.c
-+ webrtc_dsp/common_audio/signal_processing/levinson_durbin.c
-+ webrtc_dsp/common_audio/signal_processing/dot_product_with_scale.cc
-+ webrtc_dsp/common_audio/signal_processing/auto_corr_to_refl_coef.c
-+ webrtc_dsp/common_audio/signal_processing/resample_by_2_internal.c
-+ webrtc_dsp/common_audio/signal_processing/energy.c
-+ webrtc_dsp/common_audio/signal_processing/sqrt_of_one_minus_x_squared.c
-+ webrtc_dsp/common_audio/signal_processing/downsample_fast.c
-+ webrtc_dsp/common_audio/signal_processing/splitting_filter1.c
-+ webrtc_dsp/common_audio/signal_processing/filter_ar_fast_q12.c
-+ webrtc_dsp/common_audio/signal_processing/spl_init.c
-+ webrtc_dsp/common_audio/signal_processing/lpc_to_refl_coef.c
-+ webrtc_dsp/common_audio/signal_processing/cross_correlation.c
-+ webrtc_dsp/common_audio/signal_processing/include/signal_processing_library.h
-+ webrtc_dsp/common_audio/signal_processing/include/real_fft.h
-+ webrtc_dsp/common_audio/signal_processing/include/spl_inl.h
-+ webrtc_dsp/common_audio/signal_processing/division_operations.c
-+ webrtc_dsp/common_audio/signal_processing/auto_correlation.c
-+ webrtc_dsp/common_audio/signal_processing/get_scaling_square.c
-+ webrtc_dsp/common_audio/signal_processing/dot_product_with_scale.h
-+ webrtc_dsp/common_audio/signal_processing/resample_by_2_internal.h
-+ webrtc_dsp/common_audio/signal_processing/resample.c
-+ webrtc_dsp/common_audio/signal_processing/min_max_operations.c
-+ webrtc_dsp/common_audio/signal_processing/refl_coef_to_lpc.c
-+ webrtc_dsp/common_audio/signal_processing/filter_ar.c
-+ webrtc_dsp/common_audio/signal_processing/vector_scaling_operations.c
-+ webrtc_dsp/common_audio/signal_processing/resample_fractional.c
-+ webrtc_dsp/common_audio/signal_processing/real_fft.c
-+ webrtc_dsp/common_audio/signal_processing/ilbc_specific_functions.c
-+ webrtc_dsp/common_audio/signal_processing/complex_bit_reverse.c
-+ webrtc_dsp/common_audio/signal_processing/randomization_functions.c
-+ webrtc_dsp/common_audio/signal_processing/copy_set_operations.c
-+ webrtc_dsp/common_audio/signal_processing/resample_by_2.c
-+ webrtc_dsp/common_audio/signal_processing/get_hanning_window.c
-+ webrtc_dsp/common_audio/signal_processing/resample_48khz.c
-+ webrtc_dsp/common_audio/signal_processing/spl_inl.c
-+ webrtc_dsp/common_audio/signal_processing/spl_sqrt.c
-+ webrtc_dsp/common_audio/wav_header.h
-+ webrtc_dsp/common_audio/vad/vad_sp.c
-+ webrtc_dsp/common_audio/vad/vad.cc
-+ webrtc_dsp/common_audio/vad/webrtc_vad.c
-+ webrtc_dsp/common_audio/vad/vad_core.h
-+ webrtc_dsp/common_audio/vad/include/vad.h
-+ webrtc_dsp/common_audio/vad/include/webrtc_vad.h
-+ webrtc_dsp/common_audio/vad/vad_gmm.h
-+ webrtc_dsp/common_audio/vad/vad_filterbank.c
-+ webrtc_dsp/common_audio/vad/vad_core.c
-+ webrtc_dsp/common_audio/vad/vad_sp.h
-+ webrtc_dsp/common_audio/vad/vad_filterbank.h
-+ webrtc_dsp/common_audio/vad/vad_gmm.c
-
--if (WIN32)
-- target_compile_options(lib_tgvoip
-- PRIVATE
-- /wd4005
-- /wd4244 # conversion from 'int' to 'float', possible loss of data (several in webrtc)
-- )
-- target_compile_definitions(lib_tgvoip
-- PUBLIC
-- WEBRTC_WIN
-+ # ARM/NEON sources
-+ # TODO check if there's a good way to make these compile with ARM ports of TDesktop
-+ # webrtc_dsp/modules/audio_processing/ns/nsx_core_neon.c
-+ # webrtc_dsp/modules/audio_processing/aec/aec_core_neon.cc
-+ # webrtc_dsp/modules/audio_processing/aecm/aecm_core_neon.cc
-+ # webrtc_dsp/modules/audio_processing/utility/ooura_fft_tables_neon_sse2.h
-+ # webrtc_dsp/modules/audio_processing/utility/ooura_fft_neon.cc
-+ # webrtc_dsp/common_audio/fir_filter_neon.cc
-+ # webrtc_dsp/common_audio/resampler/sinc_resampler_neon.cc
-+ # webrtc_dsp/common_audio/third_party/spl_sqrt_floor/spl_sqrt_floor_arm.S
-+ # webrtc_dsp/common_audio/fir_filter_neon.h
-+ # webrtc_dsp/common_audio/signal_processing/downsample_fast_neon.c
-+ # webrtc_dsp/common_audio/signal_processing/complex_bit_reverse_arm.S
-+ # webrtc_dsp/common_audio/signal_processing/include/spl_inl_armv7.h
-+ # webrtc_dsp/common_audio/signal_processing/min_max_operations_neon.c
-+ # webrtc_dsp/common_audio/signal_processing/cross_correlation_neon.c
-+ # webrtc_dsp/common_audio/signal_processing/filter_ar_fast_q12_armv7.S
- )
--elseif (APPLE)
-+
- target_compile_definitions(lib_tgvoip
- PUBLIC
-- WEBRTC_POSIX
-- WEBRTC_MAC
-- TARGET_OS_OSX
-- TARGET_OSX
-+ WEBRTC_APM_DEBUG_DUMP=0
-+ TGVOIP_USE_DESKTOP_DSP
-+ WEBRTC_NS_FLOAT
- )
-- if (build_macstore)
-+
-+ if (WIN32)
-+ target_compile_options(lib_tgvoip
-+ PRIVATE
-+ /wd4005
-+ /wd4244 # conversion from 'int' to 'float', possible loss of data (several in webrtc)
-+ )
-+ target_compile_definitions(lib_tgvoip
-+ PUBLIC
-+ WEBRTC_WIN
-+ )
-+ elseif (APPLE)
-+ target_compile_definitions(lib_tgvoip
-+ PUBLIC
-+ WEBRTC_POSIX
-+ WEBRTC_MAC
-+ TARGET_OS_OSX
-+ TARGET_OSX
-+ )
-+ if (build_macstore)
-+ target_compile_definitions(lib_tgvoip
-+ PUBLIC
-+ TGVOIP_NO_OSX_PRIVATE_API
-+ )
-+ endif()
-+ else()
-+ target_compile_options(lib_tgvoip
-+ PRIVATE
-+ -Wno-unknown-pragmas
-+ -Wno-error=sequence-point
-+ -Wno-error=unused-result
-+ )
-+ if (build_linux32)
-+ target_compile_options(lib_tgvoip PRIVATE -msse2)
-+ endif()
- target_compile_definitions(lib_tgvoip
- PUBLIC
-- TGVOIP_NO_OSX_PRIVATE_API
-+ WEBRTC_POSIX
-+ WEBRTC_LINUX
- )
- endif()
--else()
-- target_compile_options(lib_tgvoip
-- PRIVATE
-- -Wno-unknown-pragmas
-- -Wno-error=sequence-point
-- -Wno-error=unused-result
-- )
-- if (build_linux32)
-- target_compile_options(lib_tgvoip PRIVATE -msse2)
-+
-+ if (NOT WIN32)
-+ target_compile_definitions(lib_tgvoip PRIVATE TGVOIP_USE_INSTALLED_OPUS)
- endif()
-- target_compile_definitions(lib_tgvoip
-+
-+ target_include_directories(lib_tgvoip
- PUBLIC
-- WEBRTC_POSIX
-- WEBRTC_LINUX
-+ ${tgvoip_loc}
-+ PRIVATE
-+ ${tgvoip_loc}/webrtc_dsp
- )
--endif()
-
--if (NOT WIN32)
-- target_compile_definitions(lib_tgvoip PRIVATE TGVOIP_USE_INSTALLED_OPUS)
-+ target_link_libraries(lib_tgvoip
-+ PRIVATE
-+ desktop-app::external_openssl
-+ desktop-app::external_opus
-+ )
- endif()
--
--target_include_directories(lib_tgvoip
--PUBLIC
-- ${tgvoip_loc}
--PRIVATE
-- ${tgvoip_loc}/webrtc_dsp
--)
--
--target_link_libraries(lib_tgvoip
--PRIVATE
-- desktop-app::external_openssl
-- desktop-app::external_opus
--)
-diff --git a/Telegram/cmake/telegram_options.cmake b/Telegram/cmake/telegram_options.cmake
-index cb721e590..6ba0579c1 100644
---- a/Telegram/cmake/telegram_options.cmake
-+++ b/Telegram/cmake/telegram_options.cmake
-@@ -9,6 +9,7 @@ option(TDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME "Disable automatic 'tg://' URL sc
- option(TDESKTOP_DISABLE_NETWORK_PROXY "Disable all code for working through Socks5 or MTProxy." OFF)
- option(TDESKTOP_DISABLE_DESKTOP_FILE_GENERATION "Disable automatic '.desktop' file generation (Linux only)." OFF)
- option(TDESKTOP_DISABLE_GTK_INTEGRATION "Disable all code for GTK integration (Linux only)." OFF)
-+option(TDESKTOP_USE_PACKAGED_TGVOIP "Find libtgvoip using CMake instead of bundled one." ${DESKTOP_APP_USE_PACKAGED})
- option(TDESKTOP_API_TEST "Use test API credentials." OFF)
- set(TDESKTOP_API_ID "0" CACHE STRING "Provide 'api_id' for the Telegram API access.")
- set(TDESKTOP_API_HASH "" CACHE STRING "Provide 'api_hash' for the Telegram API access.")
-Submodule cmake contains modified content
-diff --git a/cmake/external/crash_reports/CMakeLists.txt b/cmake/external/crash_reports/CMakeLists.txt
-index a741bcb..90eae86 100644
---- a/cmake/external/crash_reports/CMakeLists.txt
-+++ b/cmake/external/crash_reports/CMakeLists.txt
-@@ -7,16 +7,18 @@
- add_library(external_crash_reports INTERFACE IMPORTED GLOBAL)
- add_library(desktop-app::external_crash_reports ALIAS external_crash_reports)
-
--if (WIN32 OR LINUX OR build_macstore)
-- add_subdirectory(breakpad)
-- target_link_libraries(external_crash_reports
-- INTERFACE
-- desktop-app::external_breakpad
-- )
--else()
-- add_subdirectory(crashpad)
-- target_link_libraries(external_crash_reports
-- INTERFACE
-- desktop-app::external_crashpad
-- )
-+if (NOT DESKTOP_APP_DISABLE_CRASH_REPORTS)
-+ if (WIN32 OR LINUX OR build_macstore)
-+ add_subdirectory(breakpad)
-+ target_link_libraries(external_crash_reports
-+ INTERFACE
-+ desktop-app::external_breakpad
-+ )
-+ else()
-+ add_subdirectory(crashpad)
-+ target_link_libraries(external_crash_reports
-+ INTERFACE
-+ desktop-app::external_crashpad
-+ )
-+ endif()
- endif()
-diff --git a/cmake/external/ffmpeg/CMakeLists.txt b/cmake/external/ffmpeg/CMakeLists.txt
-index 014fb06..843ca09 100644
---- a/cmake/external/ffmpeg/CMakeLists.txt
-+++ b/cmake/external/ffmpeg/CMakeLists.txt
-@@ -7,32 +7,58 @@
- add_library(external_ffmpeg INTERFACE IMPORTED GLOBAL)
- add_library(desktop-app::external_ffmpeg ALIAS external_ffmpeg)
-
--target_include_directories(external_ffmpeg SYSTEM
--INTERFACE
-- ${libs_loc}/ffmpeg
--)
-+if (DESKTOP_APP_USE_PACKAGED)
-+ find_package(PkgConfig REQUIRED)
-
--set(ffmpeg_lib_loc ${libs_loc}/ffmpeg)
-+ pkg_check_modules(AVCODEC REQUIRED libavcodec)
-+ pkg_check_modules(AVFORMAT REQUIRED libavformat)
-+ pkg_check_modules(AVUTIL REQUIRED libavutil)
-+ pkg_check_modules(SWSCALE REQUIRED libswscale)
-+ pkg_check_modules(SWRESAMPLE REQUIRED libswresample)
-
--target_link_libraries(external_ffmpeg
--INTERFACE
-- ${ffmpeg_lib_loc}/libavformat/libavformat.a
-- ${ffmpeg_lib_loc}/libavcodec/libavcodec.a
-- ${ffmpeg_lib_loc}/libswresample/libswresample.a
-- ${ffmpeg_lib_loc}/libswscale/libswscale.a
-- ${ffmpeg_lib_loc}/libavutil/libavutil.a
--)
--if (LINUX)
-- target_link_static_libraries(external_ffmpeg
-+ target_include_directories(external_ffmpeg
- INTERFACE
-- va-x11
-- va-drm
-- va
-- vdpau
-- drm
-- Xi
-- Xext
-- Xfixes
-- Xrender
-+ ${AVCODEC_INCLUDE_DIRS}
-+ ${AVFORMAT_INCLUDE_DIRS}
-+ ${AVUTIL_INCLUDE_DIRS}
-+ ${SWSCALE_INCLUDE_DIRS}
-+ ${SWRESAMPLE_INCLUDE_DIRS})
-+
-+ target_link_libraries(external_ffmpeg
-+ INTERFACE
-+ ${AVCODEC_LIBRARIES}
-+ ${AVFORMAT_LIBRARIES}
-+ ${AVUTIL_LIBRARIES}
-+ ${SWSCALE_LIBRARIES}
-+ ${SWRESAMPLE_LIBRARIES})
-+else()
-+ target_include_directories(external_ffmpeg SYSTEM
-+ INTERFACE
-+ ${libs_loc}/ffmpeg
-+ )
-+
-+ set(ffmpeg_lib_loc ${libs_loc}/ffmpeg)
-+
-+ target_link_libraries(external_ffmpeg
-+ INTERFACE
-+ ${ffmpeg_lib_loc}/libavformat/libavformat.a
-+ ${ffmpeg_lib_loc}/libavcodec/libavcodec.a
-+ ${ffmpeg_lib_loc}/libswresample/libswresample.a
-+ ${ffmpeg_lib_loc}/libswscale/libswscale.a
-+ ${ffmpeg_lib_loc}/libavutil/libavutil.a
- )
-+ if (LINUX)
-+ target_link_static_libraries(external_ffmpeg
-+ INTERFACE
-+ va-x11
-+ va-drm
-+ va
-+ vdpau
-+ drm
-+ Xi
-+ Xext
-+ Xfixes
-+ Xrender
-+ )
-+ endif()
- endif()
-diff --git a/cmake/external/lz4/CMakeLists.txt b/cmake/external/lz4/CMakeLists.txt
-index 49821af..bcf308d 100644
---- a/cmake/external/lz4/CMakeLists.txt
-+++ b/cmake/external/lz4/CMakeLists.txt
-@@ -4,26 +4,37 @@
- # For license and copyright information please follow this link:
- # https://github.com/desktop-app/legal/blob/master/LEGAL
-
--add_library(external_lz4 OBJECT)
--add_library(desktop-app::external_lz4 ALIAS external_lz4)
--init_target(external_lz4 "(external)")
-+if (DESKTOP_APP_USE_PACKAGED)
-+ add_library(external_lz4 INTERFACE IMPORTED GLOBAL)
-+ add_library(desktop-app::external_lz4 ALIAS external_lz4)
-
--set(lz4_loc ${third_party_loc}/lz4/lib)
-+ find_package(PkgConfig REQUIRED)
-+ pkg_check_modules(LZ4 REQUIRED liblz4)
-
--target_sources(external_lz4
--PRIVATE
-- ${lz4_loc}/lz4.c
-- ${lz4_loc}/lz4.h
-- ${lz4_loc}/lz4frame.c
-- ${lz4_loc}/lz4frame.h
-- ${lz4_loc}/lz4frame_static.h
-- ${lz4_loc}/lz4hc.c
-- ${lz4_loc}/lz4hc.h
-- ${lz4_loc}/xxhash.c
-- ${lz4_loc}/xxhash.h
--)
-+ target_include_directories(external_lz4 INTERFACE ${LZ4_INCLUDE_DIRS})
-+ target_link_libraries(external_lz4 INTERFACE ${LZ4_LIBRARIES})
-+else()
-+ add_library(external_lz4 OBJECT)
-+ add_library(desktop-app::external_lz4 ALIAS external_lz4)
-+ init_target(external_lz4 "(external)")
-
--target_include_directories(external_lz4
--PUBLIC
-- ${lz4_loc}
--)
-+ set(lz4_loc ${third_party_loc}/lz4/lib)
-+
-+ target_sources(external_lz4
-+ PRIVATE
-+ ${lz4_loc}/lz4.c
-+ ${lz4_loc}/lz4.h
-+ ${lz4_loc}/lz4frame.c
-+ ${lz4_loc}/lz4frame.h
-+ ${lz4_loc}/lz4frame_static.h
-+ ${lz4_loc}/lz4hc.c
-+ ${lz4_loc}/lz4hc.h
-+ ${lz4_loc}/xxhash.c
-+ ${lz4_loc}/xxhash.h
-+ )
-+
-+ target_include_directories(external_lz4
-+ PUBLIC
-+ ${lz4_loc}
-+ )
-+endif()
-diff --git a/cmake/external/openal/CMakeLists.txt b/cmake/external/openal/CMakeLists.txt
-index e2e4992..d20ca0c 100644
---- a/cmake/external/openal/CMakeLists.txt
-+++ b/cmake/external/openal/CMakeLists.txt
-@@ -7,7 +7,11 @@
- add_library(external_openal INTERFACE IMPORTED GLOBAL)
- add_library(desktop-app::external_openal ALIAS external_openal)
-
--if (WIN32)
-+if (DESKTOP_APP_USE_PACKAGED)
-+ find_package(OpenAL REQUIRED)
-+ target_include_directories(external_openal INTERFACE ${OPENAL_INCLUDE_DIR})
-+ target_link_libraries(external_openal INTERFACE ${OPENAL_LIBRARY})
-+elseif (WIN32)
- target_include_directories(external_openal SYSTEM
- INTERFACE
- ${libs_loc}/openal-soft/include
-@@ -36,8 +40,14 @@ else()
- )
- endif()
-
-+if (NOT DESKTOP_APP_USE_PACKAGED)
-+ target_compile_definitions(external_openal
-+ INTERFACE
-+ AL_LIBTYPE_STATIC
-+ )
-+endif()
-+
- target_compile_definitions(external_openal
- INTERFACE
-- AL_LIBTYPE_STATIC
- AL_ALEXT_PROTOTYPES
- )
-diff --git a/cmake/external/openssl/CMakeLists.txt b/cmake/external/openssl/CMakeLists.txt
-index bcbcbfa..301e9ec 100644
---- a/cmake/external/openssl/CMakeLists.txt
-+++ b/cmake/external/openssl/CMakeLists.txt
-@@ -7,52 +7,57 @@
- add_library(external_openssl INTERFACE IMPORTED GLOBAL)
- add_library(desktop-app::external_openssl ALIAS external_openssl)
-
--if (LINUX)
-- target_include_directories(external_openssl SYSTEM
-- INTERFACE
-- /usr/local/desktop-app/openssl-1.1.1/include
-- )
--elseif (NOT APPLE OR NOT build_osx)
-- target_include_directories(external_openssl SYSTEM
-- INTERFACE
-- ${libs_loc}/openssl_1_1_1/include
-- )
-+if (DESKTOP_APP_USE_PACKAGED)
-+ find_package(OpenSSL REQUIRED)
-+ target_link_libraries(external_openssl INTERFACE OpenSSL::SSL)
- else()
-- target_include_directories(external_openssl SYSTEM
-- INTERFACE
-- ${libs_loc}/openssl/include
-- )
--endif()
-+ if (LINUX)
-+ target_include_directories(external_openssl SYSTEM
-+ INTERFACE
-+ /usr/local/desktop-app/openssl-1.1.1/include
-+ )
-+ elseif (NOT APPLE OR NOT build_osx)
-+ target_include_directories(external_openssl SYSTEM
-+ INTERFACE
-+ ${libs_loc}/openssl_1_1_1/include
-+ )
-+ else()
-+ target_include_directories(external_openssl SYSTEM
-+ INTERFACE
-+ ${libs_loc}/openssl/include
-+ )
-+ endif()
-
--if (WIN32)
-- set(openssl_lib_ext lib)
-- set(openssl_lib_loc ${libs_loc}/openssl_1_1_1/out32$<$<CONFIG:Debug>:.dbg>)
--else()
-- set(openssl_lib_ext a)
-- if (APPLE)
-- if (NOT build_osx)
-- set(openssl_lib_loc ${libs_loc}/openssl_1_1_1)
-+ if (WIN32)
-+ set(openssl_lib_ext lib)
-+ set(openssl_lib_loc ${libs_loc}/openssl_1_1_1/out32$<$<CONFIG:Debug>:.dbg>)
-+ else()
-+ set(openssl_lib_ext a)
-+ if (APPLE)
-+ if (NOT build_osx)
-+ set(openssl_lib_loc ${libs_loc}/openssl_1_1_1)
-+ else()
-+ set(openssl_lib_loc ${libs_loc}/openssl)
-+ endif()
- else()
-- set(openssl_lib_loc ${libs_loc}/openssl)
-+ set(openssl_lib_loc /usr/local/desktop-app/openssl-1.1.1/lib)
- endif()
-- else()
-- set(openssl_lib_loc /usr/local/desktop-app/openssl-1.1.1/lib)
- endif()
--endif()
-
--target_link_libraries(external_openssl
--INTERFACE
-- ${openssl_lib_loc}/libssl.${openssl_lib_ext}
-- ${openssl_lib_loc}/libcrypto.${openssl_lib_ext}
--)
-+ target_link_libraries(external_openssl
-+ INTERFACE
-+ ${openssl_lib_loc}/libssl.${openssl_lib_ext}
-+ ${openssl_lib_loc}/libcrypto.${openssl_lib_ext}
-+ )
-
--if (LINUX)
-- if (DESKTOP_APP_USE_GLIBC_WRAPS)
-- target_link_libraries(external_openssl
-- INTERFACE
-- desktop-app::linux_glibc_wraps
-- $<TARGET_FILE:desktop-app::linux_glibc_wraps>
-- )
-+ if (LINUX)
-+ if (DESKTOP_APP_USE_GLIBC_WRAPS)
-+ target_link_libraries(external_openssl
-+ INTERFACE
-+ desktop-app::linux_glibc_wraps
-+ $<TARGET_FILE:desktop-app::linux_glibc_wraps>
-+ )
-+ endif()
-+ target_link_libraries(external_openssl INTERFACE pthread)
- endif()
-- target_link_libraries(external_openssl INTERFACE pthread)
- endif()
-diff --git a/cmake/external/opus/CMakeLists.txt b/cmake/external/opus/CMakeLists.txt
-index 00c2508..f05e8c0 100644
---- a/cmake/external/opus/CMakeLists.txt
-+++ b/cmake/external/opus/CMakeLists.txt
-@@ -7,12 +7,21 @@
- add_library(external_opus INTERFACE IMPORTED GLOBAL)
- add_library(desktop-app::external_opus ALIAS external_opus)
-
--target_include_directories(external_opus SYSTEM
--INTERFACE
-- ${libs_loc}/opus/include
--)
-+if (DESKTOP_APP_USE_PACKAGED)
-+ find_package(PkgConfig REQUIRED)
-+ pkg_check_modules(OPUS opus)
-
--if (WIN32)
-+ target_include_directories(external_opus INTERFACE ${OPUS_INCLUDE_DIRS})
-+else()
-+ target_include_directories(external_opus SYSTEM
-+ INTERFACE
-+ ${libs_loc}/opus/include
-+ )
-+endif()
-+
-+if (DESKTOP_APP_USE_PACKAGED)
-+ target_link_libraries(external_opus INTERFACE ${OPUS_LIBRARIES})
-+elseif (WIN32)
- set(opus_lib_loc ${libs_loc}/opus/win32/VS2015/Win32/$<IF:$<CONFIG:Debug>,Debug,Release>)
-
- target_link_libraries(external_opus
-diff --git a/cmake/external/qt/CMakeLists.txt b/cmake/external/qt/CMakeLists.txt
-index 1a56319..7da3aa1 100644
---- a/cmake/external/qt/CMakeLists.txt
-+++ b/cmake/external/qt/CMakeLists.txt
-@@ -15,203 +15,218 @@ if (LINUX)
- endif()
- endif()
-
--target_include_directories(external_qt SYSTEM
--INTERFACE
-- ${qt_loc}/include
-- ${qt_loc}/include/QtCore
-- ${qt_loc}/include/QtGui
-- ${qt_loc}/include/QtDBus
-- ${qt_loc}/include/QtCore/${qt_version}
-- ${qt_loc}/include/QtGui/${qt_version}
-- ${qt_loc}/include/QtCore/${qt_version}/QtCore
-- ${qt_loc}/include/QtGui/${qt_version}/QtGui
--)
--
--target_compile_definitions(external_qt
--INTERFACE
-- _REENTRANT
-- QT_STATICPLUGIN
-- QT_PLUGIN
-- QT_WIDGETS_LIB
-- QT_NETWORK_LIB
-- QT_GUI_LIB
-- QT_CORE_LIB
--)
-+if (DESKTOP_APP_USE_PACKAGED)
-+ target_link_libraries(external_qt
-+ INTERFACE
-+ Qt5::Core
-+ Qt5::Gui
-+ Qt5::Widgets
-+ Qt5::Network
-+ Qt5::DBus)
-
--if (WIN32)
-- set(qt_lib_prefix "")
-- set(qt_lib_suffix $<$<CONFIG:Debug>:d>.lib)
-+ target_include_directories(external_qt
-+ INTERFACE
-+ ${Qt5Core_PRIVATE_INCLUDE_DIRS}
-+ ${Qt5Gui_PRIVATE_INCLUDE_DIRS})
- else()
-- set(qt_lib_prefix lib)
-- if (APPLE)
-- set(qt_lib_suffix $<$<CONFIG:Debug>:_debug>.a)
-+ target_include_directories(external_qt SYSTEM
-+ INTERFACE
-+ ${qt_loc}/include
-+ ${qt_loc}/include/QtCore
-+ ${qt_loc}/include/QtGui
-+ ${qt_loc}/include/QtDBus
-+ ${qt_loc}/include/QtCore/${qt_version}
-+ ${qt_loc}/include/QtGui/${qt_version}
-+ ${qt_loc}/include/QtCore/${qt_version}/QtCore
-+ ${qt_loc}/include/QtGui/${qt_version}/QtGui
-+ )
-+
-+ target_compile_definitions(external_qt
-+ INTERFACE
-+ _REENTRANT
-+ QT_STATICPLUGIN
-+ QT_PLUGIN
-+ QT_WIDGETS_LIB
-+ QT_NETWORK_LIB
-+ QT_GUI_LIB
-+ QT_CORE_LIB
-+ )
-+
-+ if (WIN32)
-+ set(qt_lib_prefix "")
-+ set(qt_lib_suffix $<$<CONFIG:Debug>:d>.lib)
- else()
-- set(qt_lib_suffix .a)
-+ set(qt_lib_prefix lib)
-+ if (APPLE)
-+ set(qt_lib_suffix $<$<CONFIG:Debug>:_debug>.a)
-+ else()
-+ set(qt_lib_suffix .a)
-+ endif()
- endif()
--endif()
-
--set(common_qt_libs
-- plugins/imageformats/${qt_lib_prefix}qwebp
-- plugins/imageformats/${qt_lib_prefix}qgif
-- plugins/imageformats/${qt_lib_prefix}qjpeg
-- lib/${qt_lib_prefix}Qt5PrintSupport
-- lib/${qt_lib_prefix}Qt5AccessibilitySupport
-- lib/${qt_lib_prefix}Qt5FontDatabaseSupport
-- lib/${qt_lib_prefix}Qt5EventDispatcherSupport
-- lib/${qt_lib_prefix}Qt5ThemeSupport
-- lib/${qt_lib_prefix}Qt5Network
-- lib/${qt_lib_prefix}Qt5Widgets
-- lib/${qt_lib_prefix}Qt5Gui
-- lib/${qt_lib_prefix}qtharfbuzz
-- lib/${qt_lib_prefix}qtlibpng
--)
--
--set(qt_libs_list "")
--if (WIN32)
-- set(qt_libs
-- ${common_qt_libs}
-- lib/${qt_lib_prefix}Qt5Core
-- lib/${qt_lib_prefix}Qt5WindowsUIAutomationSupport
-- lib/${qt_lib_prefix}qtmain
-- lib/${qt_lib_prefix}qtfreetype
-- lib/${qt_lib_prefix}qtpcre2
-- plugins/platforms/${qt_lib_prefix}qwindows
-+ set(common_qt_libs
-+ plugins/imageformats/${qt_lib_prefix}qwebp
-+ plugins/imageformats/${qt_lib_prefix}qgif
-+ plugins/imageformats/${qt_lib_prefix}qjpeg
-+ lib/${qt_lib_prefix}Qt5PrintSupport
-+ lib/${qt_lib_prefix}Qt5AccessibilitySupport
-+ lib/${qt_lib_prefix}Qt5FontDatabaseSupport
-+ lib/${qt_lib_prefix}Qt5EventDispatcherSupport
-+ lib/${qt_lib_prefix}Qt5ThemeSupport
-+ lib/${qt_lib_prefix}Qt5Network
-+ lib/${qt_lib_prefix}Qt5Widgets
-+ lib/${qt_lib_prefix}Qt5Gui
-+ lib/${qt_lib_prefix}qtharfbuzz
-+ lib/${qt_lib_prefix}qtlibpng
- )
-- foreach (lib ${qt_libs})
-- list(APPEND qt_libs_list "${qt_loc}/${lib}${qt_lib_suffix}")
-- endforeach()
--elseif (APPLE)
-- if (NOT build_osx)
-+
-+ set(qt_libs_list "")
-+ if (WIN32)
- set(qt_libs
- ${common_qt_libs}
- lib/${qt_lib_prefix}Qt5Core
-- lib/${qt_lib_prefix}Qt5GraphicsSupport
-- lib/${qt_lib_prefix}Qt5ClipboardSupport
-+ lib/${qt_lib_prefix}Qt5WindowsUIAutomationSupport
-+ lib/${qt_lib_prefix}qtmain
- lib/${qt_lib_prefix}qtfreetype
- lib/${qt_lib_prefix}qtpcre2
-- plugins/platforms/${qt_lib_prefix}qcocoa
-- plugins/bearer/${qt_lib_prefix}qgenericbearer
-+ plugins/platforms/${qt_lib_prefix}qwindows
-+ )
-+ foreach (lib ${qt_libs})
-+ list(APPEND qt_libs_list "${qt_loc}/${lib}${qt_lib_suffix}")
-+ endforeach()
-+ elseif (APPLE)
-+ if (NOT build_osx)
-+ set(qt_libs
-+ ${common_qt_libs}
-+ lib/${qt_lib_prefix}Qt5Core
-+ lib/${qt_lib_prefix}Qt5GraphicsSupport
-+ lib/${qt_lib_prefix}Qt5ClipboardSupport
-+ lib/${qt_lib_prefix}qtfreetype
-+ lib/${qt_lib_prefix}qtpcre2
-+ plugins/platforms/${qt_lib_prefix}qcocoa
-+ plugins/bearer/${qt_lib_prefix}qgenericbearer
-+ )
-+ else()
-+ set(qt_libs
-+ lib/${qt_lib_prefix}Qt5PrintSupport
-+ lib/${qt_lib_prefix}Qt5PlatformSupport
-+ lib/${qt_lib_prefix}Qt5Network
-+ lib/${qt_lib_prefix}Qt5Widgets
-+ lib/${qt_lib_prefix}Qt5Gui
-+ lib/${qt_lib_prefix}Qt5Core
-+ lib/${qt_lib_prefix}qtharfbuzzng
-+ lib/${qt_lib_prefix}qtfreetype
-+ lib/${qt_lib_prefix}qtpcre
-+ plugins/platforms/${qt_lib_prefix}qcocoa
-+ plugins/imageformats/${qt_lib_prefix}qwebp
-+ plugins/bearer/${qt_lib_prefix}qgenericbearer
-+ )
-+ endif()
-+ foreach (lib ${qt_libs})
-+ list(APPEND qt_libs_list "${qt_loc}/${lib}${qt_lib_suffix}")
-+ endforeach()
-+ target_link_libraries(external_qt
-+ INTERFACE
-+ desktop-app::external_zlib
-+ cups
- )
- else()
- set(qt_libs
-- lib/${qt_lib_prefix}Qt5PrintSupport
-- lib/${qt_lib_prefix}Qt5PlatformSupport
-- lib/${qt_lib_prefix}Qt5Network
-- lib/${qt_lib_prefix}Qt5Widgets
-- lib/${qt_lib_prefix}Qt5Gui
-- lib/${qt_lib_prefix}Qt5Core
-- lib/${qt_lib_prefix}qtharfbuzzng
-- lib/${qt_lib_prefix}qtfreetype
-- lib/${qt_lib_prefix}qtpcre
-- plugins/platforms/${qt_lib_prefix}qcocoa
-- plugins/imageformats/${qt_lib_prefix}qwebp
-+ plugins/platforminputcontexts/${qt_lib_prefix}composeplatforminputcontextplugin
-+ plugins/platforminputcontexts/${qt_lib_prefix}ibusplatforminputcontextplugin
-+ plugins/platforminputcontexts/${qt_lib_prefix}fcitxplatforminputcontextplugin
-+ plugins/platforminputcontexts/${qt_lib_prefix}himeplatforminputcontextplugin
-+ plugins/platforminputcontexts/${qt_lib_prefix}nimfplatforminputcontextplugin
-+ plugins/platforms/${qt_lib_prefix}qxcb
-+ lib/${qt_lib_prefix}Qt5XcbQpa
-+ lib/${qt_lib_prefix}Qt5LinuxAccessibilitySupport
-+ lib/${qt_lib_prefix}Qt5ServiceSupport
-+ lib/${qt_lib_prefix}Qt5EdidSupport
-+ plugins/bearer/${qt_lib_prefix}qconnmanbearer
- plugins/bearer/${qt_lib_prefix}qgenericbearer
-+ plugins/bearer/${qt_lib_prefix}qnmbearer
-+ ${common_qt_libs}
-+ lib/${qt_lib_prefix}Qt5DBus
-+ lib/${qt_lib_prefix}Qt5Core
-+ lib/${qt_lib_prefix}qtpcre2
-+ lib/${qt_lib_prefix}xcb-static
- )
-+ foreach (lib ${qt_libs})
-+ list(APPEND qt_libs_list "${qt_loc}/${lib}${qt_lib_suffix}")
-+ endforeach()
- endif()
-- foreach (lib ${qt_libs})
-- list(APPEND qt_libs_list "${qt_loc}/${lib}${qt_lib_suffix}")
-- endforeach()
-+
- target_link_libraries(external_qt
- INTERFACE
-- desktop-app::external_zlib
-- cups
-+ ${qt_libs_list}
- )
--else()
-- set(qt_libs
-- plugins/platforminputcontexts/${qt_lib_prefix}composeplatforminputcontextplugin
-- plugins/platforminputcontexts/${qt_lib_prefix}ibusplatforminputcontextplugin
-- plugins/platforminputcontexts/${qt_lib_prefix}fcitxplatforminputcontextplugin
-- plugins/platforminputcontexts/${qt_lib_prefix}himeplatforminputcontextplugin
-- plugins/platforminputcontexts/${qt_lib_prefix}nimfplatforminputcontextplugin
-- plugins/platforms/${qt_lib_prefix}qxcb
-- lib/${qt_lib_prefix}Qt5XcbQpa
-- lib/${qt_lib_prefix}Qt5LinuxAccessibilitySupport
-- lib/${qt_lib_prefix}Qt5ServiceSupport
-- lib/${qt_lib_prefix}Qt5EdidSupport
-- plugins/bearer/${qt_lib_prefix}qconnmanbearer
-- plugins/bearer/${qt_lib_prefix}qgenericbearer
-- plugins/bearer/${qt_lib_prefix}qnmbearer
-- ${common_qt_libs}
-- lib/${qt_lib_prefix}Qt5DBus
-- lib/${qt_lib_prefix}Qt5Core
-- lib/${qt_lib_prefix}qtpcre2
-- lib/${qt_lib_prefix}xcb-static
-- )
-- foreach (lib ${qt_libs})
-- list(APPEND qt_libs_list "${qt_loc}/${lib}${qt_lib_suffix}")
-- endforeach()
--endif()
--
--target_link_libraries(external_qt
--INTERFACE
-- ${qt_libs_list}
--)
-
--if (LINUX)
-- target_include_directories(external_qt SYSTEM
-- INTERFACE
-- ${qt_loc}/mkspecs/linux-g++
-- )
-- target_link_options(external_qt
-- INTERFACE
-- -static-libstdc++
-- -pthread
-- -rdynamic
-- )
-- if (DESKTOP_APP_USE_GLIBC_WRAPS)
-+ if (LINUX)
-+ target_include_directories(external_qt SYSTEM
-+ INTERFACE
-+ ${qt_loc}/mkspecs/linux-g++
-+ )
- target_link_options(external_qt
- INTERFACE
-- -Wl,-wrap,aligned_alloc
-- -Wl,-wrap,secure_getenv
-- -Wl,-wrap,clock_gettime
-- -Wl,--no-as-needed,-lrt
-+ -static-libstdc++
-+ -pthread
-+ -rdynamic
- )
-- if (NOT build_linux32)
-+ if (DESKTOP_APP_USE_GLIBC_WRAPS)
- target_link_options(external_qt
- INTERFACE
-- -Wl,-wrap,__divmodti4
-+ -Wl,-wrap,aligned_alloc
-+ -Wl,-wrap,secure_getenv
-+ -Wl,-wrap,clock_gettime
-+ -Wl,--no-as-needed,-lrt
- )
-- else()
-- target_link_options(external_qt
-+ if (NOT build_linux32)
-+ target_link_options(external_qt
-+ INTERFACE
-+ -Wl,-wrap,__divmodti4
-+ )
-+ else()
-+ target_link_options(external_qt
-+ INTERFACE
-+ -Wl,-wrap,__divmoddi4
-+ )
-+ endif()
-+ endif()
-+ target_link_static_libraries(external_qt
-+ INTERFACE
-+ SM
-+ ICE
-+ fontconfig
-+ freetype
-+ expat
-+ z
-+ xcb-shm
-+ xcb-xfixes
-+ xcb-render
-+ xkbcommon
-+ xkbcommon-x11
-+ Xrender
-+ icutu
-+ icui18n
-+ icuuc
-+ icudata
-+ )
-+ if (DESKTOP_APP_USE_GLIBC_WRAPS)
-+ target_link_libraries(external_qt
- INTERFACE
-- -Wl,-wrap,__divmoddi4
-+ desktop-app::linux_glibc_wraps
-+ $<TARGET_FILE:desktop-app::linux_glibc_wraps>
- )
- endif()
-- endif()
-- target_link_static_libraries(external_qt
-- INTERFACE
-- SM
-- ICE
-- fontconfig
-- freetype
-- expat
-- z
-- xcb-shm
-- xcb-xfixes
-- xcb-render
-- xkbcommon
-- xkbcommon-x11
-- Xrender
-- icutu
-- icui18n
-- icuuc
-- icudata
-- )
-- if (DESKTOP_APP_USE_GLIBC_WRAPS)
- target_link_libraries(external_qt
- INTERFACE
-- desktop-app::linux_glibc_wraps
-- $<TARGET_FILE:desktop-app::linux_glibc_wraps>
-+ xcb
-+ X11
-+ X11-xcb
-+ dbus-1
-+ dl
-+ glib-2.0
-+ pthread
- )
- endif()
-- target_link_libraries(external_qt
-- INTERFACE
-- xcb
-- X11
-- X11-xcb
-- dbus-1
-- dl
-- glib-2.0
-- pthread
-- )
- endif()
-diff --git a/cmake/external/qt/package.cmake b/cmake/external/qt/package.cmake
-index 36a1dfd..1e90baf 100644
---- a/cmake/external/qt/package.cmake
-+++ b/cmake/external/qt/package.cmake
-@@ -4,19 +4,21 @@
- # For license and copyright information please follow this link:
- # https://github.com/desktop-app/legal/blob/master/LEGAL
-
--if (NOT APPLE OR NOT build_osx)
-- set(qt_version 5.12.5)
--else()
-- set(qt_version 5.6.2)
--endif()
-+if (NOT DESKTOP_APP_USE_PACKAGED)
-+ if (NOT APPLE OR NOT build_osx)
-+ set(qt_version 5.12.5)
-+ else()
-+ set(qt_version 5.6.2)
-+ endif()
-
--if (WIN32)
-- set(qt_loc ${libs_loc}/Qt-${qt_version})
--else()
-- set(qt_loc /usr/local/desktop-app/Qt-${qt_version})
--endif()
-+ if (WIN32)
-+ set(qt_loc ${libs_loc}/Qt-${qt_version})
-+ else()
-+ set(qt_loc /usr/local/desktop-app/Qt-${qt_version})
-+ endif()
-
--set(Qt5_DIR ${qt_loc}/lib/cmake/Qt5)
-+ set(Qt5_DIR ${qt_loc}/lib/cmake/Qt5)
-+endif()
-
- find_package(Qt5 COMPONENTS Core Gui Widgets Network REQUIRED)
-
-diff --git a/cmake/external/ranges/CMakeLists.txt b/cmake/external/ranges/CMakeLists.txt
-index 4c75ecb..8105361 100644
---- a/cmake/external/ranges/CMakeLists.txt
-+++ b/cmake/external/ranges/CMakeLists.txt
-@@ -7,10 +7,14 @@
- add_library(external_ranges INTERFACE IMPORTED GLOBAL)
- add_library(desktop-app::external_ranges ALIAS external_ranges)
-
--target_include_directories(external_ranges SYSTEM
--INTERFACE
-- ${libs_loc}/range-v3/include
--)
-+if (DESKTOP_APP_USE_PACKAGED)
-+ find_package(range-v3 REQUIRED)
-+else()
-+ target_include_directories(external_ranges SYSTEM
-+ INTERFACE
-+ ${libs_loc}/range-v3/include
-+ )
-+endif()
-
- if (WIN32)
- target_compile_options(external_ranges
-diff --git a/cmake/external/rlottie/CMakeLists.txt b/cmake/external/rlottie/CMakeLists.txt
-index 4fc3a54..155532e 100644
---- a/cmake/external/rlottie/CMakeLists.txt
-+++ b/cmake/external/rlottie/CMakeLists.txt
-@@ -4,115 +4,123 @@
- # For license and copyright information please follow this link:
- # https://github.com/desktop-app/legal/blob/master/LEGAL
-
--add_library(external_rlottie OBJECT)
--add_library(desktop-app::external_rlottie ALIAS external_rlottie)
--init_target(external_rlottie "(external)")
-+if (DESKTOP_APP_USE_PACKAGED_RLOTTIE)
-+ add_library(external_rlottie INTERFACE IMPORTED GLOBAL)
-+ add_library(desktop-app::external_rlottie ALIAS external_rlottie)
-
--get_filename_component(src_loc . REALPATH)
--set(rlottie_loc ${third_party_loc}/rlottie)
-+ find_package(rlottie REQUIRED)
-+ target_link_libraries(external_rlottie INTERFACE rlottie::rlottie)
-+else()
-+ add_library(external_rlottie OBJECT)
-+ add_library(desktop-app::external_rlottie ALIAS external_rlottie)
-+ init_target(external_rlottie "(external)")
-
--target_sources(external_rlottie PRIVATE ${src_loc}/config/config.h)
--nice_target_sources(external_rlottie ${rlottie_loc}
--PRIVATE
-- inc/rlottie.h
-- inc/rlottie_capi.h
-- inc/rlottiecommon.h
-+ get_filename_component(src_loc . REALPATH)
-+ set(rlottie_loc ${third_party_loc}/rlottie)
-
-- src/lottie/lottieanimation.cpp
-- src/lottie/lottieitem.cpp
-- src/lottie/lottieitem.h
-- src/lottie/lottiekeypath.cpp
-- src/lottie/lottiekeypath.h
-- src/lottie/lottieloader.cpp
-- src/lottie/lottieloader.h
-- src/lottie/lottiemodel.cpp
-- src/lottie/lottiemodel.h
-- src/lottie/lottieparser.cpp
-- src/lottie/lottieparser.h
-- src/lottie/lottieproxymodel.cpp
-- src/lottie/lottieproxymodel.h
-+ target_sources(external_rlottie PRIVATE ${src_loc}/config/config.h)
-+ nice_target_sources(external_rlottie ${rlottie_loc}
-+ PRIVATE
-+ inc/rlottie.h
-+ inc/rlottie_capi.h
-+ inc/rlottiecommon.h
-
-- src/vector/freetype/v_ft_math.cpp
-- src/vector/freetype/v_ft_math.h
-- src/vector/freetype/v_ft_raster.cpp
-- src/vector/freetype/v_ft_raster.h
-- src/vector/freetype/v_ft_stroker.cpp
-- src/vector/freetype/v_ft_stroker.h
-- src/vector/freetype/v_ft_types.h
-+ src/lottie/lottieanimation.cpp
-+ src/lottie/lottieitem.cpp
-+ src/lottie/lottieitem.h
-+ src/lottie/lottiekeypath.cpp
-+ src/lottie/lottiekeypath.h
-+ src/lottie/lottieloader.cpp
-+ src/lottie/lottieloader.h
-+ src/lottie/lottiemodel.cpp
-+ src/lottie/lottiemodel.h
-+ src/lottie/lottieparser.cpp
-+ src/lottie/lottieparser.h
-+ src/lottie/lottieproxymodel.cpp
-+ src/lottie/lottieproxymodel.h
-
-- # src/vector/pixman/pixman-arm-neon-asm.h
-- # src/vector/pixman/pixman-arm-neon-asm.S
-- src/vector/pixman/vregion.cpp
-- src/vector/pixman/vregion.h
-+ src/vector/freetype/v_ft_math.cpp
-+ src/vector/freetype/v_ft_math.h
-+ src/vector/freetype/v_ft_raster.cpp
-+ src/vector/freetype/v_ft_raster.h
-+ src/vector/freetype/v_ft_stroker.cpp
-+ src/vector/freetype/v_ft_stroker.h
-+ src/vector/freetype/v_ft_types.h
-
-- src/vector/vbezier.cpp
-- src/vector/vbezier.h
-- src/vector/vbitmap.cpp
-- src/vector/vbitmap.h
-- src/vector/vbrush.cpp
-- src/vector/vbrush.h
-- src/vector/vcompositionfunctions.cpp
-- src/vector/vcowptr.h
-- src/vector/vdasher.cpp
-- src/vector/vdasher.h
-- src/vector/vdebug.cpp
-- src/vector/vdebug.h
-- src/vector/vdrawable.cpp
-- src/vector/vdrawable.h
-- src/vector/vdrawhelper.cpp
-- src/vector/vdrawhelper.h
-- src/vector/vdrawhelper_neon.cpp
-- src/vector/vdrawhelper_sse2.cpp
-- src/vector/velapsedtimer.cpp
-- src/vector/velapsedtimer.h
-- src/vector/vglobal.h
-- src/vector/vimageloader.cpp
-- src/vector/vimageloader.h
-- src/vector/vinterpolator.cpp
-- src/vector/vinterpolator.h
-- src/vector/vline.h
-- src/vector/vmatrix.cpp
-- src/vector/vmatrix.h
-- src/vector/vpainter.cpp
-- src/vector/vpainter.h
-- src/vector/vpath.cpp
-- src/vector/vpath.h
-- src/vector/vpathmesure.cpp
-- src/vector/vpathmesure.h
-- src/vector/vpoint.h
-- src/vector/vraster.cpp
-- src/vector/vraster.h
-- src/vector/vrect.cpp
-- src/vector/vrect.h
-- src/vector/vrle.cpp
-- src/vector/vrle.h
-- src/vector/vstackallocator.h
-- src/vector/vtaskqueue.h
--)
-+ # src/vector/pixman/pixman-arm-neon-asm.h
-+ # src/vector/pixman/pixman-arm-neon-asm.S
-+ src/vector/pixman/vregion.cpp
-+ src/vector/pixman/vregion.h
-
--target_compile_definitions(external_rlottie
--PUBLIC
-- LOT_BUILD
--PRIVATE
-- _USE_MATH_DEFINES
-- "RAPIDJSON_ASSERT=(void)"
--)
-+ src/vector/vbezier.cpp
-+ src/vector/vbezier.h
-+ src/vector/vbitmap.cpp
-+ src/vector/vbitmap.h
-+ src/vector/vbrush.cpp
-+ src/vector/vbrush.h
-+ src/vector/vcompositionfunctions.cpp
-+ src/vector/vcowptr.h
-+ src/vector/vdasher.cpp
-+ src/vector/vdasher.h
-+ src/vector/vdebug.cpp
-+ src/vector/vdebug.h
-+ src/vector/vdrawable.cpp
-+ src/vector/vdrawable.h
-+ src/vector/vdrawhelper.cpp
-+ src/vector/vdrawhelper.h
-+ src/vector/vdrawhelper_neon.cpp
-+ src/vector/vdrawhelper_sse2.cpp
-+ src/vector/velapsedtimer.cpp
-+ src/vector/velapsedtimer.h
-+ src/vector/vglobal.h
-+ src/vector/vimageloader.cpp
-+ src/vector/vimageloader.h
-+ src/vector/vinterpolator.cpp
-+ src/vector/vinterpolator.h
-+ src/vector/vline.h
-+ src/vector/vmatrix.cpp
-+ src/vector/vmatrix.h
-+ src/vector/vpainter.cpp
-+ src/vector/vpainter.h
-+ src/vector/vpath.cpp
-+ src/vector/vpath.h
-+ src/vector/vpathmesure.cpp
-+ src/vector/vpathmesure.h
-+ src/vector/vpoint.h
-+ src/vector/vraster.cpp
-+ src/vector/vraster.h
-+ src/vector/vrect.cpp
-+ src/vector/vrect.h
-+ src/vector/vrle.cpp
-+ src/vector/vrle.h
-+ src/vector/vstackallocator.h
-+ src/vector/vtaskqueue.h
-+ )
-
--target_include_directories(external_rlottie
--PUBLIC
-- ${rlottie_loc}/inc
--PRIVATE
-- ${src_loc}/config
-- ${rlottie_loc}/src/lottie
-- ${rlottie_loc}/src/vector
-- ${rlottie_loc}/src/vector/pixman
-- ${rlottie_loc}/src/vector/freetype
--)
-+ target_compile_definitions(external_rlottie
-+ PUBLIC
-+ LOT_BUILD
-+ PRIVATE
-+ _USE_MATH_DEFINES
-+ "RAPIDJSON_ASSERT=(void)"
-+ )
-
--if (WIN32)
-- target_compile_options(external_rlottie
-+ target_include_directories(external_rlottie
-+ PUBLIC
-+ ${rlottie_loc}/inc
- PRIVATE
-- /w44244 # 'initializing': conversion from 'double' to 'float'
-- /w44251 # needs to have dll-interface to be used by clients of class
-+ ${src_loc}/config
-+ ${rlottie_loc}/src/lottie
-+ ${rlottie_loc}/src/vector
-+ ${rlottie_loc}/src/vector/pixman
-+ ${rlottie_loc}/src/vector/freetype
- )
-+
-+ if (WIN32)
-+ target_compile_options(external_rlottie
-+ PRIVATE
-+ /w44244 # 'initializing': conversion from 'double' to 'float'
-+ /w44251 # needs to have dll-interface to be used by clients of class
-+ )
-+ endif()
- endif()
-diff --git a/cmake/external/xxhash/CMakeLists.txt b/cmake/external/xxhash/CMakeLists.txt
-index ba98eda..1219ae8 100644
---- a/cmake/external/xxhash/CMakeLists.txt
-+++ b/cmake/external/xxhash/CMakeLists.txt
-@@ -7,12 +7,20 @@
- add_library(external_xxhash INTERFACE IMPORTED GLOBAL)
- add_library(desktop-app::external_xxhash ALIAS external_xxhash)
-
--target_include_directories(external_xxhash SYSTEM
--INTERFACE
-- ${third_party_loc}/xxHash
--)
-+if (DESKTOP_APP_USE_PACKAGED)
-+ find_library(XXHASH_LIBRARY xxhash)
-+ find_path(XXHASH_INCLUDE_DIRS xxhash.h)
-
--target_compile_definitions(external_xxhash
--INTERFACE
-- XXH_INLINE_ALL
--)
-+ target_include_directories(external_xxhash INTERFACE ${XXHASH_INCLUDE_DIRS})
-+ target_link_libraries(external_xxhash INTERFACE ${XXHASH_LIBRARY})
-+else()
-+ target_include_directories(external_xxhash SYSTEM
-+ INTERFACE
-+ ${third_party_loc}/xxHash
-+ )
-+
-+ target_compile_definitions(external_xxhash
-+ INTERFACE
-+ XXH_INLINE_ALL
-+ )
-+endif()
-diff --git a/cmake/external/zlib/CMakeLists.txt b/cmake/external/zlib/CMakeLists.txt
-index d2bc1fc..dc0a979 100644
---- a/cmake/external/zlib/CMakeLists.txt
-+++ b/cmake/external/zlib/CMakeLists.txt
-@@ -7,7 +7,16 @@
- add_library(external_zlib INTERFACE IMPORTED GLOBAL)
- add_library(desktop-app::external_zlib ALIAS external_zlib)
-
--if (NOT WIN32)
-+if (DESKTOP_APP_USE_PACKAGED)
-+ add_library(external_minizip INTERFACE IMPORTED)
-+ find_package(PkgConfig REQUIRED)
-+ pkg_check_modules(MINIZIP REQUIRED minizip)
-+
-+ target_include_directories(external_minizip INTERFACE ${MINIZIP_INCLUDE_DIRS})
-+ target_link_libraries(external_minizip INTERFACE ${MINIZIP_LIBRARIES})
-+
-+ target_link_libraries(external_zlib INTERFACE external_minizip)
-+elseif (NOT WIN32)
- add_library(external_minizip STATIC)
- init_target(external_minizip "(external)")
-
-@@ -32,13 +41,18 @@ if (NOT WIN32)
- target_link_libraries(external_zlib INTERFACE external_minizip)
- endif()
-
--target_include_directories(external_zlib SYSTEM
--INTERFACE
-- ${libs_loc}/zlib
-- ${libs_loc}/zlib/contrib/minizip
--)
-+if (NOT DESKTOP_APP_USE_PACKAGED)
-+ target_include_directories(external_zlib SYSTEM
-+ INTERFACE
-+ ${libs_loc}/zlib
-+ ${libs_loc}/zlib/contrib/minizip
-+ )
-+endif()
-
--if (WIN32)
-+if (DESKTOP_APP_USE_PACKAGED)
-+ find_package(ZLIB REQUIRED)
-+ target_link_libraries(external_zlib INTERFACE ZLIB::ZLIB)
-+elseif (WIN32)
- target_compile_definitions(external_zlib INTERFACE ZLIB_WINAPI)
-
- set(zlib_lib_loc ${libs_loc}/zlib/contrib/vstudio/vc14/x86/ZlibStat$<IF:$<CONFIG:Debug>,Debug,ReleaseWithoutAsm>)
-diff --git a/cmake/init_target.cmake b/cmake/init_target.cmake
-index c7a1244..484ea91 100644
---- a/cmake/init_target.cmake
-+++ b/cmake/init_target.cmake
-@@ -26,8 +26,10 @@ function(init_target target_name) # init_target(my_target folder_name)
- MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
- endif()
- target_link_libraries(${target_name} PUBLIC desktop-app::common_options)
-+ if (NOT DESKTOP_APP_USE_PACKAGED)
-+ set_target_properties(${target_name} PROPERTIES LINK_SEARCH_START_STATIC 1)
-+ endif()
- set_target_properties(${target_name} PROPERTIES
-- LINK_SEARCH_START_STATIC 1
- XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_WEAK YES
- XCODE_ATTRIBUTE_GCC_INLINES_ARE_PRIVATE_EXTERN YES
- XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN YES
-diff --git a/cmake/options_linux.cmake b/cmake/options_linux.cmake
-index a6a13c9..5b22b8d 100644
---- a/cmake/options_linux.cmake
-+++ b/cmake/options_linux.cmake
-@@ -6,10 +6,9 @@
-
- target_compile_options(common_options
- INTERFACE
-- $<IF:$<CONFIG:Debug>,,-Ofast -fno-strict-aliasing>
-+ $<IF:$<CONFIG:Debug>,,-fno-strict-aliasing>
- -pipe
- -Wall
-- -Werror
- -W
- -fPIC
- -Wno-unused-variable
-@@ -26,14 +25,21 @@ INTERFACE
- -Wno-maybe-uninitialized
- -Wno-error=class-memaccess
- )
--target_link_options(common_options
--INTERFACE
-- $<IF:$<CONFIG:Debug>,,-Ofast>
--)
-+if (NOT DESKTOP_APP_USE_PACKAGED)
-+ target_compile_options(common_options
-+ INTERFACE
-+ $<IF:$<CONFIG:Debug>,,-Ofast>
-+ -Werror
-+ )
-+ target_link_options(common_options
-+ INTERFACE
-+ $<IF:$<CONFIG:Debug>,,-Ofast>
-+ )
-+endif()
- if (build_linux32)
- target_compile_options(common_options INTERFACE -g0)
- target_link_options(common_options INTERFACE -g0)
--else()
-+elseif (NOT DESKTOP_APP_USE_PACKAGED)
- target_compile_options(common_options INTERFACE $<IF:$<CONFIG:Debug>,,-g -flto>)
- target_link_options(common_options INTERFACE $<IF:$<CONFIG:Debug>,,-g -flto -fuse-linker-plugin>)
- endif()
-diff --git a/cmake/variables.cmake b/cmake/variables.cmake
-index b3d7ff4..10031e7 100644
---- a/cmake/variables.cmake
-+++ b/cmake/variables.cmake
-@@ -10,6 +10,7 @@ option(DESKTOP_APP_DISABLE_SPELLCHECK "Disable spellcheck library." OFF)
- option(DESKTOP_APP_LOTTIE_USE_CACHE "Use caching in lottie animations." ON)
- option(DESKTOP_APP_USE_GLIBC_WRAPS "Use wraps for new GLIBC features." OFF)
- option(DESKTOP_APP_USE_PACKAGED "Find libraries using CMake instead of exact paths." ON)
-+option(DESKTOP_APP_USE_PACKAGED_RLOTTIE "Find rlottie using CMake instead of bundled one." ${DESKTOP_APP_USE_PACKAGED})
-
- function(report_bad_special_target)
- message(FATAL_ERROR "Bad special target '${DESKTOP_APP_SPECIAL_TARGET}'")
-@@ -74,9 +75,11 @@ else()
- elseif (NOT DESKTOP_APP_SPECIAL_TARGET STREQUAL "")
- report_bad_special_target()
- endif()
-- set(CMAKE_AR /usr/bin/gcc-ar)
-- set(CMAKE_RANLIB /usr/bin/gcc-ranlib)
-- set(CMAKE_NM /usr/bin/gcc-nm)
-+ if (NOT DESKTOP_APP_USE_PACKAGED)
-+ set(CMAKE_AR /usr/bin/gcc-ar)
-+ set(CMAKE_RANLIB /usr/bin/gcc-ranlib)
-+ set(CMAKE_NM /usr/bin/gcc-nm)
-+ endif()
- endif()
-
- if (NOT APPLE OR build_osx)
diff --git a/fix-notifications.patch b/fix-notifications.patch
deleted file mode 100644
index ad93293e1df9..000000000000
--- a/fix-notifications.patch
+++ /dev/null
@@ -1,216 +0,0 @@
-diff --git a/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp b/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp
-index f93941021..b9ace2751 100644
---- a/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp
-+++ b/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp
-@@ -28,12 +28,12 @@ std::vector<QString> GetServerInformation(
- const std::shared_ptr<QDBusInterface> &notificationInterface) {
- std::vector<QString> serverInformation;
- auto serverInformationReply = notificationInterface
-- ->call("GetServerInformation");
-+ ->call(qsl("GetServerInformation"));
-
- if (serverInformationReply.type() == QDBusMessage::ReplyMessage) {
- for (const auto &arg : serverInformationReply.arguments()) {
- if (static_cast<QMetaType::Type>(arg.type())
-- == QMetaType::QString) {
-+ == QMetaType::QString) {
- serverInformation.push_back(arg.toString());
- } else {
- LOG(("Native notification error: "
-@@ -55,7 +55,7 @@ std::vector<QString> GetServerInformation(
- std::vector<QString> GetCapabilities(
- const std::shared_ptr<QDBusInterface> &notificationInterface) {
- QDBusReply<QStringList> capabilitiesReply = notificationInterface
-- ->call("GetCapabilities");
-+ ->call(qsl("GetCapabilities"));
-
- if (capabilitiesReply.isValid()) {
- return capabilitiesReply.value().toVector().toStdVector();
-@@ -96,23 +96,25 @@ NotificationData::NotificationData(
-
- if (ranges::find(capabilities, qsl("body-markup")) != capabilitiesEnd) {
- _body = subtitle.isEmpty()
-- ? msg.toHtmlEscaped()
-- : qsl("<b>%1</b>\n%2").arg(subtitle.toHtmlEscaped())
-- .arg(msg.toHtmlEscaped());
-+ ? msg.toHtmlEscaped()
-+ : qsl("<b>%1</b>\n%2").arg(subtitle.toHtmlEscaped())
-+ .arg(msg.toHtmlEscaped());
- } else {
- _body = subtitle.isEmpty()
-- ? msg
-- : qsl("%1\n%2").arg(subtitle).arg(msg);
-+ ? msg
-+ : qsl("%1\n%2").arg(subtitle).arg(msg);
- }
-
- if (ranges::find(capabilities, qsl("actions")) != capabilitiesEnd) {
-+ _actions << qsl("default") << qsl("");
-+
- // icon name according to https://specifications.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html
-- _actions << "mail-reply-sender"
-- << tr::lng_notification_reply(tr::now);
-+ _actions << qsl("mail-reply-sender")
-+ << tr::lng_notification_reply(tr::now);
-
- connect(_notificationInterface.get(),
-- SIGNAL(ActionInvoked(uint, QString)),
-- this, SLOT(notificationClicked(uint)));
-+ SIGNAL(ActionInvoked(uint, QString)),
-+ this, SLOT(notificationClicked(uint)));
- }
-
- if (ranges::find(capabilities, qsl("action-icons")) != capabilitiesEnd) {
-@@ -125,26 +127,35 @@ NotificationData::NotificationData(
- _hints["suppress-sound"] = true;
- } else {
- // sound name according to http://0pointer.de/public/sound-naming-spec.html
-- _hints["sound-name"] = "message-new-instant";
-+ _hints["sound-name"] = qsl("message-new-instant");
- }
- }
-
- if (ranges::find(capabilities, qsl("x-canonical-append"))
-- != capabilitiesEnd) {
-- _hints["x-canonical-append"] = "true";
-+ != capabilitiesEnd) {
-+ _hints["x-canonical-append"] = qsl("true");
- }
-
-- _hints["category"] = "im.received";
-- _hints["desktop-entry"] = "kotatogramdesktop";
-+ _hints["category"] = qsl("im.received");
-+
-+#ifdef TDESKTOP_LAUNCHER_FILENAME
-+#define TDESKTOP_LAUNCHER_FILENAME_TO_STRING_HELPER(V) #V
-+#define TDESKTOP_LAUNCHER_FILENAME_TO_STRING(V) TDESKTOP_LAUNCHER_FILENAME_TO_STRING_HELPER(V)
-+ _hints["desktop-entry"] =
-+ qsl(TDESKTOP_LAUNCHER_FILENAME_TO_STRING(TDESKTOP_LAUNCHER_FILENAME))
-+ .remove(QRegExp(qsl("\\.desktop$"), Qt::CaseInsensitive));
-+#else
-+ _hints["desktop-entry"] = qsl("kotatogramdesktop");
-+#endif
-
- connect(_notificationInterface.get(),
-- SIGNAL(NotificationClosed(uint, uint)),
-- this, SLOT(notificationClosed(uint)));
-+ SIGNAL(NotificationClosed(uint, uint)),
-+ this, SLOT(notificationClosed(uint)));
- }
-
- bool NotificationData::show() {
-- QDBusReply<uint> notifyReply = _notificationInterface->call("Notify",
-- str_const_toString(AppName), uint(0), "kotatogram", _title, _body,
-+ QDBusReply<uint> notifyReply = _notificationInterface->call(qsl("Notify"),
-+ str_const_toString(AppName), uint(0), qsl(""), _title, _body,
- _actions, _hints, -1);
-
- if (notifyReply.isValid()) {
-@@ -159,7 +170,7 @@ bool NotificationData::show() {
-
- bool NotificationData::close() {
- QDBusReply<void> closeReply = _notificationInterface
-- ->call("CloseNotification", _notificationId);
-+ ->call(qsl("CloseNotification"), _notificationId);
-
- if (!closeReply.isValid()) {
- LOG(("Native notification error: %1")
-@@ -180,12 +191,12 @@ void NotificationData::setImage(const QString &imagePath) {
- const auto minorVersion = specificationVersion.minorVersion();
-
- if ((majorVersion == 1 && minorVersion >= 2) || majorVersion > 1) {
-- imageKey = "image-data";
-+ imageKey = qsl("image-data");
- } else if (majorVersion == 1 && minorVersion) {
-- imageKey = "image_data";
-+ imageKey = qsl("image_data");
- } else if ((majorVersion == 1 && minorVersion < 1)
-- || majorVersion < 1) {
-- imageKey = "icon_data";
-+ || majorVersion < 1) {
-+ imageKey = qsl("icon_data");
- } else {
- LOG(("Native notification error: unknown specification version"));
- return;
-@@ -197,7 +208,7 @@ void NotificationData::setImage(const QString &imagePath) {
-
- auto image = QImage(imagePath).convertToFormat(QImage::Format_RGBA8888);
- QByteArray imageBytes((const char*)image.constBits(),
-- image.sizeInBytes());
-+ image.sizeInBytes());
-
- ImageData imageData;
- imageData.width = image.width();
-@@ -233,12 +244,12 @@ QDBusArgument &operator<<(QDBusArgument &argument,
- const NotificationData::ImageData &imageData) {
- argument.beginStructure();
- argument << imageData.width
-- << imageData.height
-- << imageData.rowStride
-- << imageData.hasAlpha
-- << imageData.bitsPerSample
-- << imageData.channels
-- << imageData.data;
-+ << imageData.height
-+ << imageData.rowStride
-+ << imageData.hasAlpha
-+ << imageData.bitsPerSample
-+ << imageData.channels
-+ << imageData.data;
- argument.endStructure();
- return argument;
- }
-@@ -247,29 +258,23 @@ const QDBusArgument &operator>>(const QDBusArgument &argument,
- NotificationData::ImageData &imageData) {
- argument.beginStructure();
- argument >> imageData.width
-- >> imageData.height
-- >> imageData.rowStride
-- >> imageData.hasAlpha
-- >> imageData.bitsPerSample
-- >> imageData.channels
-- >> imageData.data;
-+ >> imageData.height
-+ >> imageData.rowStride
-+ >> imageData.hasAlpha
-+ >> imageData.bitsPerSample
-+ >> imageData.channels
-+ >> imageData.data;
- argument.endStructure();
- return argument;
- }
-
- bool Supported() {
-- static auto Checked = false;
-- static auto NotificationDaemonRunning = false;
--
-- if (!Checked) {
-- Checked = true;
-- NotificationDaemonRunning = QDBusInterface(
-- str_const_toString(kService),
-- str_const_toString(kObjectPath),
-- str_const_toString(kInterface)).isValid();
-- }
-+ static auto Available = QDBusInterface(
-+ str_const_toString(kService),
-+ str_const_toString(kObjectPath),
-+ str_const_toString(kInterface)).isValid();
-
-- return NotificationDaemonRunning;
-+ return Available;
- }
-
- std::unique_ptr<Window::Notifications::Manager> Create(
-@@ -284,9 +289,9 @@ Manager::Private::Private(Manager *manager, Type type)
- : _cachedUserpics(type)
- , _manager(manager)
- , _notificationInterface(std::make_shared<QDBusInterface>(
-- str_const_toString(kService),
-- str_const_toString(kObjectPath),
-- str_const_toString(kInterface))) {
-+ str_const_toString(kService),
-+ str_const_toString(kObjectPath),
-+ str_const_toString(kInterface))) {
- qDBusRegisterMetaType<NotificationData::ImageData>();
-
- auto specificationVersion = ParseSpecificationVersion(
diff --git a/fix-spellcheck.patch b/fix-spellcheck.patch
deleted file mode 100644
index fedc0b9ae82c..000000000000
--- a/fix-spellcheck.patch
+++ /dev/null
@@ -1,523 +0,0 @@
-diff --git a/.gitmodules b/.gitmodules
-index f206a48c7..8bf8047de 100644
---- a/.gitmodules
-+++ b/.gitmodules
-@@ -64,3 +64,6 @@
- [submodule "Telegram/lib_qr"]
- path = Telegram/lib_qr
- url = https://github.com/desktop-app/lib_qr.git
-+[submodule "Telegram/ThirdParty/sonnet"]
-+ path = Telegram/ThirdParty/sonnet
-+ url = https://github.com/KDE/sonnet
-diff --git a/Telegram/CMakeLists.txt b/Telegram/CMakeLists.txt
-index b00bd61e5..277acdb45 100644
---- a/Telegram/CMakeLists.txt
-+++ b/Telegram/CMakeLists.txt
-@@ -94,6 +94,10 @@ if (NOT DESKTOP_APP_DISABLE_CRASH_REPORTS)
- target_link_libraries(Telegram PRIVATE desktop-app::external_crash_reports)
- endif()
-
-+if (LINUX AND NOT DESKTOP_APP_DISABLE_SPELLCHECK AND NOT DESKTOP_APP_USE_PACKAGED)
-+ target_link_libraries(Telegram PRIVATE desktop-app::external_sonnet)
-+endif()
-+
- target_precompile_headers(Telegram PRIVATE ${src_loc}/stdafx.h)
- nice_target_sources(Telegram ${src_loc}
- PRIVATE
-Submodule Telegram/lib_spellcheck contains modified content
-diff --git a/Telegram/lib_spellcheck/CMakeLists.txt b/Telegram/lib_spellcheck/CMakeLists.txt
-index 282e732..5b264ec 100644
---- a/Telegram/lib_spellcheck/CMakeLists.txt
-+++ b/Telegram/lib_spellcheck/CMakeLists.txt
-@@ -44,4 +44,6 @@ if (LINUX)
-
- pkg_search_module(ENCHANT REQUIRED enchant-2 enchant)
- target_include_directories(lib_spellcheck PRIVATE ${ENCHANT_INCLUDE_DIRS})
-+
-+ target_link_libraries(lib_spellcheck PUBLIC desktop-app::external_sonnet)
- endif()
-diff --git a/Telegram/lib_spellcheck/spellcheck/platform/linux/spellcheck_linux.cpp b/Telegram/lib_spellcheck/spellcheck/platform/linux/spellcheck_linux.cpp
-index a465cc6..be96fb8 100644
---- a/Telegram/lib_spellcheck/spellcheck/platform/linux/spellcheck_linux.cpp
-+++ b/Telegram/lib_spellcheck/spellcheck/platform/linux/spellcheck_linux.cpp
-@@ -4,25 +4,35 @@
- // Author: Nicholas Guriev <guriev-ns@ya.ru>, public domain, 2019
- // License: CC0, https://creativecommons.org/publicdomain/zero/1.0/legalcode
-
--#include <set>
- #include <QLocale>
-
-+#ifdef DESKTOP_APP_USE_PACKAGED
-+#include <Sonnet/GuessLanguage>
-+#else
-+#include "guesslanguage.h"
-+#endif
-+
- #include "spellcheck/spellcheck_utils.h"
- #include "spellcheck/platform/linux/linux_enchant.h"
-
- #include "spellcheck/platform/linux/spellcheck_linux.h"
- #include "base/integration.h"
-+#include "base/flat_map.h"
-
- namespace Platform::Spellchecker {
- namespace {
-
-+constexpr auto kMinReliability = 0.1;
-+constexpr auto kMaxItems = 5;
-+
-+using DictPtr = std::shared_ptr<enchant::Dict>;
-+
- class EnchantSpellChecker {
- public:
-- bool isAvailable();
-- auto knownLanguages();
-+ std::vector<QString> knownLanguages();
- bool checkSpelling(const QString &word);
-- auto findSuggestions(const QString &word);
-- void addWord(const QString &wordToAdd);
-+ std::vector<QString> findSuggestions(const QString &word);
-+ void addWord(const QString &word);
- void ignoreWord(const QString &word);
- void removeWord(const QString &word);
- bool isWordInDictionary(const QString &word);
-@@ -31,41 +41,21 @@ public:
- private:
- EnchantSpellChecker();
- EnchantSpellChecker(const EnchantSpellChecker&) = delete;
-- EnchantSpellChecker& operator =(const EnchantSpellChecker&) = delete;
-+ EnchantSpellChecker &operator=(const EnchantSpellChecker&) = delete;
-
-- std::unique_ptr<enchant::Broker> _brokerHandle;
-- std::vector<std::unique_ptr<enchant::Dict>> _validators;
-+ DictPtr getValidatorByWord(const QString &word);
-+
-+ Sonnet::GuessLanguage _guessLanguage;
-+ enchant::Broker _brokerHandle;
-+ base::flat_map<QString, DictPtr> _validatorCache;
-+
-+ QString _prevLang;
-+ QString _locale;
- };
-
- EnchantSpellChecker::EnchantSpellChecker() {
-- if (!enchant::loader::do_explicit_linking()) return;
--
-- std::set<std::string> langs;
-- _brokerHandle = std::make_unique<enchant::Broker>();
-- _brokerHandle->list_dicts([](
-- const char *language,
-- const char *provider,
-- const char *description,
-- const char *filename,
-- void *our_payload) {
-- static_cast<decltype(langs)*>(our_payload)->insert(language);
-- }, &langs);
-- using DictPtr = std::unique_ptr<enchant::Dict>;
-- _validators.reserve(langs.size());
-- try {
-- std::string langTag = QLocale::system().name().toStdString();
-- _validators.push_back(DictPtr(_brokerHandle->request_dict(langTag)));
-- langs.erase(langTag);
-- } catch (const enchant::Exception &e) {
-- // no first dictionary found
-- }
-- for (const std::string &language : langs) {
-- try {
-- _validators.push_back(DictPtr(_brokerHandle->request_dict(language)));
-- } catch (const enchant::Exception &e) {
-- base::Integration::Instance().logMessage(QString("Catch after request_dict: ") + e.what());
-- }
-- }
-+ _prevLang = _locale = QLocale::system().name();
-+ _guessLanguage.setLimits(kMaxItems, kMinReliability);
- }
-
- EnchantSpellChecker *EnchantSpellChecker::instance() {
-@@ -73,71 +63,101 @@ EnchantSpellChecker *EnchantSpellChecker::instance() {
- return &capsule;
- }
-
--bool EnchantSpellChecker::isAvailable() {
-- return !_validators.empty();
--}
-+DictPtr EnchantSpellChecker::getValidatorByWord(const QString &word) {
-+ // If GuessLanguage can't guess the language, it fallback to the first available dictionary in this list
-+ // Note: when Sonnet is built statically, it can use only Hunspell
-+ const auto guessLangs = QStringList() << _prevLang << _locale;
-
--auto EnchantSpellChecker::knownLanguages() {
-- return _validators | ranges::views::transform([](const auto &validator) {
-- return QString(validator->get_lang().c_str());
-- }) | ranges::to_vector;
--}
-+ const auto lang = _guessLanguage.identify(word, guessLangs);
-+ _prevLang = lang;
-
--bool EnchantSpellChecker::checkSpelling(const QString &word) {
-- auto w = word.toStdString();
-- return ranges::any_of(_validators, [&](const auto &validator) {
-+ auto &validator = _validatorCache[lang];
-+
-+ if (!validator) {
- try {
-- return validator->check(w);
-+ validator.reset(_brokerHandle.request_dict(lang.toStdString()));
- } catch (const enchant::Exception &e) {
-- base::Integration::Instance().logMessage(QString("Catch after check '") + word + "': " + e.what());
-- return true;
-+ base::Integration::Instance().logMessage(
-+ QStringLiteral("Catch after request_dict: %1").arg(e.what()));
- }
-- }) || _validators.empty();
-+ }
-+
-+ return validator;
-+}
-+
-+std::vector<QString> EnchantSpellChecker::knownLanguages() {
-+ std::vector<QString> langs;
-+ _brokerHandle.list_dicts([](
-+ const char *language,
-+ const char *provider,
-+ const char *description,
-+ const char *filename,
-+ void *our_payload) {
-+ static_cast<decltype(langs)*>(our_payload)
-+ ->push_back(QString::fromLatin1(language));
-+ }, &langs);
-+ return langs;
- }
-
--auto EnchantSpellChecker::findSuggestions(const QString &word) {
-- auto w = word.toStdString();
-+bool EnchantSpellChecker::checkSpelling(const QString &word) {
-+ auto validator = getValidatorByWord(word);
-+ if (!validator) return true;
-+
-+ try {
-+ return validator->check(word.toStdString());
-+ } catch (const enchant::Exception &e) {
-+ base::Integration::Instance().logMessage(
-+ QStringLiteral("Catch after check %1: %2")
-+ .arg(word).arg(e.what()));
-+ return true;
-+ }
-+}
-+
-+std::vector<QString> EnchantSpellChecker::findSuggestions(
-+ const QString &word) {
-+ auto validator = getValidatorByWord(word);
- std::vector<QString> result;
-- for (const auto &validator : _validators) {
-- for (const auto &replacement : validator->suggest(w)) {
-- if (!replacement.empty()) {
-- result.push_back(replacement.c_str());
-- }
-- if (result.size() >= Platform::Spellchecker::kMaxSuggestions) {
-- break;
-- }
-+ if (!validator) return result;
-+
-+ for (const auto &replacement : validator->suggest(word.toStdString())) {
-+ if (!replacement.empty()) {
-+ result.push_back(replacement.c_str());
- }
-- if (!result.empty()) {
-+ if (result.size() >= Platform::Spellchecker::kMaxSuggestions) {
- break;
- }
- }
- return result;
- }
-
--void EnchantSpellChecker::addWord(const QString &wordToAdd) {
-- auto word = wordToAdd.toStdString();
-- auto &&first = _validators.at(0);
-- first->add(word);
-- first->add_to_session(word);
-+void EnchantSpellChecker::addWord(const QString &word) {
-+ auto validator = getValidatorByWord(word);
-+ if (!validator) return;
-+
-+ validator->add(word.toStdString());
- }
-
- void EnchantSpellChecker::ignoreWord(const QString &word) {
-- _validators.at(0)->add_to_session(word.toStdString());
-+ auto validator = getValidatorByWord(word);
-+ if (!validator) return;
-+
-+ validator->add_to_session(word.toStdString());
- }
-
- void EnchantSpellChecker::removeWord(const QString &word) {
-- auto w = word.toStdString();
-- for (const auto &validator : _validators) {
-- validator->remove_from_session(w);
-- validator->remove(w);
-- }
-+ auto validator = getValidatorByWord(word);
-+ if (!validator) return;
-+
-+ const auto w = word.toStdString();
-+ validator->remove_from_session(w);
-+ validator->remove(w);
- }
-
- bool EnchantSpellChecker::isWordInDictionary(const QString &word) {
-- auto w = word.toStdString();
-- return ranges::any_of(_validators, [&w](const auto &validator) {
-- return validator->is_added(w);
-- });
-+ auto validator = getValidatorByWord(word);
-+ if (!validator) return false;
-+
-+ return validator->is_added(word.toStdString());
- }
-
- } // namespace
-@@ -146,7 +166,8 @@ void Init() {
- }
-
- bool IsAvailable() {
-- return EnchantSpellChecker::instance()->isAvailable();
-+ static auto Available = enchant::loader::do_explicit_linking();
-+ return Available;
- }
-
- void KnownLanguages(std::vector<QString> *langCodes) {
-Submodule cmake contains modified content
-diff --git a/cmake/external/CMakeLists.txt b/cmake/external/CMakeLists.txt
-index 4187ad3..de044e1 100644
---- a/cmake/external/CMakeLists.txt
-+++ b/cmake/external/CMakeLists.txt
-@@ -9,6 +9,9 @@ add_subdirectory(crash_reports)
- add_subdirectory(expected)
- add_subdirectory(ffmpeg)
- add_subdirectory(gsl)
-+if (LINUX)
-+ add_subdirectory(hunspell)
-+endif()
- add_subdirectory(iconv)
- add_subdirectory(lz4)
- add_subdirectory(openal)
-@@ -18,6 +21,9 @@ add_subdirectory(qt)
- add_subdirectory(qr_code_generator)
- add_subdirectory(ranges)
- add_subdirectory(rlottie)
-+if (LINUX)
-+ add_subdirectory(sonnet)
-+endif()
- if (APPLE)
- add_subdirectory(sp_media_key_tap)
- endif()
-diff --git a/cmake/external/hunspell/CMakeLists.txt b/cmake/external/hunspell/CMakeLists.txt
-new file mode 100644
-index 0000000..88fd143
---- /dev/null
-+++ b/cmake/external/hunspell/CMakeLists.txt
-@@ -0,0 +1,25 @@
-+# This file is part of Desktop App Toolkit,
-+# a set of libraries for developing nice desktop applications.
-+#
-+# For license and copyright information please follow this link:
-+# https://github.com/desktop-app/legal/blob/master/LEGAL
-+
-+add_library(external_hunspell INTERFACE IMPORTED GLOBAL)
-+add_library(desktop-app::external_hunspell ALIAS external_hunspell)
-+
-+if (DESKTOP_APP_USE_PACKAGED)
-+ find_package(PkgConfig REQUIRED)
-+ pkg_check_modules(HUNSPELL hunspell)
-+ target_include_directories(external_hunspell INTERFACE ${HUNSPELL_INCLUDE_DIRS})
-+else()
-+ target_include_directories(external_hunspell SYSTEM
-+ INTERFACE
-+ ${libs_loc}/hunspell/src/hunspell
-+ )
-+endif()
-+
-+if (DESKTOP_APP_USE_PACKAGED)
-+ target_link_libraries(external_hunspell INTERFACE ${HUNSPELL_LIBRARIES})
-+else()
-+ target_link_static_libraries(external_sonnet INTERFACE hunspell)
-+endif()
-diff --git a/cmake/external/sonnet/CMakeLists.txt b/cmake/external/sonnet/CMakeLists.txt
-new file mode 100644
-index 0000000..96ef3d1
---- /dev/null
-+++ b/cmake/external/sonnet/CMakeLists.txt
-@@ -0,0 +1,84 @@
-+# This file is part of Desktop App Toolkit,
-+# a set of libraries for developing nice desktop applications.
-+#
-+# For license and copyright information please follow this link:
-+# https://github.com/desktop-app/legal/blob/master/LEGAL
-+
-+if (DESKTOP_APP_USE_PACKAGED)
-+ add_library(external_sonnet INTERFACE IMPORTED GLOBAL)
-+ add_library(desktop-app::external_sonnet ALIAS external_sonnet)
-+
-+ find_package(KF5Sonnet)
-+
-+ if (KF5Sonnet_FOUND)
-+ target_link_libraries(external_sonnet INTERFACE KF5::SonnetCore)
-+ endif()
-+else()
-+ add_subdirectory(parsetrigrams)
-+
-+ add_library(external_sonnet OBJECT)
-+ add_library(desktop-app::external_sonnet ALIAS external_sonnet)
-+ init_target(external_sonnet "(external)")
-+
-+ get_filename_component(src_loc . REALPATH)
-+ set(sonnet_loc ${third_party_loc}/sonnet)
-+
-+ set_target_properties(external_sonnet PROPERTIES AUTOMOC ON AUTORCC ON)
-+
-+ add_custom_command(OUTPUT "${CMAKE_BINARY_DIR}/data/trigrams.map"
-+ COMMAND external_parsetrigrams "${sonnet_loc}/data/trigrams" > "${CMAKE_BINARY_DIR}/data/trigrams.map")
-+ configure_file(${sonnet_loc}/data/trigrams.qrc.in ${CMAKE_BINARY_DIR}/data/trigrams.qrc @ONLY)
-+
-+ target_sources(external_sonnet
-+ PRIVATE
-+ ${CMAKE_BINARY_DIR}/data/trigrams.qrc
-+ ${sonnet_loc}/src/core/backgroundchecker.cpp
-+ ${sonnet_loc}/src/core/backgroundchecker.h
-+ ${sonnet_loc}/src/core/backgroundchecker_p.h
-+ ${sonnet_loc}/src/core/client.cpp
-+ ${sonnet_loc}/src/core/client_p.h
-+ ${sonnet_loc}/src/core/guesslanguage.cpp
-+ ${sonnet_loc}/src/core/guesslanguage.h
-+ ${sonnet_loc}/src/core/languagefilter.cpp
-+ ${sonnet_loc}/src/core/languagefilter_p.h
-+ ${sonnet_loc}/src/core/loader.cpp
-+ ${sonnet_loc}/src/core/loader_p.h
-+ ${sonnet_loc}/src/core/settings.cpp
-+ ${sonnet_loc}/src/core/settings_p.h
-+ ${sonnet_loc}/src/core/speller.cpp
-+ ${sonnet_loc}/src/core/speller.h
-+ ${sonnet_loc}/src/core/spellerplugin.cpp
-+ ${sonnet_loc}/src/core/spellerplugin_p.h
-+ ${sonnet_loc}/src/core/textbreaks.cpp
-+ ${sonnet_loc}/src/core/textbreaks_p.h
-+ ${sonnet_loc}/src/core/tokenizer.cpp
-+ ${sonnet_loc}/src/core/tokenizer_p.h
-+ ${sonnet_loc}/src/plugins/hunspell/hunspellclient.cpp
-+ ${sonnet_loc}/src/plugins/hunspell/hunspellclient.h
-+ ${sonnet_loc}/src/plugins/hunspell/hunspelldict.cpp
-+ ${sonnet_loc}/src/plugins/hunspell/hunspelldict.h
-+ ${src_loc}/config/core_debug.cpp
-+ ${src_loc}/config/core_debug.h
-+ ${src_loc}/config/hunspelldebug.cpp
-+ ${src_loc}/config/hunspelldebug.h
-+ )
-+
-+ target_compile_definitions(external_sonnet
-+ PRIVATE
-+ QT_USE_QSTRINGBUILDER
-+ SONNET_STATIC
-+ )
-+
-+ target_include_directories(external_sonnet
-+ PUBLIC
-+ ${sonnet_loc}/src/core
-+ ${sonnet_loc}/src/plugins/hunspell
-+ ${src_loc}/config
-+ )
-+
-+ target_link_libraries(external_sonnet
-+ PUBLIC
-+ desktop-app::external_qt
-+ desktop-app::external_hunspell
-+ )
-+endif()
-diff --git a/cmake/external/sonnet/config/config-hunspell.h b/cmake/external/sonnet/config/config-hunspell.h
-new file mode 100644
-index 0000000..80eddda
---- /dev/null
-+++ b/cmake/external/sonnet/config/config-hunspell.h
-@@ -0,0 +1 @@
-+#define USE_OLD_HUNSPELL_API 0
-diff --git a/cmake/external/sonnet/config/core_debug.cpp b/cmake/external/sonnet/config/core_debug.cpp
-new file mode 100644
-index 0000000..c3aa700
---- /dev/null
-+++ b/cmake/external/sonnet/config/core_debug.cpp
-@@ -0,0 +1,2 @@
-+#include "core_debug.h"
-+Q_LOGGING_CATEGORY(SONNET_LOG_CORE, "sonnet.core", QtInfoMsg)
-diff --git a/cmake/external/sonnet/config/core_debug.h b/cmake/external/sonnet/config/core_debug.h
-new file mode 100644
-index 0000000..ba71c23
---- /dev/null
-+++ b/cmake/external/sonnet/config/core_debug.h
-@@ -0,0 +1,4 @@
-+#pragma once
-+
-+#include <QLoggingCategory>
-+Q_DECLARE_LOGGING_CATEGORY(SONNET_LOG_CORE)
-diff --git a/cmake/external/sonnet/config/hunspelldebug.cpp b/cmake/external/sonnet/config/hunspelldebug.cpp
-new file mode 100644
-index 0000000..527f60d
---- /dev/null
-+++ b/cmake/external/sonnet/config/hunspelldebug.cpp
-@@ -0,0 +1,2 @@
-+#include "hunspelldebug.h"
-+Q_LOGGING_CATEGORY(SONNET_HUNSPELL, "sonnet.plugins.hunspell", QtInfoMsg)
-diff --git a/cmake/external/sonnet/config/hunspelldebug.h b/cmake/external/sonnet/config/hunspelldebug.h
-new file mode 100644
-index 0000000..26b2455
---- /dev/null
-+++ b/cmake/external/sonnet/config/hunspelldebug.h
-@@ -0,0 +1,4 @@
-+#pragma once
-+
-+#include <QLoggingCategory>
-+Q_DECLARE_LOGGING_CATEGORY(SONNET_HUNSPELL)
-diff --git a/cmake/external/sonnet/config/sonnetcore_export.h b/cmake/external/sonnet/config/sonnetcore_export.h
-new file mode 100644
-index 0000000..db467d8
---- /dev/null
-+++ b/cmake/external/sonnet/config/sonnetcore_export.h
-@@ -0,0 +1 @@
-+#define SONNETCORE_EXPORT
-diff --git a/cmake/external/sonnet/parsetrigrams/CMakeLists.txt b/cmake/external/sonnet/parsetrigrams/CMakeLists.txt
-new file mode 100644
-index 0000000..bf61d46
---- /dev/null
-+++ b/cmake/external/sonnet/parsetrigrams/CMakeLists.txt
-@@ -0,0 +1,14 @@
-+add_executable(external_parsetrigrams)
-+init_target(external_parsetrigrams "(external)")
-+
-+set(sonnet_loc ${third_party_loc}/sonnet)
-+
-+target_sources(external_parsetrigrams
-+PRIVATE
-+ ${sonnet_loc}/data/parsetrigrams.cpp
-+)
-+
-+target_link_libraries(external_parsetrigrams
-+PUBLIC
-+ desktop-app::external_qt
-+)
-diff --git a/cmake/options.cmake b/cmake/options.cmake
-index 56dbe48..a207f28 100644
---- a/cmake/options.cmake
-+++ b/cmake/options.cmake
-@@ -19,6 +19,13 @@ if (DESKTOP_APP_DISABLE_CRASH_REPORTS)
- )
- endif()
-
-+if (DESKTOP_APP_USE_PACKAGED)
-+ target_compile_definitions(common_options
-+ INTERFACE
-+ DESKTOP_APP_USE_PACKAGED
-+ )
-+endif()
-+
- if (WIN32)
- include(cmake/options_win.cmake)
- elseif (APPLE)
diff --git a/remove-qt-config.patch b/remove-qt-config.patch
deleted file mode 100644
index 84c4b156121d..000000000000
--- a/remove-qt-config.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Submodule Telegram/lib_ui contains modified content
-diff --git a/Telegram/lib_ui/qt_conf/linux.qrc b/Telegram/lib_ui/qt_conf/linux.qrc
-index b9f5692..8a9bbb3 100644
---- a/Telegram/lib_ui/qt_conf/linux.qrc
-+++ b/Telegram/lib_ui/qt_conf/linux.qrc
-@@ -1,7 +1,4 @@
- <RCC>
-- <qresource prefix="/qt/etc">
-- <file alias="qt.conf">qt_linux.conf</file>
-- </qresource>
- <qresource prefix="/fc">
- <file>fc-custom.conf</file>
- </qresource>