/ src / modules / alwaysontop / AlwaysOnTop / trace.cpp
trace.cpp
 1  #include "pch.h"
 2  #include "trace.h"
 3  
 4  #include <common/Telemetry/TraceBase.h>
 5  
 6  // Telemetry strings should not be localized.
 7  #define LoggingProviderKey "Microsoft.PowerToys"
 8  
 9  #define EventEnableAlwaysOnTopKey "AlwaysOnTop_EnableAlwaysOnTop"
10  #define EventPinWindowKey "AlwaysOnTop_PinWindow"
11  #define EventUnpinWindowKey "AlwaysOnTop_UnpinWindow"
12  #define EventEnabledKey "Enabled"
13  
14  TRACELOGGING_DEFINE_PROVIDER(
15      g_hProvider,
16      LoggingProviderKey,
17      // {38e8889b-9731-53f5-e901-e8a7c1753074}
18      (0x38e8889b, 0x9731, 0x53f5, 0xe9, 0x01, 0xe8, 0xa7, 0xc1, 0x75, 0x30, 0x74),
19      TraceLoggingOptionProjectTelemetry());
20  
21  void Trace::AlwaysOnTop::Enable(bool enabled) noexcept
22  {
23      TraceLoggingWriteWrapper(
24          g_hProvider,
25          EventEnableAlwaysOnTopKey,
26          ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance),
27          TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE),
28          TraceLoggingBoolean(enabled, EventEnabledKey));
29  }
30  
31  void Trace::AlwaysOnTop::PinWindow() noexcept
32  {
33      TraceLoggingWriteWrapper(
34          g_hProvider,
35          EventPinWindowKey,
36          ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance),
37          TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE));
38  }
39  
40  void Trace::AlwaysOnTop::UnpinWindow() noexcept
41  {
42      TraceLoggingWriteWrapper(
43          g_hProvider,
44          EventUnpinWindowKey,
45          ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance),
46          TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE));
47  }