From 124022bd69c85c25d2473a1da9b1756f26e912da Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 3 Nov 2013 20:55:07 +0100 Subject: [PATCH] (PS3) Implement rumble in input driver --- ps3/ps3_input.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/ps3/ps3_input.c b/ps3/ps3_input.c index 4fa09c3072..556d89d942 100644 --- a/ps3/ps3_input.c +++ b/ps3/ps3_input.c @@ -451,6 +451,28 @@ static bool ps3_input_set_sensor_state(void *data, unsigned port, enum retro_sen } } +static bool ps3_input_set_rumble(void *data, unsigned port, enum retro_rumble_effect effect, uint16_t strength) +{ + CellPadActParam params; + + switch (effect) + { + case RETRO_RUMBLE_WEAK: + if (strength > 1) + strength = 1; + params.motor[0] = strength; + break; + case RETRO_RUMBLE_STRONG: + if (strength > 255) + strength = 255; + params.motor[1] = strength; + } + + cellPadSetActDirect(port, ¶ms); + + return true; +} + const input_driver_t input_ps3 = { ps3_input_init, ps3_input_poll, @@ -461,5 +483,8 @@ const input_driver_t input_ps3 = { ps3_input_set_sensor_state, ps3_input_get_capabilities, "ps3", -}; + NULL, + ps3_input_set_rumble, + NULL, +};