| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- using Ryujinx.HLE;
- using Ryujinx.HLE.HOS.Services.Hid;
- using System;
- namespace Ryujinx.Input.HLE
- {
- public class TouchScreenManager : IDisposable
- {
- private readonly IMouse _mouse;
- private Switch _device;
- public TouchScreenManager(IMouse mouse)
- {
- _mouse = mouse;
- }
- public void Initialize(Switch device)
- {
- _device = device;
- }
- public bool Update(bool isFocused, float aspectRatio = 0)
- {
- if (!isFocused)
- {
- _device.Hid.Touchscreen.Update();
- return false;
- }
- if (aspectRatio > 0)
- {
- var snapshot = IMouse.GetMouseStateSnapshot(_mouse);
- var touchPosition = IMouse.GetTouchPosition(snapshot.Position, _mouse.ClientSize, aspectRatio);
- TouchPoint currentPoint = new TouchPoint
- {
- X = (uint)touchPosition.X,
- Y = (uint)touchPosition.Y,
- // Placeholder values till more data is acquired
- DiameterX = 10,
- DiameterY = 10,
- Angle = 90
- };
- _device.Hid.Touchscreen.Update(currentPoint);
- return true;
- }
- return false;
- }
- public void Dispose() { }
- }
- }
|