diff --git a/Telegram/CMakeLists.txt b/Telegram/CMakeLists.txt index 6f9faf41a..d67d7cc7a 100644 --- a/Telegram/CMakeLists.txt +++ b/Telegram/CMakeLists.txt @@ -796,7 +796,6 @@ PRIVATE platform/mac/file_utilities_mac.h platform/mac/launcher_mac.mm platform/mac/launcher_mac.h - platform/mac/mac_iconv_helper.c platform/mac/main_window_mac.mm platform/mac/main_window_mac.h platform/mac/notifications_manager_mac.mm @@ -1034,6 +1033,8 @@ PRIVATE if (DESKTOP_APP_USE_PACKAGED) nice_target_sources(Telegram ${src_loc} PRIVATE qt_functions.cpp) +else() + nice_target_sources(Telegram ${src_loc} PRIVATE platform/mac/mac_iconv_helper.c) endif() nice_target_sources(Telegram ${res_loc} @@ -1069,11 +1070,11 @@ if (WIN32) # $ # ) elseif (APPLE) - target_link_libraries(Telegram - PRIVATE - desktop-app::external_sp_media_key_tap - desktop-app::external_iconv - ) + target_link_libraries(Telegram PRIVATE desktop-app::external_sp_media_key_tap) + + if (NOT DESKTOP_APP_USE_PACKAGED) + target_link_libraries(Telegram PRIVATE desktop-app::external_iconv) + endif() set(icons_path ${CMAKE_CURRENT_SOURCE_DIR}/Telegram/Images.xcassets) set_target_properties(Telegram PROPERTIES RESOURCE ${icons_path}) diff --git a/Telegram/SourceFiles/media/audio/media_audio.cpp b/Telegram/SourceFiles/media/audio/media_audio.cpp index 74564a27b..9c405c00c 100644 --- a/Telegram/SourceFiles/media/audio/media_audio.cpp +++ b/Telegram/SourceFiles/media/audio/media_audio.cpp @@ -21,9 +21,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "facades.h" #include "app.h" -#include -#include -#include +#include +#include +#ifndef TDESKTOP_DISABLE_OPENAL_EFFECTS +#include +#endif // !TDESKTOP_DISABLE_OPENAL_EFFECTS #include @@ -82,7 +84,13 @@ bool PlaybackErrorHappened() { void EnumeratePlaybackDevices() { auto deviceNames = QStringList(); - auto devices = alcGetString(nullptr, ALC_ALL_DEVICES_SPECIFIER); + auto devices = [&] { + if (alcIsExtensionPresent(nullptr, "ALC_ENUMERATE_ALL_EXT")) { + return alcGetString(nullptr, alcGetEnumValue(nullptr, "ALC_ALL_DEVICES_SPECIFIER")); + } else { + return alcGetString(nullptr, ALC_DEVICE_SPECIFIER); + } + }(); Assert(devices != nullptr); while (*devices != 0) { auto deviceName8Bit = QByteArray(devices); @@ -92,7 +100,14 @@ void EnumeratePlaybackDevices() { } LOG(("Audio Playback Devices: %1").arg(deviceNames.join(';'))); - if (auto device = alcGetString(nullptr, ALC_DEFAULT_ALL_DEVICES_SPECIFIER)) { + auto device = [&] { + if (alcIsExtensionPresent(nullptr, "ALC_ENUMERATE_ALL_EXT")) { + return alcGetString(nullptr, alcGetEnumValue(nullptr, "ALC_DEFAULT_ALL_DEVICES_SPECIFIER")); + } else { + return alcGetString(nullptr, ALC_DEFAULT_DEVICE_SPECIFIER); + } + }(); + if (device) { LOG(("Audio Playback Default Device: %1").arg(QString::fromUtf8(device))); } else { LOG(("Audio Playback Default Device: (null)")); @@ -1498,8 +1513,11 @@ bool audioDeviceIsConnected() { if (!AudioDevice) { return false; } - auto isConnected = ALint(0); - alcGetIntegerv(AudioDevice, ALC_CONNECTED, 1, &isConnected); + // always connected in the basic OpenAL, disconnect status is an extension + auto isConnected = ALint(1); + if (alcIsExtensionPresent(nullptr, "ALC_EXT_disconnect")) { + alcGetIntegerv(AudioDevice, alcGetEnumValue(nullptr, "ALC_CONNECTED"), 1, &isConnected); + } if (Audio::ContextErrorHappened()) { return false; } diff --git a/Telegram/SourceFiles/media/audio/media_audio_capture.cpp b/Telegram/SourceFiles/media/audio/media_audio_capture.cpp index 53ded4255..d2ce3a392 100644 --- a/Telegram/SourceFiles/media/audio/media_audio_capture.cpp +++ b/Telegram/SourceFiles/media/audio/media_audio_capture.cpp @@ -9,9 +9,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "media/audio/media_audio_ffmpeg_loader.h" -#include -#include -#include +#include +#include #include diff --git a/Telegram/SourceFiles/media/audio/media_audio_ffmpeg_loader.h b/Telegram/SourceFiles/media/audio/media_audio_ffmpeg_loader.h index 03581b626..c0c5f32ca 100644 --- a/Telegram/SourceFiles/media/audio/media_audio_ffmpeg_loader.h +++ b/Telegram/SourceFiles/media/audio/media_audio_ffmpeg_loader.h @@ -18,7 +18,7 @@ extern "C" { #include } // extern "C" -#include +#include namespace Media { diff --git a/Telegram/SourceFiles/media/audio/media_audio_track.cpp b/Telegram/SourceFiles/media/audio/media_audio_track.cpp index 3ce449af6..6e5e56c45 100644 --- a/Telegram/SourceFiles/media/audio/media_audio_track.cpp +++ b/Telegram/SourceFiles/media/audio/media_audio_track.cpp @@ -11,9 +11,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "media/audio/media_audio.h" #include "core/application.h" -#include -#include -#include +#include +#include namespace Media { namespace Audio {