1
0
Fork 0
forked from suyu/suyu

EmuWindow: Made pad/touch functions non-static.

This commit is contained in:
bunnei 2015-03-08 21:45:45 -04:00
parent a1a1a5c6c5
commit 953e09ddb5
3 changed files with 20 additions and 24 deletions

View file

@ -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();

View file

@ -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);

View file

@ -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
}; };