Rockbox Development > Feature Ideas

Virtual scrollwheel for Sansa Fuze+ (working demo)

<< < (2/2)

Lorenzo92:
I think the Setting menu option is the good way! This is absolutely NOT something that is tied to a specific target(s) IMHO. Of course, targets with scroolwheel are going to avoid this option (^^) as well as targets which don't have a touchpad nor a touchscreen.
After thinking about my previous message, developing this for touchscreen isn't actually a priority so I would go ahead without this into mind (of course a certain support - design - has to be taken into consideration anyways).

Let's start thinking targets:
- touchpad

That's it. And we don't have any particular define for those platforms afaik. I encountered this issue while developing on Z5: sharing code with a touchscreen controller, I had to include the touchpad define - still on gerrit, currently.

Once defined these "touchpad" targets we can start thinking about a virtual scrollwheel driver.

Opinions?

metaphys:
I've putted a lot of work and thought in the fuze+ keymaps. So here are some general thought about implementing gesture on touchpad's target:
- I thing the way the actual button system works cannot be easily made compatible with some gestures implementations. Especially the short/long button system will make it very difficult to implement gesture not messing/making more difficult to use the actual system. I think a good way would be to keep the standard system for consistency and have a setting switch to go on some touch experimental input system. That way we could start with a blank sheet on a new input system more adapted to touchpad interface.
- then we have to find a way to solve some pure interfacing problem like how do we make difference between long/short press/gesture begin. A solution would be for instance to move all long press to double click press, that way a long press would be safely understandable as gesture begin. or generally any other idea to replace long all press call.
- Once the two above questions are solved we can start implementing additional gesture. I would probably make sense that ones is able two activate with a setting the gesture he want, as some various gesture could get incompatible to each other.

On the principle of a virtual scrollwheel, I have nothing against it, but I think that this is already a quite sophisticate gesture. One could probably start with some basic scrolling function first. That being said once the two first question are solved, anyone can start to implement any gesture he wants

Anyway, I also think that if we can have guidelines on the way to implement it cleanly, there is no way we could find out the detail theoritically. My experience is that the interface require experimenting and comparing different solution before we can actually find which ones are worthy.

NarcoticV:
It seems to make sense that in general, configurable control schemes are being avoided. But about something like gestures (and definitely about a virtual scrollwheel), I think that there will be very strong opinions about which way is "better", no matter how well-implemented it may be - so maybe a general setting that chooses between a "button control scheme" and a "control scheme with gestures" would be necessary.

I won't give any opinions on the best way to fit this into Rockbox, because I've hardly looked at any code except for the Fuze+ - I'd like to learn a bit more about the existing general control structure (also touch-screen etc) before I join in. But I'm really curious to see where this will go.

Also, I'd love to contribute in making it happen. That having been said, I will leave for a long time of travelling in three weeks, and don't have much spare time until then, meaning that after I leave I won't be able to work on it until January/February. I guess this feature isn't in a big hurry though... And you can always beat me to it! ;)

Before I leave, I'd like to at least have "felt it in action": to implement this in a way that's a bit less "quick'n dirty" than the proof-of-concept from before. Also out of self-interest: that way I'll be able to use Rockbox the way I'd like while travelling. It would allow the user to actually use it, instead of just a demo screen.

I think I'll spend my free time in the coming weeks getting that done, doing it in the target-specific button code for Fuze+, and trying to do it in a way that major parts of the code will at least be well-documented and re-usable for when the time comes to do it right. It'll stick to taps, flick gestures and the virtual scrollwheel gesture.

By the way, how many targets are actually out there with touchpads?

And another thing to think about: would we want support for these gestures in the UISimulator? If so, there will have to be code that imitates the behaviour of the touchpad hardware in each target... Or a more general solution would have to do, such as clicking on a button to send the "gesture command" to the UISimulator.

NarcoticV:
This discussion is a bit too general for the title of this topic. We can move to this thread:
http://forums.rockbox.org/index.php/topic,43447.0.html

Navigation

[0] Message Index

[*] Previous page

Go to full version