[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-input
Subject: Re: [PATCH 1/1] input: ff-memless: Allow negative attack / fade ramps
From: Kalle Jokiniemi <kalle.jokiniemi () jolla ! com>
Date: 2015-08-28 14:41:12
Message-ID: 55E07308.6040007 () jolla ! com
[Download RAW message or body]
Hi,
On 28.08.2015 17:04, Kalle Jokiniemi wrote:
> Hi,
>
> Please disregard this patch, the math doesn't really change with this. I
> need to dig deeper what really was the issue, as I could see the
> negative ramp not working.
It seems the mis-interpretation of negative ramps not working was my
personal user error of trying to do it with too short effects and
FF_ENVELOPE_INTERVAL being 50ms.
Sorry for the noise.
- Kalle
>
> - Kalle
>
> On 27.08.2015 14:03, Kalle Jokiniemi wrote:
>> Currently the ff-memless force feedback periodic effects can only
>> have rising attack periods and declining fade periods. E.g. setting
>> a attack ramp that starts high to lower to normal magnitude, will
>> just cause the effect to rumble at high static speed for duration
>> of the attack period and then abruptly lower back to normal
>> magnitude instead of linearly declining the effect during attack
>> phase.
>>
>> To fix this, a check has been added to see if the envelope_level
>> of the attack or fade period is higher than default magnitude or
>> vise versa, and then adjusting the difference value calculation
>> accordingly.
>>
>> Signed-off-by: Kalle Jokiniemi <kalle.jokiniemi@jolla.com>
>> ---
>> drivers/input/ff-memless.c | 5 ++++-
>> 1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/input/ff-memless.c b/drivers/input/ff-memless.c
>> index 0723e0d..487df7e 100644
>> --- a/drivers/input/ff-memless.c
>> +++ b/drivers/input/ff-memless.c
>> @@ -190,7 +190,10 @@ static int apply_envelope(struct ml_effect_state
>> *state, int value,
>> } else
>> return value;
>>
>> - difference = abs(value) - envelope_level;
>> + if (abs(value) >= envelope_level)
>> + difference = abs(value) - envelope_level;
>> + else
>> + difference = -(envelope_level - abs(value));
>>
>> pr_debug("difference = %d\n", difference);
>> pr_debug("time_from_level = 0x%x\n", time_from_level);
>>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-input" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic