diff --git a/src/modules/videoconference/VideoConferenceModule/VideoConferenceModule.cpp b/src/modules/videoconference/VideoConferenceModule/VideoConferenceModule.cpp index 2e2eba742b..01cd32f348 100644 --- a/src/modules/videoconference/VideoConferenceModule/VideoConferenceModule.cpp +++ b/src/modules/videoconference/VideoConferenceModule/VideoConferenceModule.cpp @@ -18,7 +18,7 @@ extern "C" IMAGE_DOS_HEADER __ImageBase; VideoConferenceModule* instance = nullptr; -VideoConferenceModule::Settings VideoConferenceModule::settings; +VideoConferenceSettings VideoConferenceModule::settings; HHOOK VideoConferenceModule::hook_handle; diff --git a/src/modules/videoconference/VideoConferenceModule/VideoConferenceModule.h b/src/modules/videoconference/VideoConferenceModule/VideoConferenceModule.h index 021cf93cff..c3f75c65b0 100644 --- a/src/modules/videoconference/VideoConferenceModule/VideoConferenceModule.h +++ b/src/modules/videoconference/VideoConferenceModule/VideoConferenceModule.h @@ -14,6 +14,23 @@ extern class VideoConferenceModule* instance; +struct VideoConferenceSettings +{ + Toolbar toolbar; + + CVolumeNotification* volumeNotification = nullptr; + + PowerToysSettings::HotkeyObject cameraAndMicrophoneMuteHotkey = PowerToysSettings::HotkeyObject::from_settings(true, false, false, false, 78); + PowerToysSettings::HotkeyObject microphoneMuteHotkey = PowerToysSettings::HotkeyObject::from_settings(true, false, false, true, 65); + PowerToysSettings::HotkeyObject cameraMuteHotkey = PowerToysSettings::HotkeyObject::from_settings(true, false, false, true, 79); + + std::wstring toolbarPositionString; + std::wstring toolbarMonitorString; + + std::wstring selectedCamera; + std::wstring imageOverlayPath; +}; + class VideoConferenceModule : public PowertoyModuleIface { public: @@ -53,21 +70,5 @@ private: std::optional _imageOverlayChannel; std::optional _settingsUpdateChannel; - struct Settings - { - Toolbar toolbar; - - CVolumeNotification* volumeNotification = nullptr; - - PowerToysSettings::HotkeyObject cameraAndMicrophoneMuteHotkey = PowerToysSettings::HotkeyObject::from_settings(true, false, false, false, 78); - PowerToysSettings::HotkeyObject microphoneMuteHotkey = PowerToysSettings::HotkeyObject::from_settings(true, false, false, true, 65); - PowerToysSettings::HotkeyObject cameraMuteHotkey = PowerToysSettings::HotkeyObject::from_settings(true, false, false, true, 79); - - std::wstring toolbarPositionString; - std::wstring toolbarMonitorString; - - std::wstring selectedCamera; - std::wstring imageOverlayPath; - }; - static Settings settings; + static VideoConferenceSettings settings; }; diff --git a/src/modules/videoconference/VideoConferenceModule/trace.cpp b/src/modules/videoconference/VideoConferenceModule/trace.cpp index 84a51decb9..395398a04e 100644 --- a/src/modules/videoconference/VideoConferenceModule/trace.cpp +++ b/src/modules/videoconference/VideoConferenceModule/trace.cpp @@ -18,11 +18,16 @@ void Trace::UnregisterProvider() noexcept TraceLoggingUnregister(g_hProvider); } -void Trace::SettingsChanged() noexcept +void Trace::SettingsChanged(const struct VideoConferenceSettings& settings) noexcept { + bool CustomOverlayImage = (settings.imageOverlayPath.length() > 0); + TraceLoggingWrite( g_hProvider, "VideoConference_SettingsChanged", + TraceLoggingWideString(settings.toolbarPositionString.c_str(), "ToolbarPosition"), + TraceLoggingWideString(settings.toolbarMonitorString.c_str(), "ToolbarMonitorSelection"), + TraceLoggingBool(CustomOverlayImage, "CustomImageOverlayUsed"), ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance), TraceLoggingBoolean(TRUE, "UTCReplace_AppSessionGuid"), TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE)); diff --git a/src/modules/videoconference/VideoConferenceModule/trace.h b/src/modules/videoconference/VideoConferenceModule/trace.h index 06b3892ec5..c9283256df 100644 --- a/src/modules/videoconference/VideoConferenceModule/trace.h +++ b/src/modules/videoconference/VideoConferenceModule/trace.h @@ -1,11 +1,12 @@ #pragma once +#include "VideoConferenceModule.h" class Trace { public: static void RegisterProvider() noexcept; static void UnregisterProvider() noexcept; - static void SettingsChanged() noexcept; + static void SettingsChanged(const struct VideoConferenceSettings &settings) noexcept; static void MicrophoneMuted() noexcept; static void CameraMuted() noexcept; };