This is the bug/patch tracker for Rockbox. Click here for more information.
Quick links: Bugs · Patches · Rockbox frontpage
FS#9942 - "First Keypress Enables Backlight Only" broken on 5G and probably other clickweel iPods
Attached to Project:
Rockbox
Opened by Boris Gjenero (dreamlayers) - Sunday, 22 February 2009, 19:11 GMT+2
Opened by Boris Gjenero (dreamlayers) - Sunday, 22 February 2009, 19:11 GMT+2
|
Details"First Keypress Enables Backlight Only" doesn't work on the 5G iPod. For example, if that's enabled, the backlight is off and I press next track while at the WPS, Rockbox will go to the next track.
It seems like clickwheel event(s) generated when I touch the wheel turn on the backlight. When the button is pressed, the backlight is already considered to be on and the button press performs its usual action. If I carefully hold my finger still on the clickwheel, let the backlight fade, and then carefully press a button without moving my finger on the clickwheel, I am able to turn on the backlight without causing anything else to happen. I don't know what to do about this. Requiring a physical button press might be annoying. Removing this option on affected targets might be okay, because it's easy to turn on the backlight by touching the clickwheel (and that doesn't seem to cause anything else to happen). Another possibility is to require more or specific wheel events. I set player type to iPod 5G because that's all I have, but I expect this problem also exists on other clickwheel iPods. This problem exists on r20079 and r20033. |
This task depends upon
A fix would be to take the "- returning BUTTON_SCROLL_BACK/BUTTON_SCROLL_FWD out of scrollwheel driver (which was missing before)" of
FS#8668and handle backlight like the other buttons do.This is why
FS#8668does not implemement such handling, too. It does only use kind of a new trigger BUTTON_SCROLL which is not used for scrolling but only for signalling a user interaction for the gui boost.My approach: Just moving "backlight_on()" to the section where scroll events are sent.
If I'm totally wrong about what this option does, definitely clue me in. Thanks.
1st approach: Just moving "backlight_on()" to the section where scroll events are sent.
2nd approach: Using the implementation from
FS#8668and removing "backlight_on()" from the scrollwheel drivers. This cleans up the drivers as it uses the target independent way of backlight handling.Glenn, as a quick test you may use
FS#8668(what you already do as far as I understood) and additionally comment out "backlight_on()" in firmware/target/arm/ipod/button-clickwheel.c This equals approach 2.But I also agree that power-conscious users would like to be able to use the wheel to change volume without turning on the backlight/lcd on. (I'm not a power-conscious user...)
Maybe the available options could be:
1) Never ignoring keypresses, but a touch of the wheel will turn on the backlight (current behaviour with the "first keypress..." set to off)
2) Touching or scrolling the wheel doesn't turn on backlight, and first keypress is ignored.
If I'm understanding the discussion here correctly, the intention is to remove option 1) ?
a) We do not want it. Then we just need to remove "backlight_on()" from button-clickwheel.c In this case the implementation in button.c should wake up the backlight on all other button presses (except scroll wheel). The scroll wheel is used for scrolling or volume change (depends on context, e.g. WPS or menu tree). So, we also will not wake up the backlight, if scrolling in the database or menu.
b) We do want it. Then we either keep it as it is (touching wakes up backlight) or we change the code to only wake up the backlight if a scroll-activity is detected.
b1) Keep it as it is.
b2) Just move "backlight_on()" into the code section where the scroll event is sent.
b3) Remove "backlight_on()" from button-clickwheel.c and use the BUTTON_SCROLL-signalling from
FS#8668instead. This will use the platform code in button.c to enable backlight.I personally do not like option a) because of the context dependent function of the scrollwheel -- even if I am one of the power-conscious users ;-)
But I still think that the backlight handling should not be separated from the rest of the buttons, but rather be the same. That's why I'm still for b3).
Btw, the same applies for the buttonlight.
My favorite is b3), too. It removes the ugly backlight-calls from the driver and uses the target independent code for backlight handling. If we agree to this solution I will provide a patch here.
In short (hopefully)...
1) the feature is fixed, and the option to consider scrollwheel activity as a buttonpress is part of the configuration: I'd use that. Reflecting on it after seeing everyone else's comments makes me think it's probably an unnecessary feature, though.
2) The feature is fixed, but it is now always set so that scrollwheel activity does not turn on the backlight: I would not use that. It's definitely a feature I appreciate when I'm actually looking at my player. If this was the current thinking on this issue, I'd definitely go with one of the B options instead.
In the end, it's sort of a semantics issue: it was just my thinking that the option is "first keypress enables backlight only", while scrolling isn't really a "press" per se. Like I said though, this is really the only situation in which I imagined it would not turn on the backlight. Hope that's clear, and if this feature gets the ax instead (for whatever reason) I won't really mind. Just thinking about saving more battery life.
As far as I understood the e200 also calls "backlight_on()" in the wheel driver, but not on touching (like iPod) but on detected scrolling. Does this work that good that there is no misdetection of scrolling when pressing a button? If so, I understand your reject of my thoughts. Otherwise (like with the current iPod wheel driver) the backlight is switched on anyway as soon as pressing a button (except the center button).
I don't turn the light on using the wheel, I mostly use the center button. And this option is one of the first ones that I enable after installation.
On the e200, you can press all buttons without touching the wheel. But you also can manage to touch the wheel just slightly, before pressing anything (which would equal the the ipods situation). But that doesn't turn the backlight on, as of now,
What would change?
-The bug reported here would be fixed, which is good.
-You cannot turn on the light just by very slightly touching the wheel anymore. BUT you only need to touch it a little bit more (so that it generates a scroll). I can't imagine that this would be much more touching. That isn't so bad, is it?
-Bring consistency between targets.
Btw, this is quite near to chatting ;-)
I may be a bit late, but anyways, here are my thoughts:
I want a way to turn on the backlight without changing anything else. Wheel touching is great for this. If it didn't turn on the backlight, what other options are there? I guess just the hold switch, and that's not very convenient. (On my Archos V2 Recorder I hold F1, but all iPod buttons do things when held.)
I don't like "First Keypress Enables Backlight Only" because then I need to know backlight state. For example, if I want to go to the next track without looking, do I press once and maybe only turn on the backlight or press twice and maybe skip an additional track? If the purpose of the option is turning on the backlight without causing other effects, then wheel touching makes it unnecessary.
It may be best to just remove the "First Keypress Enables Backlight Only" option on click wheel iPods. What is the purpose of that option if touching the wheel can turn on the backlight without any other effects?
The only useful implementation may be making the wheel not turn on the backlight when the option is set to "Yes". I'm not sure if this is a good idea because it is different from other targets and it might be annoying when using the wheel to scroll. I'm attaching a patch nevertheless, to see what others think of this idea.
And no, there's not only the hold switch, but also the center button which can be used to turn the wheel on (with, or without emitting an action).
I don't quite understand your point. Why did you fill a bug report in the first place, if you expect (or want) the current behavior?
FS#9890. I never actually needed "First Keypress Enables Backlight Only" behaviour; I just thought this was a problem which should be documented here and fixed.In retrospect, I guess I shouldn't have submitted this bug report. Perhaps I wasted others time with something unimportant. I'm sorry.
Also, thank you for the link to the other task... if it's not deemed appropriate for SVN then I'll forego it. It's not important enough for me to work with just to save a bit of battery life. I appreciate it, though :)
As for the solution, I guess I 'm in favour of simply removing this option on the ipods where this happens.