EmuWindow: Made pad/touch functions non-static.

master
bunnei 2015-03-08 21:45:45 +07:00
parent a1a1a5c6c5
commit 953e09ddb5
3 changed files with 20 additions and 24 deletions

@ -16,35 +16,36 @@ EmuWindow_GLFW* EmuWindow_GLFW::GetEmuWindow(GLFWwindow* 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) {
auto layout = GetEmuWindow(window)->GetFramebufferLayout();
auto emu_window = GetEmuWindow(win);
auto layout = emu_window->GetFramebufferLayout();
double x, y;
glfwGetCursorPos(window, &x, &y);
glfwGetCursorPos(win, &x, &y);
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) {
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) {
auto layout = GetEmuWindow(window)->GetFramebufferLayout();
EmuWindow::TouchMoved(layout, static_cast<u16>(x), static_cast<u16>(y));
void EmuWindow_GLFW::OnCursorPosEvent(GLFWwindow* win, double x, double y) {
auto emu_window = GetEmuWindow(win);
auto layout = emu_window->GetFramebufferLayout();
emu_window->TouchMoved(layout, static_cast<u16>(x), static_cast<u16>(y));
}
/// Called by GLFW when a key event occurs
void EmuWindow_GLFW::OnKeyEvent(GLFWwindow* win, int key, int scancode, int action, int mods) {
int keyboard_id = GetEmuWindow(win)->keyboard_id;
auto emu_window = GetEmuWindow(win);
int keyboard_id = emu_window->keyboard_id;
if (action == GLFW_PRESS) {
EmuWindow::KeyPressed({key, keyboard_id});
emu_window->KeyPressed({key, keyboard_id});
} else if (action == GLFW_RELEASE) {
EmuWindow::KeyReleased({key, keyboard_id});
emu_window->KeyReleased({ key, keyboard_id });
}
Service::HID::PadUpdateComplete();

@ -5,8 +5,6 @@
#include "emu_window.h"
#include "video_core/video_core.h"
bool EmuWindow::touch_pressed = false;
void EmuWindow::KeyPressed(KeyMap::HostDeviceKey key) {
Service::HID::PadState mapped_key = KeyMap::GetPadKey(key);

@ -71,10 +71,10 @@ public:
virtual void ReloadSetKeymaps() = 0;
/// 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
static void KeyReleased(KeyMap::HostDeviceKey key);
void KeyReleased(KeyMap::HostDeviceKey key);
/**
* 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_y Framebuffer y-coordinate that was pressed
*/
static void TouchPressed(const FramebufferLayout& layout, unsigned framebuffer_x,
unsigned framebuffer_y);
void TouchPressed(const FramebufferLayout& layout, unsigned framebuffer_x, unsigned framebuffer_y);
/**
* 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_y Framebuffer y-coordinate that was released
*/
static void TouchReleased(const FramebufferLayout& layout, unsigned framebuffer_x,
unsigned framebuffer_y);
void TouchReleased(const FramebufferLayout& layout, unsigned framebuffer_x, unsigned framebuffer_y);
/**
* 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_y Framebuffer y-coordinate
*/
static void TouchMoved(const FramebufferLayout& layout, unsigned framebuffer_x,
unsigned framebuffer_y);
void TouchMoved(const FramebufferLayout& layout, unsigned framebuffer_x, unsigned framebuffer_y);
/**
* Returns currently active configuration.
@ -196,5 +193,5 @@ private:
WindowConfig config; ///< Internal configuration (changes pending for being applied in ProcessConfigurationChanges)
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
};