From 65d562ee74341605b2007fa38976d23c01ad721e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerard=20Gasc=C3=B3n?= <52170489+GerardGascon@users.noreply.github.com> Date: Fri, 28 Jun 2024 14:39:52 +0200 Subject: [PATCH] feat: added preprocessor directive for platform dependant compilation --- SlidePresenter/ControllerSlidePresenter.csproj | 12 +++++++++++- SlidePresenter/InputSender/LinuxInputSender.cs | 13 +++++++++++++ SlidePresenter/InputSender/MacInputSender.cs | 13 +++++++++++++ SlidePresenter/InputSender/WindowsInputSender.cs | 6 ++++-- SlidePresenter/SlideSwitcher.cs | 7 +++++++ 5 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 SlidePresenter/InputSender/LinuxInputSender.cs create mode 100644 SlidePresenter/InputSender/MacInputSender.cs diff --git a/SlidePresenter/ControllerSlidePresenter.csproj b/SlidePresenter/ControllerSlidePresenter.csproj index 66a3144..d6e90c1 100644 --- a/SlidePresenter/ControllerSlidePresenter.csproj +++ b/SlidePresenter/ControllerSlidePresenter.csproj @@ -8,13 +8,23 @@ SwitchSlidePresenter + + OS_WINDOWS + + + OS_LINUX + + + OS_MAC + + - + diff --git a/SlidePresenter/InputSender/LinuxInputSender.cs b/SlidePresenter/InputSender/LinuxInputSender.cs new file mode 100644 index 0000000..5f084eb --- /dev/null +++ b/SlidePresenter/InputSender/LinuxInputSender.cs @@ -0,0 +1,13 @@ +#if OS_LINUX +namespace SwitchSlidePresenter.InputSender; + +public class LinuxInputSender : IInputSender { + public void NextSlide() { + + } + + public void PreviousSlide() { + + } +} +#endif \ No newline at end of file diff --git a/SlidePresenter/InputSender/MacInputSender.cs b/SlidePresenter/InputSender/MacInputSender.cs new file mode 100644 index 0000000..32f8fb3 --- /dev/null +++ b/SlidePresenter/InputSender/MacInputSender.cs @@ -0,0 +1,13 @@ +#if OS_MAC +namespace SwitchSlidePresenter.InputSender; + +public class MacInputSender : IInputSender { + public void NextSlide() { + + } + + public void PreviousSlide() { + + } +} +#endif \ No newline at end of file diff --git a/SlidePresenter/InputSender/WindowsInputSender.cs b/SlidePresenter/InputSender/WindowsInputSender.cs index bcde5ed..233bd3c 100644 --- a/SlidePresenter/InputSender/WindowsInputSender.cs +++ b/SlidePresenter/InputSender/WindowsInputSender.cs @@ -1,4 +1,5 @@ -using System.Runtime.InteropServices; +#if OS_WINDOWS +using System.Runtime.InteropServices; using Win32Api; namespace SwitchSlidePresenter.InputSender; @@ -44,4 +45,5 @@ public class WindowsInputSender : IInputSender { Win32Api.Win32Api.SendInput((uint)inputs.Length, inputs, Marshal.SizeOf(typeof(Input))); } -} \ No newline at end of file +} +#endif \ No newline at end of file diff --git a/SlidePresenter/SlideSwitcher.cs b/SlidePresenter/SlideSwitcher.cs index 004c51a..7c02e10 100644 --- a/SlidePresenter/SlideSwitcher.cs +++ b/SlidePresenter/SlideSwitcher.cs @@ -4,7 +4,14 @@ namespace SwitchSlidePresenter; public class SlideSwitcher : IDisposable { private readonly IGamepadReader? _reader; + +#if OS_WINDOWS private readonly IInputSender _inputSender = new WindowsInputSender(); +#elif OS_MAC + private readonly IInputSender _inputSender = new MacInputSender(); +#elif OS_LINUX + private readonly IInputSender _inputSender = new LinuxInputSender(); +#endif public SlideSwitcher(IGamepadReader? reader) { _reader = reader;