Formatting
parent
4f9fde8766
commit
a4ddb175f1
|
@ -172,10 +172,6 @@ VITAAUD_Init(SDL_AudioDriverImpl * impl)
|
|||
|
||||
impl->OnlyHasDefaultInputDevice = 1;
|
||||
*/
|
||||
/*
|
||||
impl->DetectDevices = DSOUND_DetectDevices;
|
||||
impl->Deinitialize = DSOUND_Deinitialize;
|
||||
*/
|
||||
return 1; /* this audio target is available. */
|
||||
}
|
||||
|
||||
|
|
|
@ -41,5 +41,5 @@ struct SDL_PrivateAudioData {
|
|||
};
|
||||
|
||||
#endif /* _SDL_vitaaudio_h */
|
||||
/* vim: ts=4 sw=4
|
||||
*/
|
||||
|
||||
/* vi: set ts=4 sw=4 expandtab: */
|
||||
|
|
|
@ -208,7 +208,6 @@ VITA_JoystickSetDevicePlayerIndex(int device_index, int player_index)
|
|||
{
|
||||
}
|
||||
|
||||
|
||||
/* Function to open a joystick for use.
|
||||
The joystick to open is specified by the device index.
|
||||
This should fill the nbuttons and naxes fields of the joystick structure.
|
||||
|
@ -388,7 +387,6 @@ VITA_JoystickSetSensorsEnabled(SDL_Joystick *joystick, SDL_bool enabled)
|
|||
return SDL_Unsupported();
|
||||
}
|
||||
|
||||
|
||||
SDL_JoystickDriver SDL_VITA_JoystickDriver =
|
||||
{
|
||||
VITA_JoystickInit,
|
||||
|
@ -414,8 +412,6 @@ SDL_JoystickDriver SDL_VITA_JoystickDriver =
|
|||
VITA_JoystickQuit,
|
||||
};
|
||||
|
||||
|
||||
#endif /* SDL_JOYSTICK_VITA */
|
||||
|
||||
/* vim: ts=4 sw=4
|
||||
*/
|
||||
/* vi: set ts=4 sw=4 expandtab: */
|
||||
|
|
|
@ -19,4 +19,5 @@
|
|||
3. This notice may not be removed or altered from any source distribution.
|
||||
*/
|
||||
#include "../../SDL_internal.h"
|
||||
|
||||
/* vi: set ts=4 sw=4 expandtab: */
|
||||
|
|
|
@ -159,5 +159,4 @@ int SDL_SemPost(SDL_sem *sem)
|
|||
|
||||
#endif /* SDL_THREAD_VITA */
|
||||
|
||||
/* vim: ts=4 sw=4
|
||||
*/
|
||||
/* vi: set ts=4 sw=4 expandtab: */
|
||||
|
|
|
@ -108,5 +108,4 @@ int SDL_SYS_SetThreadPriority(SDL_ThreadPriority priority)
|
|||
|
||||
#endif /* SDL_THREAD_VITA */
|
||||
|
||||
/* vim: ts=4 sw=4
|
||||
*/
|
||||
/* vi: set ts=4 sw=4 expandtab: */
|
||||
|
|
|
@ -22,3 +22,5 @@
|
|||
#include <psp2/types.h>
|
||||
|
||||
typedef SceUID SYS_ThreadHandle;
|
||||
|
||||
/* vi: set ts=4 sw=4 expandtab: */
|
||||
|
|
|
@ -87,5 +87,4 @@ void SDL_Delay(Uint32 ms)
|
|||
|
||||
#endif /* SDL_TIMER_VITA */
|
||||
|
||||
/* vim: ts=4 sw=4
|
||||
*/
|
||||
/* vi: set ts=4 sw=4 expandtab: */
|
||||
|
|
|
@ -42,157 +42,157 @@ Uint8 lock_key_down = 0;
|
|||
void
|
||||
VITA_InitKeyboard(void)
|
||||
{
|
||||
sceHidKeyboardEnumerate(&keyboard_hid_handle, 1);
|
||||
sceHidKeyboardEnumerate(&keyboard_hid_handle, 1);
|
||||
}
|
||||
|
||||
void
|
||||
VITA_PollKeyboard(void)
|
||||
{
|
||||
// We skip polling keyboard if no window is created
|
||||
if (Vita_Window == NULL)
|
||||
return;
|
||||
// We skip polling keyboard if no window is created
|
||||
if (Vita_Window == NULL)
|
||||
return;
|
||||
|
||||
if (keyboard_hid_handle > 0)
|
||||
{
|
||||
int numReports = sceHidKeyboardRead(keyboard_hid_handle, (SceHidKeyboardReport**)&k_reports, SCE_HID_MAX_REPORT);
|
||||
if (keyboard_hid_handle > 0)
|
||||
{
|
||||
int numReports = sceHidKeyboardRead(keyboard_hid_handle, (SceHidKeyboardReport**)&k_reports, SCE_HID_MAX_REPORT);
|
||||
|
||||
if (numReports < 0) {
|
||||
keyboard_hid_handle = 0;
|
||||
}
|
||||
else if (numReports) {
|
||||
// Numlock and Capslock state changes only on a SDL_PRESSED event
|
||||
// The k_report only reports the state of the LED
|
||||
if (k_reports[numReports - 1].modifiers[1] & 0x1) {
|
||||
if (!(locks & 0x1)) {
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_NUMLOCKCLEAR);
|
||||
locks |= 0x1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (locks & 0x1) {
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_NUMLOCKCLEAR);
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_NUMLOCKCLEAR);
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_NUMLOCKCLEAR);
|
||||
locks &= ~0x1;
|
||||
}
|
||||
}
|
||||
if (numReports < 0) {
|
||||
keyboard_hid_handle = 0;
|
||||
}
|
||||
else if (numReports) {
|
||||
// Numlock and Capslock state changes only on a SDL_PRESSED event
|
||||
// The k_report only reports the state of the LED
|
||||
if (k_reports[numReports - 1].modifiers[1] & 0x1) {
|
||||
if (!(locks & 0x1)) {
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_NUMLOCKCLEAR);
|
||||
locks |= 0x1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (locks & 0x1) {
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_NUMLOCKCLEAR);
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_NUMLOCKCLEAR);
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_NUMLOCKCLEAR);
|
||||
locks &= ~0x1;
|
||||
}
|
||||
}
|
||||
|
||||
if (k_reports[numReports - 1].modifiers[1] & 0x2) {
|
||||
if (!(locks & 0x2)) {
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_CAPSLOCK);
|
||||
locks |= 0x2;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (locks & 0x2) {
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_CAPSLOCK);
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_CAPSLOCK);
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_CAPSLOCK);
|
||||
locks &= ~0x2;
|
||||
}
|
||||
}
|
||||
if (k_reports[numReports - 1].modifiers[1] & 0x2) {
|
||||
if (!(locks & 0x2)) {
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_CAPSLOCK);
|
||||
locks |= 0x2;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (locks & 0x2) {
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_CAPSLOCK);
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_CAPSLOCK);
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_CAPSLOCK);
|
||||
locks &= ~0x2;
|
||||
}
|
||||
}
|
||||
|
||||
if (k_reports[numReports - 1].modifiers[1] & 0x4) {
|
||||
if (!(locks & 0x4)) {
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_SCROLLLOCK);
|
||||
locks |= 0x4;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (locks & 0x4) {
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_SCROLLLOCK);
|
||||
locks &= ~0x4;
|
||||
}
|
||||
}
|
||||
if (k_reports[numReports - 1].modifiers[1] & 0x4) {
|
||||
if (!(locks & 0x4)) {
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_SCROLLLOCK);
|
||||
locks |= 0x4;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (locks & 0x4) {
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_SCROLLLOCK);
|
||||
locks &= ~0x4;
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
Uint8 changed_modifiers = k_reports[numReports - 1].modifiers[0] ^ prev_modifiers;
|
||||
{
|
||||
Uint8 changed_modifiers = k_reports[numReports - 1].modifiers[0] ^ prev_modifiers;
|
||||
|
||||
if (changed_modifiers & 0x01) {
|
||||
if (prev_modifiers & 0x01) {
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_LCTRL);
|
||||
}
|
||||
else {
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_LCTRL);
|
||||
}
|
||||
}
|
||||
if (changed_modifiers & 0x02) {
|
||||
if (prev_modifiers & 0x02) {
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_LSHIFT);
|
||||
}
|
||||
else {
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_LSHIFT);
|
||||
}
|
||||
}
|
||||
if (changed_modifiers & 0x04) {
|
||||
if (prev_modifiers & 0x04) {
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_LALT);
|
||||
}
|
||||
else {
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_LALT);
|
||||
}
|
||||
}
|
||||
if (changed_modifiers & 0x08) {
|
||||
if (prev_modifiers & 0x08) {
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_LGUI);
|
||||
}
|
||||
else {
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_LGUI);
|
||||
}
|
||||
}
|
||||
if (changed_modifiers & 0x10) {
|
||||
if (prev_modifiers & 0x10) {
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_RCTRL);
|
||||
}
|
||||
else {
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_RCTRL);
|
||||
}
|
||||
}
|
||||
if (changed_modifiers & 0x20) {
|
||||
if (prev_modifiers & 0x20) {
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_RSHIFT);
|
||||
}
|
||||
else {
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_RSHIFT);
|
||||
}
|
||||
}
|
||||
if (changed_modifiers & 0x40) {
|
||||
if (prev_modifiers & 0x40) {
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_RALT);
|
||||
}
|
||||
else {
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_RALT);
|
||||
}
|
||||
}
|
||||
if (changed_modifiers & 0x80) {
|
||||
if (prev_modifiers & 0x80) {
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_RGUI);
|
||||
}
|
||||
else {
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_RGUI);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (changed_modifiers & 0x01) {
|
||||
if (prev_modifiers & 0x01) {
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_LCTRL);
|
||||
}
|
||||
else {
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_LCTRL);
|
||||
}
|
||||
}
|
||||
if (changed_modifiers & 0x02) {
|
||||
if (prev_modifiers & 0x02) {
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_LSHIFT);
|
||||
}
|
||||
else {
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_LSHIFT);
|
||||
}
|
||||
}
|
||||
if (changed_modifiers & 0x04) {
|
||||
if (prev_modifiers & 0x04) {
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_LALT);
|
||||
}
|
||||
else {
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_LALT);
|
||||
}
|
||||
}
|
||||
if (changed_modifiers & 0x08) {
|
||||
if (prev_modifiers & 0x08) {
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_LGUI);
|
||||
}
|
||||
else {
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_LGUI);
|
||||
}
|
||||
}
|
||||
if (changed_modifiers & 0x10) {
|
||||
if (prev_modifiers & 0x10) {
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_RCTRL);
|
||||
}
|
||||
else {
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_RCTRL);
|
||||
}
|
||||
}
|
||||
if (changed_modifiers & 0x20) {
|
||||
if (prev_modifiers & 0x20) {
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_RSHIFT);
|
||||
}
|
||||
else {
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_RSHIFT);
|
||||
}
|
||||
}
|
||||
if (changed_modifiers & 0x40) {
|
||||
if (prev_modifiers & 0x40) {
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_RALT);
|
||||
}
|
||||
else {
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_RALT);
|
||||
}
|
||||
}
|
||||
if (changed_modifiers & 0x80) {
|
||||
if (prev_modifiers & 0x80) {
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_RGUI);
|
||||
}
|
||||
else {
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_RGUI);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
prev_modifiers = k_reports[numReports - 1].modifiers[0];
|
||||
prev_modifiers = k_reports[numReports - 1].modifiers[0];
|
||||
|
||||
for (int i = 0; i < 6; i++) {
|
||||
for (int i = 0; i < 6; i++) {
|
||||
|
||||
int keyCode = k_reports[numReports - 1].keycodes[i];
|
||||
int keyCode = k_reports[numReports - 1].keycodes[i];
|
||||
|
||||
if (keyCode != prev_keys[i]) {
|
||||
if (keyCode != prev_keys[i]) {
|
||||
|
||||
if (prev_keys[i]) {
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, prev_keys[i]);
|
||||
}
|
||||
if (keyCode) {
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, keyCode);
|
||||
}
|
||||
prev_keys[i] = keyCode;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (prev_keys[i]) {
|
||||
SDL_SendKeyboardKey(SDL_RELEASED, prev_keys[i]);
|
||||
}
|
||||
if (keyCode) {
|
||||
SDL_SendKeyboardKey(SDL_PRESSED, keyCode);
|
||||
}
|
||||
prev_keys[i] = keyCode;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* SDL_VIDEO_DRIVER_VITA */
|
||||
|
|
|
@ -38,7 +38,7 @@ int VITA_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid)
|
|||
SceMsgDialogUserMessageParam msgParam;
|
||||
SceMsgDialogButtonsParam buttonParam;
|
||||
SceDisplayFrameBuf dispparam;
|
||||
|
||||
|
||||
SceMsgDialogResult dialog_result;
|
||||
SceCommonDialogErrorCode init_result;
|
||||
SDL_bool setup_minimal_gxm = SDL_FALSE;
|
||||
|
@ -76,7 +76,7 @@ int VITA_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid)
|
|||
dispparam.size = sizeof(dispparam);
|
||||
|
||||
init_result = sceMsgDialogInit(¶m);
|
||||
|
||||
|
||||
// Setup display if it hasn't been initialized before
|
||||
if (init_result == SCE_COMMON_DIALOG_ERROR_GXM_IS_UNINITIALIZED)
|
||||
{
|
||||
|
|
|
@ -40,53 +40,53 @@ Uint8 prev_buttons = 0;
|
|||
void
|
||||
VITA_InitMouse(void)
|
||||
{
|
||||
sceHidMouseEnumerate(&mouse_hid_handle, 1);
|
||||
sceHidMouseEnumerate(&mouse_hid_handle, 1);
|
||||
}
|
||||
|
||||
void
|
||||
VITA_PollMouse(void)
|
||||
{
|
||||
// We skip polling mouse if no window is created
|
||||
if (Vita_Window == NULL)
|
||||
return;
|
||||
// We skip polling mouse if no window is created
|
||||
if (Vita_Window == NULL)
|
||||
return;
|
||||
|
||||
if (mouse_hid_handle > 0)
|
||||
{
|
||||
int numReports = sceHidMouseRead(mouse_hid_handle, (SceHidMouseReport**)&m_reports, SCE_HID_MAX_REPORT);
|
||||
if (numReports > 0)
|
||||
{
|
||||
for (int i = 0; i <= numReports - 1; i++)
|
||||
{
|
||||
Uint8 changed_buttons = m_reports[i].buttons ^ prev_buttons;
|
||||
if (mouse_hid_handle > 0)
|
||||
{
|
||||
int numReports = sceHidMouseRead(mouse_hid_handle, (SceHidMouseReport**)&m_reports, SCE_HID_MAX_REPORT);
|
||||
if (numReports > 0)
|
||||
{
|
||||
for (int i = 0; i <= numReports - 1; i++)
|
||||
{
|
||||
Uint8 changed_buttons = m_reports[i].buttons ^ prev_buttons;
|
||||
|
||||
if (changed_buttons & 0x1) {
|
||||
if (prev_buttons & 0x1)
|
||||
SDL_SendMouseButton(Vita_Window, 0, SDL_RELEASED, SDL_BUTTON_LEFT);
|
||||
else
|
||||
SDL_SendMouseButton(Vita_Window, 0, SDL_PRESSED, SDL_BUTTON_LEFT);
|
||||
}
|
||||
if (changed_buttons & 0x2) {
|
||||
if (prev_buttons & 0x2)
|
||||
SDL_SendMouseButton(Vita_Window, 0, SDL_RELEASED, SDL_BUTTON_RIGHT);
|
||||
else
|
||||
SDL_SendMouseButton(Vita_Window, 0, SDL_PRESSED, SDL_BUTTON_RIGHT);
|
||||
}
|
||||
if (changed_buttons & 0x4) {
|
||||
if (prev_buttons & 0x4)
|
||||
SDL_SendMouseButton(Vita_Window, 0, SDL_RELEASED, SDL_BUTTON_MIDDLE);
|
||||
else
|
||||
SDL_SendMouseButton(Vita_Window, 0, SDL_PRESSED, SDL_BUTTON_MIDDLE);
|
||||
}
|
||||
if (changed_buttons & 0x1) {
|
||||
if (prev_buttons & 0x1)
|
||||
SDL_SendMouseButton(Vita_Window, 0, SDL_RELEASED, SDL_BUTTON_LEFT);
|
||||
else
|
||||
SDL_SendMouseButton(Vita_Window, 0, SDL_PRESSED, SDL_BUTTON_LEFT);
|
||||
}
|
||||
if (changed_buttons & 0x2) {
|
||||
if (prev_buttons & 0x2)
|
||||
SDL_SendMouseButton(Vita_Window, 0, SDL_RELEASED, SDL_BUTTON_RIGHT);
|
||||
else
|
||||
SDL_SendMouseButton(Vita_Window, 0, SDL_PRESSED, SDL_BUTTON_RIGHT);
|
||||
}
|
||||
if (changed_buttons & 0x4) {
|
||||
if (prev_buttons & 0x4)
|
||||
SDL_SendMouseButton(Vita_Window, 0, SDL_RELEASED, SDL_BUTTON_MIDDLE);
|
||||
else
|
||||
SDL_SendMouseButton(Vita_Window, 0, SDL_PRESSED, SDL_BUTTON_MIDDLE);
|
||||
}
|
||||
|
||||
prev_buttons = m_reports[i].buttons;
|
||||
prev_buttons = m_reports[i].buttons;
|
||||
|
||||
if (m_reports[i].rel_x || m_reports[i].rel_y)
|
||||
{
|
||||
SDL_SendMouseMotion(Vita_Window, 0, 1, m_reports[i].rel_x, m_reports[i].rel_y);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (m_reports[i].rel_x || m_reports[i].rel_y)
|
||||
{
|
||||
SDL_SendMouseMotion(Vita_Window, 0, 1, m_reports[i].rel_x, m_reports[i].rel_y);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* SDL_VIDEO_DRIVER_VITA */
|
||||
|
|
|
@ -45,124 +45,124 @@ struct{
|
|||
void
|
||||
VITA_InitTouch(void)
|
||||
{
|
||||
sceTouchSetSamplingState(SCE_TOUCH_PORT_FRONT, SCE_TOUCH_SAMPLING_STATE_START);
|
||||
sceTouchSetSamplingState(SCE_TOUCH_PORT_BACK, SCE_TOUCH_SAMPLING_STATE_START);
|
||||
sceTouchEnableTouchForce(SCE_TOUCH_PORT_FRONT);
|
||||
sceTouchEnableTouchForce(SCE_TOUCH_PORT_BACK);
|
||||
sceTouchSetSamplingState(SCE_TOUCH_PORT_FRONT, SCE_TOUCH_SAMPLING_STATE_START);
|
||||
sceTouchSetSamplingState(SCE_TOUCH_PORT_BACK, SCE_TOUCH_SAMPLING_STATE_START);
|
||||
sceTouchEnableTouchForce(SCE_TOUCH_PORT_FRONT);
|
||||
sceTouchEnableTouchForce(SCE_TOUCH_PORT_BACK);
|
||||
|
||||
for(int port = 0; port < SCE_TOUCH_PORT_MAX_NUM; port++) {
|
||||
SceTouchPanelInfo panelinfo;
|
||||
sceTouchGetPanelInfo(port, &panelinfo);
|
||||
for(int port = 0; port < SCE_TOUCH_PORT_MAX_NUM; port++) {
|
||||
SceTouchPanelInfo panelinfo;
|
||||
sceTouchGetPanelInfo(port, &panelinfo);
|
||||
|
||||
area_info[port].x = (float)panelinfo.minAaX;
|
||||
area_info[port].y = (float)panelinfo.minAaY;
|
||||
area_info[port].w = (float)(panelinfo.maxAaX - panelinfo.minAaX);
|
||||
area_info[port].h = (float)(panelinfo.maxAaY - panelinfo.minAaY);
|
||||
area_info[port].x = (float)panelinfo.minAaX;
|
||||
area_info[port].y = (float)panelinfo.minAaY;
|
||||
area_info[port].w = (float)(panelinfo.maxAaX - panelinfo.minAaX);
|
||||
area_info[port].h = (float)(panelinfo.maxAaY - panelinfo.minAaY);
|
||||
|
||||
force_info[port].min = (float)panelinfo.minForce;
|
||||
force_info[port].range = (float)(panelinfo.maxForce - panelinfo.minForce);
|
||||
}
|
||||
force_info[port].min = (float)panelinfo.minForce;
|
||||
force_info[port].range = (float)(panelinfo.maxForce - panelinfo.minForce);
|
||||
}
|
||||
|
||||
// Support passing both front and back touch devices in events
|
||||
SDL_AddTouch((SDL_TouchID)0, SDL_TOUCH_DEVICE_DIRECT, "Front");
|
||||
SDL_AddTouch((SDL_TouchID)1, SDL_TOUCH_DEVICE_DIRECT, "Back");
|
||||
// Support passing both front and back touch devices in events
|
||||
SDL_AddTouch((SDL_TouchID)0, SDL_TOUCH_DEVICE_DIRECT, "Front");
|
||||
SDL_AddTouch((SDL_TouchID)1, SDL_TOUCH_DEVICE_DIRECT, "Back");
|
||||
}
|
||||
|
||||
void
|
||||
VITA_QuitTouch(void){
|
||||
sceTouchDisableTouchForce(SCE_TOUCH_PORT_FRONT);
|
||||
sceTouchDisableTouchForce(SCE_TOUCH_PORT_BACK);
|
||||
sceTouchDisableTouchForce(SCE_TOUCH_PORT_FRONT);
|
||||
sceTouchDisableTouchForce(SCE_TOUCH_PORT_BACK);
|
||||
}
|
||||
|
||||
void
|
||||
VITA_PollTouch(void)
|
||||
{
|
||||
SDL_FingerID finger_id = 0;
|
||||
int port;
|
||||
SDL_FingerID finger_id = 0;
|
||||
int port;
|
||||
|
||||
// We skip polling touch if no window is created
|
||||
if (Vita_Window == NULL)
|
||||
return;
|
||||
// We skip polling touch if no window is created
|
||||
if (Vita_Window == NULL)
|
||||
return;
|
||||
|
||||
memcpy(touch_old, touch, sizeof(touch_old));
|
||||
memcpy(touch_old, touch, sizeof(touch_old));
|
||||
|
||||
for(port = 0; port < SCE_TOUCH_PORT_MAX_NUM; port++) {
|
||||
sceTouchPeek(port, &touch[port], 1);
|
||||
if (touch[port].reportNum > 0) {
|
||||
for (int i = 0; i < touch[port].reportNum; i++)
|
||||
{
|
||||
// adjust coordinates and forces to return normalized values
|
||||
// for the front, screen area is used as a reference (for direct touch)
|
||||
// e.g. touch_x = 1.0 corresponds to screen_x = 960
|
||||
// for the back panel, the active touch area is used as reference
|
||||
float x = 0;
|
||||
float y = 0;
|
||||
float force = (touch[port].report[i].force - force_info[port].min) / force_info[port].range;
|
||||
VITA_ConvertTouchXYToSDLXY(&x, &y, touch[port].report[i].x, touch[port].report[i].y, port);
|
||||
finger_id = (SDL_FingerID) touch[port].report[i].id;
|
||||
for(port = 0; port < SCE_TOUCH_PORT_MAX_NUM; port++) {
|
||||
sceTouchPeek(port, &touch[port], 1);
|
||||
if (touch[port].reportNum > 0) {
|
||||
for (int i = 0; i < touch[port].reportNum; i++)
|
||||
{
|
||||
// adjust coordinates and forces to return normalized values
|
||||
// for the front, screen area is used as a reference (for direct touch)
|
||||
// e.g. touch_x = 1.0 corresponds to screen_x = 960
|
||||
// for the back panel, the active touch area is used as reference
|
||||
float x = 0;
|
||||
float y = 0;
|
||||
float force = (touch[port].report[i].force - force_info[port].min) / force_info[port].range;
|
||||
VITA_ConvertTouchXYToSDLXY(&x, &y, touch[port].report[i].x, touch[port].report[i].y, port);
|
||||
finger_id = (SDL_FingerID) touch[port].report[i].id;
|
||||
|
||||
// Send an initial touch
|
||||
SDL_SendTouch((SDL_TouchID)port,
|
||||
finger_id,
|
||||
Vita_Window,
|
||||
SDL_TRUE,
|
||||
x,
|
||||
y,
|
||||
force);
|
||||
// Send an initial touch
|
||||
SDL_SendTouch((SDL_TouchID)port,
|
||||
finger_id,
|
||||
Vita_Window,
|
||||
SDL_TRUE,
|
||||
x,
|
||||
y,
|
||||
force);
|
||||
|
||||
// Always send the motion
|
||||
SDL_SendTouchMotion((SDL_TouchID)port,
|
||||
finger_id,
|
||||
Vita_Window,
|
||||
x,
|
||||
y,
|
||||
force);
|
||||
}
|
||||
}
|
||||
// Always send the motion
|
||||
SDL_SendTouchMotion((SDL_TouchID)port,
|
||||
finger_id,
|
||||
Vita_Window,
|
||||
x,
|
||||
y,
|
||||
force);
|
||||
}
|
||||
}
|
||||
|
||||
// some fingers might have been let go
|
||||
if (touch_old[port].reportNum > 0) {
|
||||
for (int i = 0; i < touch_old[port].reportNum; i++) {
|
||||
int finger_up = 1;
|
||||
if (touch[port].reportNum > 0) {
|
||||
for (int j = 0; j < touch[port].reportNum; j++) {
|
||||
if (touch[port].report[j].id == touch_old[port].report[i].id ) {
|
||||
finger_up = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (finger_up == 1) {
|
||||
float x = 0;
|
||||
float y = 0;
|
||||
float force = (touch_old[port].report[i].force - force_info[port].min) / force_info[port].range;
|
||||
VITA_ConvertTouchXYToSDLXY(&x, &y, touch_old[port].report[i].x, touch_old[port].report[i].y, port);
|
||||
finger_id = (SDL_FingerID) touch_old[port].report[i].id;
|
||||
// Finger released from screen
|
||||
SDL_SendTouch((SDL_TouchID)port,
|
||||
finger_id,
|
||||
Vita_Window,
|
||||
SDL_FALSE,
|
||||
x,
|
||||
y,
|
||||
force);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// some fingers might have been let go
|
||||
if (touch_old[port].reportNum > 0) {
|
||||
for (int i = 0; i < touch_old[port].reportNum; i++) {
|
||||
int finger_up = 1;
|
||||
if (touch[port].reportNum > 0) {
|
||||
for (int j = 0; j < touch[port].reportNum; j++) {
|
||||
if (touch[port].report[j].id == touch_old[port].report[i].id ) {
|
||||
finger_up = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (finger_up == 1) {
|
||||
float x = 0;
|
||||
float y = 0;
|
||||
float force = (touch_old[port].report[i].force - force_info[port].min) / force_info[port].range;
|
||||
VITA_ConvertTouchXYToSDLXY(&x, &y, touch_old[port].report[i].x, touch_old[port].report[i].y, port);
|
||||
finger_id = (SDL_FingerID) touch_old[port].report[i].id;
|
||||
// Finger released from screen
|
||||
SDL_SendTouch((SDL_TouchID)port,
|
||||
finger_id,
|
||||
Vita_Window,
|
||||
SDL_FALSE,
|
||||
x,
|
||||
y,
|
||||
force);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void VITA_ConvertTouchXYToSDLXY(float *sdl_x, float *sdl_y, int vita_x, int vita_y, int port) {
|
||||
float x = (vita_x - area_info[port].x) / area_info[port].w;
|
||||
float y = (vita_y - area_info[port].y) / area_info[port].h;
|
||||
float x = (vita_x - area_info[port].x) / area_info[port].w;
|
||||
float y = (vita_y - area_info[port].y) / area_info[port].h;
|
||||
|
||||
x = SDL_max(x, 0.0);
|
||||
x = SDL_min(x, 1.0);
|
||||
x = SDL_max(x, 0.0);
|
||||
x = SDL_min(x, 1.0);
|
||||
|
||||
y = SDL_max(y, 0.0);
|
||||
y = SDL_min(y, 1.0);
|
||||
y = SDL_max(y, 0.0);
|
||||
y = SDL_min(y, 1.0);
|
||||
|
||||
*sdl_x = x;
|
||||
*sdl_y = y;
|
||||
*sdl_x = x;
|
||||
*sdl_y = y;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -31,11 +31,11 @@
|
|||
|
||||
typedef struct SDL_VideoData
|
||||
{
|
||||
SDL_bool egl_initialized; /* OpenGL device initialization status */
|
||||
uint32_t egl_refcount; /* OpenGL reference count */
|
||||
SDL_bool egl_initialized; /* OpenGL device initialization status */
|
||||
uint32_t egl_refcount; /* OpenGL reference count */
|
||||
|
||||
SceWChar16 ime_buffer[SCE_IME_DIALOG_MAX_TEXT_LENGTH];
|
||||
SDL_bool ime_active;
|
||||
SceWChar16 ime_buffer[SCE_IME_DIALOG_MAX_TEXT_LENGTH];
|
||||
SDL_bool ime_active;
|
||||
|
||||
} SDL_VideoData;
|
||||
|
||||
|
|
Loading…
Reference in New Issue