Seriously consider donating something like $1 if you want software from me to continue, as johnpatcher had suggested.
This was originally built to flatten the brightness levels between AC and BATT on the Kaiser, but since lacking a workable front-camera API access, this works out better on devices with a light sensor.
/// new Acer m900 support
Since this device has only 3 auto-brightness settings, a full sensor-to-backlight curve is used -- configurable in HKCU/SOFTWARE/Creative 'Ware/LevelSight/0-a -- to map the 11 brightness settings actually available.
Brightness levels to about 4 have been hand-tuned and then it's a linear scale to max brightness.
Currently, the settings are loaded only on service startup, restart the service (through dotfred TaskMgr) if you want it to reload the registry settings
///
1.0.3.x: <HTC>Remember to CLICK OFF your auto-backlight setting.<HTC>
Uses HKCU\SOFTWARE\Creative 'Ware\LevelSight\offset to adjust the native backlight setting. It defaults to -1 so it'll pick a setting 1 less than what the system would've automatically set. If you set it to 0, it'll pick the same as auto, and so on. Behavior is the same as pre-1.0.3.x when backlevels fall below low_wm, but switches to offset mode when levels rise above high_wm.
More gui ability to adjust these settings is coming.
/// pre-1.0.3.x
<HTC>All this does is TURNS OFF the auto-backlight whenever reported light levels drop below low_wm using a custom 1st order low-pass algorithm. When turned off, the backlight falls back to whatever you have your AC/BATT light levels set to in your control panel. This solves the issue of the auto-backlight not dimming below backlight level 3.
When light levels rise above what the light sensor API thinks should be backlight level high_wm, it uses the auto-backlight settings again, and lets it auto-adjust as was usual.<HTC>
///
It is however not perfect due to the low accuracy of the sensor at low light levels, but does try to ignore the random unexplainable surges in the sensor readings when light levels are constant. It's probably a reason why ODMs don't bother to try to make auto-backlight work any lower.
Thanks originally to Koush for his LightSensor SDK reference as well as Scott Seligman for the C++ reference.
Advantages:
works with native OEM backlight without extra .NET layer
history-less sensor-data filtering
Native C++ and assembly, floating-point-less DSP/SIMD-accelerated math, and extra optimization analysis in Ida Pro.
No CPU/power-sucking .NET, nor the standard/default software floating-point emulation used.
takes 1K of ram, 22K of storage
0 process slots (runs as a service)
no notable power-draw (same amount of power ~53mA with service on/off on Fuze)
polls every ~2000 milliseconds
no HTCSensorSDK sensor-data lag (~200-300 ms) nor cpu load -- directly accesses the sensor driver
dll and supporting code are compressed independently of .cab and use cpu's smaller Thumb (16-bit) code when advantageous
mostly lockless multi-threading
HKCU/Software/Creative 'Ware/LevelSight:
offset: adjusts backlight levels positive or negative of oem-pick
low_wm: fuzzy point where it low-light auto-backlight (2 is default recommendation)
high_wm: fuzzy point where offset auto-backlight will turn on (5 is recommendation)
Tested with stock Fuze rom, and Acer m900 160-lite rom.
Release Notes:
-current(1.1.0.x series)
1.1.0.2: fix bug where max backlight was clamped to level 5. It now uses the full 1-10 (10 levels) range. Level 0 disabled because not useful.
1.1.0.1 2009.09.04: full-backlight enhancement for Acer m900 ONLY!! Backport to FUZE whenever.
Acer 900s version abandoned because of Clove Technology.
-stable(1.0.3.x series)
1.0.3.2 2008.02.19: full-backlight replacement
-obsolete(1.0.2.x series)
1.0.2.1 2008.12.03: reset hysteresis on backlight power-state edge
1.0.2.0 2008.12.03: hysteresis now using first-order low-pass filter with a medium α; math and power-state optimizations
obsolete (1.0.1.x series) LevelSightSvc.1.0.1.1.CAB (11.8 KB, 132 views)
1.0.1.1 2008.11.24: work-around for service not starting up when device is rebooted; tweaked hysteresis
1.0.1.0 2008.11.21: converted into a service with registry configurable water marks
1.0.0.3: better hysterisis
1.0.0.2 2008/11/16: Previous version tended to like it dark and resisted turning it up.
Adjusted dark/light sensitivity so it switches auto-off at light sensor 3::3, and switches it back on at 3::5. Still playing with this to get a better hysteresis.
Thank you Sir! That's exactly the kind of app I was waiting for. From what it sounds like I much prefer your solution over G-Light! I will test it right away!
NuShrike, the app doesn't seem to work for me. I've installed it and did a soft reset afterwards (just to make sure) but the backlight still never falls below level 3. In my AC/Batt settings I have the backlight auto configuration enabled and did also try to disable this with the same result.
Am I making some mistake?
I'm really looking forward to get this sorted out because I love the idea of your app!
same here! tried it with duttys rom
Same issue with stock fuze rom. Definitely looking forward to this app.
I just analyzed the running processes after soft reset and the app is not running even tough it is placed in startup. so I just tryed starting the process manually but even when it's running it is not working
Great idea, but does not work consistently. I've tried to narrow it down to a repeatable scenario, but have not been successful. I can see the LevelSight.exe process running (BTW, it takes approx 2.4% of my cpu every three seconds, then idle for three seconds.) LevelSight initially appears to work as designed, but after a few light cycles, it stops enabling the auto adjust setting.
Just did some more testing. If I go in and manually enable auto adjust (in Power settings) it will work as long as the light level is high. Then when light level is low, LevelSight will disable auto adjust (setting backlight level to what I have it set to) but never reenable auto adjust (no matter how bright the ambient light.) So it seems to half way work, it does consistently disable auto adjust but it never enables it.
More testing. Seems that if I let the phone dim the backlight all the way to dark setting (30 seconds) and hit it with bright light before it goes to sleep, LevelSight will enable the auto setting and the light will come up. This might cause a problem with the auto dim. Hmm, still playing.
Okay, I've tried playing with the turn-on trigger a bit to see if that helps. It was programmed in the dark with a flash-light and now just tested in the sun today.
Version 1.0.0.2 is a little better at turning auto-back on, but may be still be not quite "right" in my experience.
Here's an interm version to get it more usable while I try to find the better "fuzzy" logic for the trigger.
TheMostToys: How are you measuring CPU usage? I'm using TaskManager and it's showing cpu in the range I described.
DeepThought: do you have HTCSensorSDK.dll in your \Windows? I assume a Raphael rom is built mostly the same as a Fuze's so I'm not sure why else it's not running for you. It will refuse to run more than one at a time also, and soft-reset may clear up the self-lock if that's the problem. If not, I'll post up a debug app to see what's going on.
My Fuze did get all app security turned off so I may not be properly triggering the needed security dialogs.
NuShrike said:
TheMostToys: How are you measuring CPU usage? I'm using TaskManager and it's showing cpu in the range I described.
Click to expand...
Click to collapse
I'm using Memmaid. Also tried SKTools with similar results.
BTW, I'm not overly concerned with the current CPU usage, just noticed a difference and thought I'd let you know, in case it helped narrow down the problem.
Much better hysteresis with 3-point history.
Resists going dim, but will still do so in ~9 seconds if ambient stays dark.
Does not work
Hi, NuShrike, nice app, but does not work for me.
The problem is that in the full darkness the signal level from light sensor on my TP is falling under 7, but then slightly increasing till 7.26 (according to G-Light measurement) and stay constantly at 7.26 forever!
Since screen is dimmed and then lighting up to the level 3 again!
Is it possible to change the bound from 7 to 8 or make an ability to adjust it personally through some config file or command line parameter?
I suppose it might be useful to the people who have very little sensor signal in the darkness, too.
Vladimyr said:
Hi, NuShrike, nice app, but does not work for me.
The problem is that in the full darkness the signal level from light sensor on my TP is falling under 7, but then slightly increasing till 7.26 (according to G-Light measurement) and stay constantly at 7.26 forever!
Since screen is dimmed and then lighting up to the level 3 again!
Is it possible to change the bound from 7 to 8 or make an ability to adjust it personally through some config file or command line parameter?
I suppose it might be useful to the people who have very little sensor signal in the darkness, too.
Click to expand...
Click to collapse
I think your 7.26 is the calculated lumen value that G-Light may be using out of the .net SDK.
I'm not using that SDK, but basing off the raw values coming from the light sensor almost directly. I can add build some registry entries to allow some tweaking because maybe each TP reads differently.
So holding your thumb over the light-sensor and the backlight still goes back up to 3?
NuShrike said:
So holding your thumb over the light-sensor and the backlight still goes back up to 3?
Click to expand...
Click to collapse
Yes, right. Right now after my thumb covered light sensor it is dimming to 1, then after a few seconds it's back again on 3!
G-Light is deactivated this time, but when I start it showing 4.52 immediately after covering sensor, and 7.26 a few seconds later.
NuShrike said:
I can add build some registry entries to allow some tweaking...
Click to expand...
Click to collapse
Yep!!! Please! Do it!
download it and will try .
Okay, I've verified that LevelSight stops running after a full-night's sleep. I'll see if the conversion to a service will keep it running.
Vladimyr said:
Right now after my thumb covered light sensor it is dimming to 1, then after a few seconds it's back again on 3!
Click to expand...
Click to collapse
Exactly the same for me.
NuShrike said:
Okay, I've verified that LevelSight stops running after a full-night's sleep. I'll see if the conversion to a service will keep it running.
Click to expand...
Click to collapse
I look forward to the next version, thank you for your efforts!
Now converted into a Service and runs under service.exe.
Registry configuration for fuzzy low and high water marks for turning auto-backlight on/off in
HKCU/Software/Creative 'Ware/LevelSight:
low_wm: ambient level where auto-backlight turns off
high_wm: ambient level that triggers auto-backlight on
Also, light sensor I2C device driver is now directly accessed so HTCSensorSDK is no longer used nor required removing a battery/cpu sucking layer.
The problem did not exist in fact
It seems i understood the reason of program "malfunction".
It was caused that i did not read decription carefully:
NuShrike said:
When turned off, the backlight falls back to whatever you have your AC/BATT light levels set to in your control panel.
Click to expand...
Click to collapse
But i had default backlight level set on 4! Thus, when ambient illumination was dropping under level 3, auto-backligh was turned off and backlight was increased to 4
Not i set default level to 2 and all is working well!
i find it quite annoying when i HDMI mirroring to my TV, the phone itself also remain screen on. is it possible to screen off it without stop hdmi mirroring?
no - mirroring (or cloning) means "the same"
Everything you do and see are the same on both displays - you cannot select one option for the phone screen and another for the external display. They act as one and the same display, not 2 different displays. If you turn of the screen, it does so on both displays. Thats the whole idea and meaning of the term mirroring
The only exception on the O2x are when playing videos - then it actually doesnt do mirroring, but instead swithces to dual display allowing to output 2 individual signals, one to each display - and by doing so it can output the video signal in full HD resolution natively on the external display, while having the phones display showing only the controls in the lower resolution phone display.
But in everything else, the phone only does "mirroring" - and that term simply dictates both by meaning and by technical funtionality of the term that everything are the same.
What you want could offcource be achieved by not using mirroring, but rather only use single display and having an option in the menu to switch between which to display to use (completely bypassing the internal display) - but this option is not available.
Hi,
So I set up my Dex with my Note 8 last night, it all runs fine, apart from the resolution.
The monitor I have it attached to has a native res of 1680 x 1050, which the dex doesn't seem to support, as it creating a view with big black bars at the top and bottom.
I know Samsung specified a maximum of 1920 x 1080 resolution, but I assumed it would be able to easily handle LOWER resolutions.
Has anybody found this problem? And did you find a solution?
What mode do you have it in, screen mirroring or DEX...?
djrinc said:
What mode do you have it in, screen mirroring or DEX...?
Click to expand...
Click to collapse
Hi,
I have it in DEX mode.
When in Screen mirroring mode it just comes up as a thin window in the middle of the screen.
I've been thinking this may be due to the fact that the monitor i'm using doesn't have a hdmi input so i'm using a hdmi to dvi adapter.
Still lookinf for others that may have had this problem.
Could someone test the touchmove sensitivity (also known as movhysti/vitalij value) on Nexus 6? I'm planning to buy this phone and just wonderig how much it is.
For well optimized displays, you have to move your finger for just 1 pixel to detect movement, but on wrong optimized displays you may have to move your finger about 20-30 pixels, while the screen detects that you finger is moved away.
For example if it is 30, you must move 30 pixels on screen, while the screen does not detect move, and when decects it, the content on the screen will jump 30 pixels suddenly.
Download link:
https://m.downloadatoz.com//touch-move/com.tegrak.touchmove//download.html
Thanks in advance.
Hi!
First of all I recorded a video on the phenomenon, this might be more descriptive than my words: youtu.be/F_mpLNKH6S4
I have a project in which I have to use two displays: one that is the 7 inch touchscreen shipped with the Raspberry, and another one connected via HDMI.
The first display is used as a touch control-panel, the second one is used only for displaying some information.
The problem is the following: When using only the touchscreen, everything is fine, the pointer clicks exactly where my finger is. But when I attach and configure the secondary monitor, the virtual "canvas" grows to more than twice the size, and my touches on the touchscreen become highly shifted to the right.
So the touch area now wants to cover the entire virtual canvas, offsetting the pointer from the physical touch, and making it nearly impossible to precisely hit any button on the screen.
I would be glad to receive any help!