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
Moves replaygain definitions to lib/rbcodec/dsp/dsp_misc.h.
Intermediate functions in misc.c handle any adjustment and calling
the rbcodec APIs.
Change-Id: I9f03561bca9aedd13760cf19c4e19aa3c68e7024
Reviewed-on: http://gerrit.rockbox.org/140
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Adds an option under settings > general settings > system to allow
the user to have the shortcuts menu displayed instead of the
quick screen. (option is "shortcuts instead of quickscreen" in the .cfg)
Change-Id: Id679b461c40ac617629422736d1509384364084d
Reviewed-on: http://gerrit.rockbox.org/199
Reviewed-by: Marek Salaba <marek.salaba@gmail.com>
Reviewed-by: Jonathan Gordon <rockbox@jdgordon.info>
As constantly discussed in IRC, it is insane that dirfilter and party mode are defaults on the quickscreen, both have caused countless problems for users accidentaly enabling them.
This wont change anything for users who have changed their setting, only for people who left it default
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30176 a1c6a512-1295-4272-9138-f99709370657
What this also does is remove a bunch of unnecessary settings_Apply()'s from the ipod accessory code, and causes all non-skin settings to get applied each time (this includes font and langs which we wernt doing to stop disk access)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24922 a1c6a512-1295-4272-9138-f99709370657
This happens in Archos Recorder, see quick_screen_f3(), which caused crash
(FS#11037), due to top item not defined.
The commit explicitly sets items[QUICKSCREEN_TOP] to NULL, and also draws an
arrow only if the item is defined.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24871 a1c6a512-1295-4272-9138-f99709370657
This adds a 4th top item to the quickscreen. It's as configurable as the existing three items.
This patch goes along with optimisations for small screens for better displaying of all four items. 14px font is very usable on a 64px height display for example.
Left and Top items go through the items in the opposite direction, so that you can mirror a setting and toggle through it in both directions.
Default item is party mode, as it's target independant.
Flyspray: FS#9706
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22532 a1c6a512-1295-4272-9138-f99709370657
viewport_Set_defaults() will setup the given viewport with the correct "full screen" dimensions (so start at 0,0 if statusbars are disabled or 0,8 if they are enabled.)
All screens should keep the statusbar enabled, but if you really want to ignore the user setting you can disbaled it with viewportmanager_set_statusbar(false).
This commit also includes some menu/list viewport cleanups from kugel in FS#9603
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19622 a1c6a512-1295-4272-9138-f99709370657
Settings in the menus will now have a context menu where you can reset the setting and if its OK to put it on the quickscreen there will be options there to put it on it.
Also, ban last.fm and cuesheet support settings from the QS
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19013 a1c6a512-1295-4272-9138-f99709370657
Allows almost every available setting. (change the options in settings > general settings > quickscreen items)
Not every setting will work perfectly, some might need aditional handling if the change doesnt take effect straight away (let us know which are problematic so they can be fixed)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18984 a1c6a512-1295-4272-9138-f99709370657
The Icon viewport in the center will use as much width as there is room, and should never shrink so that there isnt room for the 2 arrows.
Doing it this way makes sure the arrows stay with the text instead of being stuck in the middle of the screen (which seems to happen mostly on portrait LCD's with the old version)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18943 a1c6a512-1295-4272-9138-f99709370657