mirror of https://git.suyu.dev/suyu/suyu
EmuWindow: Made pad/touch functions non-static.
This commit is contained in:
parent
a1a1a5c6c5
commit
953e09ddb5
|
@ -16,35 +16,36 @@ EmuWindow_GLFW* EmuWindow_GLFW::GetEmuWindow(GLFWwindow* win) {
|
||||||
return static_cast<EmuWindow_GLFW*>(glfwGetWindowUserPointer(win));
|
return static_cast<EmuWindow_GLFW*>(glfwGetWindowUserPointer(win));
|
||||||
}
|
}
|
||||||
|
|
||||||
void EmuWindow_GLFW::OnMouseButtonEvent(GLFWwindow* window, int button, int action, int mods) {
|
void EmuWindow_GLFW::OnMouseButtonEvent(GLFWwindow* win, int button, int action, int mods) {
|
||||||
if (button == GLFW_MOUSE_BUTTON_LEFT) {
|
if (button == GLFW_MOUSE_BUTTON_LEFT) {
|
||||||
auto layout = GetEmuWindow(window)->GetFramebufferLayout();
|
auto emu_window = GetEmuWindow(win);
|
||||||
|
auto layout = emu_window->GetFramebufferLayout();
|
||||||
double x, y;
|
double x, y;
|
||||||
glfwGetCursorPos(window, &x, &y);
|
glfwGetCursorPos(win, &x, &y);
|
||||||
|
|
||||||
if (action == GLFW_PRESS) {
|
if (action == GLFW_PRESS) {
|
||||||
EmuWindow::TouchPressed(layout, static_cast<u16>(x), static_cast<u16>(y));
|
emu_window->TouchPressed(layout, static_cast<u16>(x), static_cast<u16>(y));
|
||||||
} else if (action == GLFW_RELEASE) {
|
} else if (action == GLFW_RELEASE) {
|
||||||
EmuWindow::TouchReleased(layout, static_cast<u16>(x), static_cast<u16>(y));
|
emu_window->TouchReleased(layout, static_cast<u16>(x), static_cast<u16>(y));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void EmuWindow_GLFW::OnCursorPosEvent(GLFWwindow* window, double x, double y) {
|
void EmuWindow_GLFW::OnCursorPosEvent(GLFWwindow* win, double x, double y) {
|
||||||
|
auto emu_window = GetEmuWindow(win);
|
||||||
auto layout = GetEmuWindow(window)->GetFramebufferLayout();
|
auto layout = emu_window->GetFramebufferLayout();
|
||||||
EmuWindow::TouchMoved(layout, static_cast<u16>(x), static_cast<u16>(y));
|
emu_window->TouchMoved(layout, static_cast<u16>(x), static_cast<u16>(y));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Called by GLFW when a key event occurs
|
/// Called by GLFW when a key event occurs
|
||||||
void EmuWindow_GLFW::OnKeyEvent(GLFWwindow* win, int key, int scancode, int action, int mods) {
|
void EmuWindow_GLFW::OnKeyEvent(GLFWwindow* win, int key, int scancode, int action, int mods) {
|
||||||
|
auto emu_window = GetEmuWindow(win);
|
||||||
int keyboard_id = GetEmuWindow(win)->keyboard_id;
|
int keyboard_id = emu_window->keyboard_id;
|
||||||
|
|
||||||
if (action == GLFW_PRESS) {
|
if (action == GLFW_PRESS) {
|
||||||
EmuWindow::KeyPressed({key, keyboard_id});
|
emu_window->KeyPressed({key, keyboard_id});
|
||||||
} else if (action == GLFW_RELEASE) {
|
} else if (action == GLFW_RELEASE) {
|
||||||
EmuWindow::KeyReleased({key, keyboard_id});
|
emu_window->KeyReleased({ key, keyboard_id });
|
||||||
}
|
}
|
||||||
|
|
||||||
Service::HID::PadUpdateComplete();
|
Service::HID::PadUpdateComplete();
|
||||||
|
|
|
@ -5,8 +5,6 @@
|
||||||
#include "emu_window.h"
|
#include "emu_window.h"
|
||||||
#include "video_core/video_core.h"
|
#include "video_core/video_core.h"
|
||||||
|
|
||||||
bool EmuWindow::touch_pressed = false;
|
|
||||||
|
|
||||||
void EmuWindow::KeyPressed(KeyMap::HostDeviceKey key) {
|
void EmuWindow::KeyPressed(KeyMap::HostDeviceKey key) {
|
||||||
Service::HID::PadState mapped_key = KeyMap::GetPadKey(key);
|
Service::HID::PadState mapped_key = KeyMap::GetPadKey(key);
|
||||||
|
|
||||||
|
|
|
@ -71,10 +71,10 @@ public:
|
||||||
virtual void ReloadSetKeymaps() = 0;
|
virtual void ReloadSetKeymaps() = 0;
|
||||||
|
|
||||||
/// Signals a key press action to the HID module
|
/// Signals a key press action to the HID module
|
||||||
static void KeyPressed(KeyMap::HostDeviceKey key);
|
void KeyPressed(KeyMap::HostDeviceKey key);
|
||||||
|
|
||||||
/// Signals a key release action to the HID module
|
/// Signals a key release action to the HID module
|
||||||
static void KeyReleased(KeyMap::HostDeviceKey key);
|
void KeyReleased(KeyMap::HostDeviceKey key);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Signal that a touch pressed event has occurred (e.g. mouse click pressed)
|
* Signal that a touch pressed event has occurred (e.g. mouse click pressed)
|
||||||
|
@ -82,8 +82,7 @@ public:
|
||||||
* @param framebuffer_x Framebuffer x-coordinate that was pressed
|
* @param framebuffer_x Framebuffer x-coordinate that was pressed
|
||||||
* @param framebuffer_y Framebuffer y-coordinate that was pressed
|
* @param framebuffer_y Framebuffer y-coordinate that was pressed
|
||||||
*/
|
*/
|
||||||
static void TouchPressed(const FramebufferLayout& layout, unsigned framebuffer_x,
|
void TouchPressed(const FramebufferLayout& layout, unsigned framebuffer_x, unsigned framebuffer_y);
|
||||||
unsigned framebuffer_y);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Signal that a touch released event has occurred (e.g. mouse click released)
|
* Signal that a touch released event has occurred (e.g. mouse click released)
|
||||||
|
@ -91,8 +90,7 @@ public:
|
||||||
* @param framebuffer_x Framebuffer x-coordinate that was released
|
* @param framebuffer_x Framebuffer x-coordinate that was released
|
||||||
* @param framebuffer_y Framebuffer y-coordinate that was released
|
* @param framebuffer_y Framebuffer y-coordinate that was released
|
||||||
*/
|
*/
|
||||||
static void TouchReleased(const FramebufferLayout& layout, unsigned framebuffer_x,
|
void TouchReleased(const FramebufferLayout& layout, unsigned framebuffer_x, unsigned framebuffer_y);
|
||||||
unsigned framebuffer_y);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Signal that a touch movement event has occurred (e.g. mouse was moved over the emu window)
|
* Signal that a touch movement event has occurred (e.g. mouse was moved over the emu window)
|
||||||
|
@ -100,8 +98,7 @@ public:
|
||||||
* @param framebuffer_x Framebuffer x-coordinate
|
* @param framebuffer_x Framebuffer x-coordinate
|
||||||
* @param framebuffer_y Framebuffer y-coordinate
|
* @param framebuffer_y Framebuffer y-coordinate
|
||||||
*/
|
*/
|
||||||
static void TouchMoved(const FramebufferLayout& layout, unsigned framebuffer_x,
|
void TouchMoved(const FramebufferLayout& layout, unsigned framebuffer_x, unsigned framebuffer_y);
|
||||||
unsigned framebuffer_y);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns currently active configuration.
|
* Returns currently active configuration.
|
||||||
|
@ -196,5 +193,5 @@ private:
|
||||||
WindowConfig config; ///< Internal configuration (changes pending for being applied in ProcessConfigurationChanges)
|
WindowConfig config; ///< Internal configuration (changes pending for being applied in ProcessConfigurationChanges)
|
||||||
WindowConfig active_config; ///< Internal active configuration
|
WindowConfig active_config; ///< Internal active configuration
|
||||||
|
|
||||||
static bool touch_pressed; ///< True if touchpad area is currently pressed, otherwise false
|
bool touch_pressed; ///< True if touchpad area is currently pressed, otherwise false
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue