CellMouseData ps3_mouse_input_poll_device(uint32_t id) { CellMouseData mouse_data; // Get new pad data cellMouseGetData(id, &mouse_data); return mouse_data; }
static int16_t ps3_mouse_device_state(void *data, unsigned player, unsigned id) { CellMouseData mouse_state; cellMouseGetData(id, &mouse_state); switch (id) { case RETRO_DEVICE_ID_MOUSE_LEFT: return (!mice_connected ? 0 : mouse_state.buttons & CELL_MOUSE_BUTTON_1); case RETRO_DEVICE_ID_MOUSE_RIGHT: return (!mice_connected ? 0 : mouse_state.buttons & CELL_MOUSE_BUTTON_2); case RETRO_DEVICE_ID_MOUSE_X: return (!mice_connected ? 0 : mouse_state.x_axis); case RETRO_DEVICE_ID_MOUSE_Y: return (!mice_connected ? 0 : mouse_state.y_axis); default: return 0; } }
//----------------------------------------------------------------------------- // Description: Updates this device // Parameters: // Returns: // Notes: //----------------------------------------------------------------------------- void FWInputDeviceMouse::update() { CellMouseData mouseData; int device = (int)mpPlatformData; if((sMouseInfo.status[device]) && (sMouseInfo.status[device] != CELL_MOUSE_STATUS_DISCONNECTED)) { /*E a mouse has been connected */ if (sOldMouseStatus[device] == CELL_MOUSE_STATUS_DISCONNECTED) { /*E the previous data shows that mouse was not *E yet connected, so it is a new connection */ printf("New Mouse %d is connected: VENDOR_ID=%d PRODUCT_ID=%d\n", device, sMouseInfo.vendor_id[device], sMouseInfo.product_id[device]); } int ret = cellMouseGetData(device, &mouseData); if ((ret == CELL_OK) && (mouseData.update == CELL_MOUSE_DATA_UPDATE)) { // if we want client relative coordinates if(mIsClientRelative == true) { mXAxis[0] += mouseData.x_axis; mYAxis[0] += mouseData.y_axis; } else { mXAxis[0] = mouseData.x_axis; mYAxis[0] = mouseData.y_axis; } mButtons[0] = mouseData.buttons & 0x1 ? true : false; mButtons[1] = mouseData.buttons & 0x4 ? true : false; mButtons[2] = mouseData.buttons & 0x2 ? true : false; } } // Update device status for next time sOldMouseStatus[device] = sMouseInfo.status[device]; FWInputDevice::update(); }
static int16_t ps3_mouse_device_state(ps3_input_t *ps3, unsigned player, unsigned id) { CellMouseData mouse_state; cellMouseGetData(id, &mouse_state); if (!ps3->mice_connected) return 0; switch (id) { /* TODO: mouse wheel up/down */ case RETRO_DEVICE_ID_MOUSE_LEFT: return (mouse_state.buttons & CELL_MOUSE_BUTTON_1); case RETRO_DEVICE_ID_MOUSE_RIGHT: return (mouse_state.buttons & CELL_MOUSE_BUTTON_2); case RETRO_DEVICE_ID_MOUSE_X: return (mouse_state.x_axis); case RETRO_DEVICE_ID_MOUSE_Y: return (mouse_state.y_axis); } return 0; }