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;