Commit 36574bdf authored by Gerard Gascón's avatar Gerard Gascón
Browse files

refactor: made GamepadReader an interface

parent 9e0abe97
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
namespace SwitchSlidePresenter;

public abstract class GamepadReader {
	public abstract event Action NextSlide;
	public abstract event Action PrevSlide;
public interface IGamepadReader {
	public event Action NextSlide;
	public event Action PrevSlide;

	public abstract Task Read();
	public Task Read();
}
 No newline at end of file
+4 −4
Original line number Diff line number Diff line
@@ -10,11 +10,11 @@ using wtf.cluster.JoyCon.Rumble;

namespace SwitchSlidePresenter;

public class JoyConRead : GamepadReader {
	public override event Action NextSlide;
	public override event Action PrevSlide;
public class JoyConRead : IGamepadReader {
	public event Action NextSlide;
	public event Action PrevSlide;

	public override async Task Read() {
	public async Task Read() {
		Console.OutputEncoding = Encoding.UTF8;

		HidDevice? device = GetHidDevice();
+1 −1
Original line number Diff line number Diff line
namespace SwitchSlidePresenter {
	class Program {
		private static async Task Main() {
			GamepadReader reader = new JoyConRead();
			IGamepadReader reader = new JoyConRead();
			SlideSwitcher switcher = new(reader);
			await reader.Read();
			switcher.Dispose();
+2 −2
Original line number Diff line number Diff line
namespace SwitchSlidePresenter;

public class SlideSwitcher : IDisposable {
	private readonly GamepadReader _reader;
	private readonly IGamepadReader _reader;

	public SlideSwitcher(GamepadReader reader) {
	public SlideSwitcher(IGamepadReader reader) {
		_reader = reader;
		_reader.NextSlide += NextSlide;
		_reader.PrevSlide += PreviousSlide;