33using System . Reactive . Linq ;
44using System . Reactive . Subjects ;
55using System . Threading ;
6- using Serilog ;
6+ using Microsoft . Extensions . Logging ;
77using SharpHook ;
88using SharpHook . Native ;
99using SharpHook . Reactive ;
1010using YMouseButtonControl . Core . Services . KeyboardAndMouse . Enums ;
1111using YMouseButtonControl . Core . Services . KeyboardAndMouse . EventArgs ;
1212using YMouseButtonControl . Core . Services . Processes ;
1313using YMouseButtonControl . Core . Services . Profiles ;
14+ using LogLevel = Microsoft . Extensions . Logging . LogLevel ;
1415
1516namespace YMouseButtonControl . Core . Services . KeyboardAndMouse . Implementations ;
1617
@@ -27,12 +28,12 @@ public interface IMouseListener : IDisposable
2728/// Wrapper around sharphook for listening to mouse events
2829/// Converts mouse events to NewMouseHookEventArgs
2930/// </summary>
30- public class MouseListener : IMouseListener
31+ public partial class MouseListener : IMouseListener
3132{
33+ private readonly ILogger < MouseListener > _logger ;
3234 private readonly IReactiveGlobalHook _hook ;
3335 private readonly IProfilesService _profilesService ;
3436 private readonly ICurrentWindowService _currentWindowService ;
35- private readonly ILogger _log = Log . Logger . ForContext < MouseListener > ( ) ;
3637 private Thread ? _thread ;
3738 private readonly IDisposable ? _mouseMovedDisposable ;
3839 private readonly IDisposable ? _mousePressedDisposable ;
@@ -44,11 +45,13 @@ public class MouseListener : IMouseListener
4445 private readonly Subject < NewMouseWheelEventArgs > _mouseWheelSubject ;
4546
4647 public MouseListener (
48+ ILogger < MouseListener > logger ,
4749 IReactiveGlobalHook hook ,
4850 IProfilesService profilesService ,
4951 ICurrentWindowService currentWindowService
5052 )
5153 {
54+ _logger = logger ;
5255 _hook = hook ;
5356 _profilesService = profilesService ;
5457 _currentWindowService = currentWindowService ;
@@ -78,7 +81,7 @@ public void Run()
7881 {
7982 _thread = new Thread ( ( ) =>
8083 {
81- _log . Information ( "Starting mouse listener" ) ;
84+ LogStartup ( _logger ) ;
8285 _hook . Run ( ) ;
8386 } ) ;
8487 _thread . Start ( ) ;
@@ -175,8 +178,9 @@ private void ConvertMouseReleasedEvent(MouseHookEventArgs e)
175178 {
176179 return ;
177180 }
178- _log . Information ( "Translate release {Button}" , e . Data . Button ) ;
179- _log . Information ( "ACTIVE WINDOW {Foreground}" , _currentWindowService . ForegroundWindow ) ;
181+
182+ LogTranslateRelease ( _logger , e . Data . Button ) ;
183+ LogActiveWindow ( _logger , _currentWindowService . ForegroundWindow ) ;
180184 var args = new NewMouseHookEventArgs (
181185 ( YMouseButton ) e . Data . Button ,
182186 e . Data . X ,
@@ -185,12 +189,12 @@ private void ConvertMouseReleasedEvent(MouseHookEventArgs e)
185189 ) ;
186190 if ( ShouldSuppressEvent ( args ) )
187191 {
188- _log . Information ( "Suppressing {Button}: Release" , e . Data . Button ) ;
192+ LogSuppressingButtonRelease ( _logger , e . Data . Button ) ;
189193 e . SuppressEvent = true ;
190194 }
191195 else
192196 {
193- _log . Information ( "Not suppressing {Button}: Release" , e . Data . Button ) ;
197+ LogNotSuppressingButtonRelease ( _logger , e . Data . Button ) ;
194198 }
195199 _mouseReleasedSubject . OnNext ( args ) ;
196200 }
@@ -201,8 +205,8 @@ private void ConvertMousePressedEvent(MouseHookEventArgs e)
201205 {
202206 return ;
203207 }
204- _log . Information ( "Translate press {Button}" , e . Data . Button ) ;
205- _log . Information ( "ACTIVE WINDOW {Foreground}" , _currentWindowService . ForegroundWindow ) ;
208+ LogTranslateButton ( _logger , e . Data . Button ) ;
209+ LogActiveWindow ( _logger , _currentWindowService . ForegroundWindow ) ;
206210
207211 var args = new NewMouseHookEventArgs (
208212 ( YMouseButton ) e . Data . Button ,
@@ -212,12 +216,12 @@ private void ConvertMousePressedEvent(MouseHookEventArgs e)
212216 ) ;
213217 if ( ShouldSuppressEvent ( args ) )
214218 {
215- _log . Information ( "Suppressing {Button}: Press" , e . Data . Button ) ;
219+ LogSuppressingButtonRelease ( _logger , e . Data . Button ) ;
216220 e . SuppressEvent = true ;
217221 }
218222 else
219223 {
220- _log . Information ( "Not suppressing {Button}: Press" , e . Data . Button ) ;
224+ LogNotSuppressingButtonRelease ( _logger , e . Data . Button ) ;
221225 }
222226 _mousePressedSubject . OnNext ( args ) ;
223227 }
@@ -242,4 +246,28 @@ public void Dispose()
242246
243247 _thread ? . Join ( ) ;
244248 }
249+
250+ [ LoggerMessage ( LogLevel . Information , "Translate press {Button}" ) ]
251+ private static partial void LogTranslateButton ( ILogger logger , MouseButton button ) ;
252+
253+ [ LoggerMessage ( LogLevel . Information , "Suppressing {Button}: Press" ) ]
254+ private static partial void LogSuppressingButtonPress ( ILogger logger , MouseButton button ) ;
255+
256+ [ LoggerMessage ( LogLevel . Information , "Not suppressing {Button}: Press" ) ]
257+ private static partial void LogNotSuppressingButtonPress ( ILogger logger , MouseButton button ) ;
258+
259+ [ LoggerMessage ( LogLevel . Information , "Not suppressing {Button}: Release" ) ]
260+ public static partial void LogNotSuppressingButtonRelease ( ILogger logger , MouseButton button ) ;
261+
262+ [ LoggerMessage ( LogLevel . Information , "Suppressing {Button}: Release" ) ]
263+ public static partial void LogSuppressingButtonRelease ( ILogger logger , MouseButton button ) ;
264+
265+ [ LoggerMessage ( LogLevel . Information , "ACTIVE WINDOW {Foreground}" ) ]
266+ private static partial void LogActiveWindow ( ILogger logger , string foreground ) ;
267+
268+ [ LoggerMessage ( LogLevel . Information , "Translate release {Button}" ) ]
269+ private static partial void LogTranslateRelease ( ILogger logger , MouseButton button ) ;
270+
271+ [ LoggerMessage ( LogLevel . Information , "Starting mouse listener" ) ]
272+ private static partial void LogStartup ( ILogger logger ) ;
245273}
0 commit comments