Commit graph

47 commits

Author SHA1 Message Date
William Wilgus
3237ae4a4f LCD core move buf ptr and address look up function viewport struct
I'm currently running up against the limitations of the lcd_draw functions
I want these functions to be able to be used on any size buffer not
just buffers with a stride matching the underlying device

[DONE] allow the framebuffer to be decoupled from the device framebuffer
[DONE need examples] allow for some simple blit like transformations
[DONE] remove the device framebuffer from the plugin api
[DONE}ditto remote framebuffer
[DONE] remove _viewport_get_framebuffer you can call struct *vp = lcd_set_viewport(NULL) and vp->buffer->fb_ptr

while remote lcds may compile (and work in the sim) its not been tested on targets

[FIXED] backdrops need work to be screen agnostic

[FIXED] screen statusbar is not being combined into the main viewport correctly yet

[FIXED] screen elements are displayed incorrectly  after switch to void*

[FIXED] core didn't restore proper viewport on splash etc.

[NEEDS TESTING] remote lcd garbled data

[FIXED] osd lib garbled screen on bmp_part

[FIXED] grey_set_vp needs to return old viewport like lcd_set_viewport

[FIXED] Viewport update now handles viewports with differing buffers/strides by copying to the main buffer

[FIXED] splash on top of WPS leaves old framebuffer data (doesn't redraw)
[UPDATE] refined this a bit more to have clear_viewport set the clean bit and have skin_render do its own screen clear
scrolling viewports no longer trigger wps refresh
also fixed a bug where guisyncyesno was displaying and then disappearing

[ADDED!] New LCD macros that allow you to create properly size frame buffers in you desired size without wasting bytes
(LCD_ and LCD_REMOTE_)
LCD_STRIDE(w, h) same as STRIDE_MAIN
LCD_FBSTRIDE(w, h) returns target specific stride for a buffer W x H
LCD_NBELEMS(w, h) returns the number of fb_data sized elemenst needed for a buffer W x H
LCD_NATIVE_STRIDE(s) conversion between rockbox native vertical and lcd native stride (2bitH)
test_viewports.c has an example of usage

[FIXED!!] 2bit targets don't respect non-native strides
[FIXED] Few define snags

Change-Id: I0d04c3834e464eca84a5a715743a297a0cefd0af
2020-10-26 12:28:48 -04:00
Solomon Peachy
b94db707fb Fix more warnings.
Change-Id: Ib3a9fc622a46b1fc72e94dcbc6d29d2e430cd81b
2020-10-13 15:48:31 -04:00
Jonathan Gordon
b37e6bc8c1 lcd drivers: Convert lcd_[remote_]framebuffer to a pointer
Change all lcd drivers to using a pointer to the static framebuffer
instead of directly accessing the static array. This will let us
later do fun things like dynamic framebuffer sizes (RaaA) or
ability to use different buffers for different layers (dynamic
skin backdrops!)

Change-Id: I0a4d58a9d7b55e6c932131b929e5d4c9f9414b06
2012-02-28 11:44:59 +11:00
Rafaël Carré
95cf63b294 button-target.h : move prototypes to button.h
no need to define BUTTON_REMOTE anymore

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31620 a1c6a512-1295-4272-9138-f99709370657
2012-01-08 00:07:19 +00:00
Thomas Martitz
c1bd9b0361 Rework powermgmt to enable code re-use on appliation and sims.
* Introduce CONFIG_BATTERY_MEASURE define, to allow targets (application)
to break powermgmt.c's assumption about the ability to read battery voltage.
There's now additionally percentage (android) and remaining time measure
(maemo). No measure at all also works (sdl app). If voltage can't be measured,
then battery_level() is king and it'll be used for power_history and runtime
estimation.

* Implement target's API in the simulator, i.e. _battery_voltage(), so it
doesn't need to implement it's own powermgmt.c and other stubs. Now
the sim behaves much more like a native target, although it still
changes the simulated battery voltage quickly,

* Other changes include include renaming battery_adc_voltage() to
_battery_voltage(), for consistency with the new target functions and
making some of the apps code aware that voltage and runtime estimation
is not always available.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31548 a1c6a512-1295-4272-9138-f99709370657
2012-01-03 23:44:38 +00:00
Michael Sevakis
d4800fa385 Coldfire: Fix the modification of IMR. Interrupts must be masked at the core level at at least the level of the interrupt being masked. Not following the datasheet and relying strictly on and/or_l causes unhandled 'Levelx' exceptions (showing itself quite often in PCM mixer work which more greatly stresses PCM lockout).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30009 a1c6a512-1295-4272-9138-f99709370657
2011-06-17 03:09:47 +00:00
Bertrik Sikken
9c33dca647 Fix tabs in .c and .h files in firmware/
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29832 a1c6a512-1295-4272-9138-f99709370657
2011-05-08 11:37:18 +00:00
Marcin Bukat
123bebeada MPIO: move files a bit in preparation for HD300 port
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28567 a1c6a512-1295-4272-9138-f99709370657
2010-11-12 21:52:29 +00:00
Marcin Bukat
59ba8fea22 MPIO HD200: rename button defines to adhere how they are labeled on the device.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28443 a1c6a512-1295-4272-9138-f99709370657
2010-11-02 10:44:34 +00:00
Marcin Bukat
082c7d3c6b Set svn properties
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28326 a1c6a512-1295-4272-9138-f99709370657
2010-10-22 12:28:43 +00:00
Marcin Bukat
38edf679f2 MPIO HD200 - squash long standing bug in bootloader which prevented booting OF if doing coldstart on battery only.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28324 a1c6a512-1295-4272-9138-f99709370657
2010-10-22 12:11:58 +00:00
Marcin Bukat
a86b08e4fa HD200 - Use DMA transfers in lcd_update() and lcd_update_rect(). Gives 12-26% speedup.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27757 a1c6a512-1295-4272-9138-f99709370657
2010-08-08 18:41:19 +00:00
Marcin Bukat
59ded69c96 HD200: Add timeout in usb_enable(false) to prevent infinite loop when something goes wrong.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27468 a1c6a512-1295-4272-9138-f99709370657
2010-07-17 11:38:47 +00:00
Marcin Bukat
5b5275a6c9 HD200: Change move.w -> move.b in lcd-as-hd200.S when doing transfers to lcd to explicity show that lcd bus is 8bits wide.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27445 a1c6a512-1295-4272-9138-f99709370657
2010-07-16 07:24:08 +00:00
Jens Arnold
701dafdf30 MPIO HD200 grey blitting: Use line reads for the pixel values as well. Almost doubles the ISR speed (47% -> 24% load), giving 42% faster greylib framebuffer updates.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27444 a1c6a512-1295-4272-9138-f99709370657
2010-07-16 07:08:39 +00:00
Marcin Bukat
d367ab41e3 HD200 - calibrate battery indicator based on measurements and battery_benches
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27350 a1c6a512-1295-4272-9138-f99709370657
2010-07-08 16:53:09 +00:00
Marcin Bukat
60d8cff4f6 HD200 - fix misleading comment in system-hd200.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27328 a1c6a512-1295-4272-9138-f99709370657
2010-07-07 07:09:53 +00:00
Marcin Bukat
f99e4fb3bf HD200 - turn off charging IC by default
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27315 a1c6a512-1295-4272-9138-f99709370657
2010-07-06 17:30:05 +00:00
Marcin Bukat
3cdee0f09b HD200 - Fix GPIO setup in button_init_device()- this change fixes sound output broken in r27258. Slightly adjust main buttons reading routine so key reading is more reliable with and without remote present
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27307 a1c6a512-1295-4272-9138-f99709370657
2010-07-06 14:44:41 +00:00
Marcin Bukat
7c908bbeda HD200 - more work on remote handling
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27306 a1c6a512-1295-4272-9138-f99709370657
2010-07-06 14:43:58 +00:00
Marcin Bukat
6e40988803 HD200 - Increase ADC clock when boosted. Scan all 4 ADC channels during system tick
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27262 a1c6a512-1295-4272-9138-f99709370657
2010-07-03 21:44:49 +00:00
Marcin Bukat
8d3591ae80 HD200 - add support for remote in button_read_device()
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27258 a1c6a512-1295-4272-9138-f99709370657
2010-07-03 20:20:42 +00:00
Marcin Bukat
a316ebe65b HD200 - use line transfers in lcd_grey_data. This gives ~25% speedup.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26856 a1c6a512-1295-4272-9138-f99709370657
2010-06-15 10:41:43 +00:00
Marcin Bukat
cc6747ca5b HD200 - make USB bridge handling more correct
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26843 a1c6a512-1295-4272-9138-f99709370657
2010-06-14 10:42:41 +00:00
Jens Arnold
f053b0d606 Port greylib blitting optimisation to MPIO HD200. ISR speedup is ~10%; further speedup should be possible by using line transfers for accessing the greylib buffers. Thanks to Marcin Bukat for testing.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26793 a1c6a512-1295-4272-9138-f99709370657
2010-06-11 19:53:17 +00:00
Marcin Bukat
2d788744ae HD200 - clean up usb related functions
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26768 a1c6a512-1295-4272-9138-f99709370657
2010-06-11 11:41:33 +00:00
Marcin Bukat
2f7bd4d993 HD200 - power_init() rework based on latest power consumption measurements
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26767 a1c6a512-1295-4272-9138-f99709370657
2010-06-11 11:41:29 +00:00
Marcin Bukat
b45a2d433b HD200 - small cleanup in button_init_device()
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26766 a1c6a512-1295-4272-9138-f99709370657
2010-06-11 11:41:24 +00:00
Marcin Bukat
12fa759aad HD200 - fix lcd power save command (not used currently)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26684 a1c6a512-1295-4272-9138-f99709370657
2010-06-08 09:44:17 +00:00
Marcin Bukat
6b5fc853b6 fix comments
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26189 a1c6a512-1295-4272-9138-f99709370657
2010-05-20 12:12:27 +00:00
Marcin Bukat
f28187074b HD200 - increase sligtly wait states for lcd. This removes clicks in playback and lcd updates are fast anyway
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26188 a1c6a512-1295-4272-9138-f99709370657
2010-05-20 12:05:24 +00:00
Marcin Bukat
2d0d08220f HD200 - fix button readings afrer PLL settings change
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26186 a1c6a512-1295-4272-9138-f99709370657
2010-05-20 10:13:14 +00:00
Marcin Bukat
1102edb8f6 HD200 - fix PLL settings. This fixes looong standing bug heavily affecting performance
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26185 a1c6a512-1295-4272-9138-f99709370657
2010-05-20 08:24:04 +00:00
Marcin Bukat
38136345f6 HD200 - lm339 response time is at best 300 ns so adcclk can not be too high
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26158 a1c6a512-1295-4272-9138-f99709370657
2010-05-19 09:29:20 +00:00
Marcin Bukat
b627106392 HD200 - change how adc is scanned (inspired by amiconn)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26138 a1c6a512-1295-4272-9138-f99709370657
2010-05-18 12:29:21 +00:00
Marcin Bukat
1a25eddaa7 HD200 - decrease wait states for lcd when boosted
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26103 a1c6a512-1295-4272-9138-f99709370657
2010-05-17 12:36:33 +00:00
Marcin Bukat
cce9c17902 HD200 minor lcd asm routines adjustments
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26102 a1c6a512-1295-4272-9138-f99709370657
2010-05-17 12:34:59 +00:00
Marcin Bukat
4fad74e6f6 HD200 - Remove checks if driver is initialized. lcd_init_device() is always called first.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25928 a1c6a512-1295-4272-9138-f99709370657
2010-05-10 12:36:58 +00:00
Marcin Bukat
45c2a6d314 HD200 - Reduce wait states when writing to lcd.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25927 a1c6a512-1295-4272-9138-f99709370657
2010-05-10 12:36:27 +00:00
Marcin Bukat
684c70bac5 HD200 - fix stupid bug in lcd_grey_data
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25842 a1c6a512-1295-4272-9138-f99709370657
2010-05-06 14:33:19 +00:00
Marcin Bukat
6a2b516f48 HD200 - fix random partition corruption on USB unplug (hopefully)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25807 a1c6a512-1295-4272-9138-f99709370657
2010-05-04 12:25:57 +00:00
Marcin Bukat
bccdcf2003 HD200 - move adc channel variable to iram as it is used in ISR
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25805 a1c6a512-1295-4272-9138-f99709370657
2010-05-04 11:15:36 +00:00
Marcin Bukat
5ad4d138d7 HD200 - fix backlight flashes during startup
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25804 a1c6a512-1295-4272-9138-f99709370657
2010-05-04 11:14:59 +00:00
Marcin Bukat
88baa4d4c7 HD200 - implement blit functions
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25767 a1c6a512-1295-4272-9138-f99709370657
2010-04-30 14:13:52 +00:00
Marcin Bukat
572ac53359 HD200 - small fix in backlight code
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25766 a1c6a512-1295-4272-9138-f99709370657
2010-04-30 13:59:00 +00:00
Marcin Bukat
2a50270e44 HD200 - remove moving average filtering of ADC readouts
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25765 a1c6a512-1295-4272-9138-f99709370657
2010-04-30 12:42:51 +00:00
Marcin Bukat
28d54c6016 Add MPIO HD200 port - new files
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25725 a1c6a512-1295-4272-9138-f99709370657
2010-04-26 21:40:16 +00:00