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;