Commit graph

98 commits

Author SHA1 Message Date
Colin Cross
92cdf9c372 recovery: fix building with pointer-to-int errors turned on
Use intptr_t/uintptr_t to cast between pointer and int to allow
building with -Werror=pointer-to-int-cast and
Werror=int-to-pointer-cast turned on.

Cast to char* instead of unsigned int for pointer arithmetic.

Change-Id: Ia862306fdcca53866b330e8cf726f3d62f2248a0
2014-02-05 17:34:45 -08:00
Nick Kralevich
f3819c271e am 27efc8f9: am 617d1cad: Merge "minui: do not use flexible array initialization"
* commit '27efc8f9d1711134051b45d28b2fc38bfb4c7dc6':
  minui: do not use flexible array initialization
2014-01-04 02:02:17 +00:00
synergy dev
a0ecc8c427 minui: do not use flexible array initialization
Avoiding the use of gnu extensions improves code portability

Change-Id: I441a49ce08b6ecb1d735ca453552fa92026c5016
2013-11-26 03:21:13 +00:00
Doug Zongker
58207b84d3 fix use of RGBA images in minui
Bug: 10934401
Change-Id: I471b30e5b2e877c620e4a0a524e950cddbc6d2c0
2013-09-25 16:41:07 -07:00
Todd Poynor
a5ef19fabd recovery: fix epoll events type to uint32_t
Change-Id: I5db9987102201c18821acb45d1f824e9865a1451
2013-09-17 21:58:52 +00:00
Todd Poynor
4665ede960 minui: add ev_get_epollfd() to retrieve epoll file descriptor
To allow use of ev_* functions with an external main loop.

Change-Id: If73717b64d7c455ca726b90a815a31c1edf52544
2013-09-12 12:42:34 -07:00
Todd Poynor
1fc89d4c84 minui: convert ev_*() event interface to epoll
Help enable external main loop combined with ev_*() key event processing.

Specify EPOLLWAKEUP to hold a wakelock on any event, assuming this is needed
(may need to make this optional).

Convert callback events parameter to unsigned int.

Change-Id: Ib5e09abbd7724ffd830e2cf8e25e7eb59d3aa072
2013-09-12 12:42:33 -07:00
John Reck
19877de513 am 5c4e1dac: Merge "Update libpng API usage"
* commit '5c4e1dac0bd8f31559bd50eec4343b7a17b7a976':
  Update libpng API usage
2013-08-27 09:54:05 -07:00
John Reck
94fd07ba6d Update libpng API usage
Remove usage of deprecated methods

Change-Id: I747568a2c8c0c65ecbc9a3da4bac7b9cac7708ab
2013-08-26 16:45:33 -07:00
John Reck
41329c5fd0 Fix libpng API usage
Remove usage of deprecated methods that were removed in 1.6

Change-Id: I2a669bf5201197f60adfdbe512fd729bebb74f9c
2013-08-13 13:01:29 -07:00
Doug Zongker
fafc85b4ad recovery: move log output to stdout
Recovery currently has a random mix of messages printed to stdout and
messages printed to stderr, which can make logs hard to read.  Move
everything to stdout.

Change-Id: Ie33bd4a9e1272e731302569cdec918e0534c48a6
2013-07-09 12:50:24 -07:00
Doug Zongker
6fd59ac07d more font improvements and cleanup
Get rid of the notion of a font's "ascent"; the reference point for
drawing is the top-left corner of the character box rather than the
baseline.  Add some more space between the menu entries and make the
highlight bar around the text.

Replace the default font.png with two images; the build system will
include one or the other based on the resolutions of the device.

Restore the original compiled-in bitmap font, to fall back on when
font.png can't be found (eg, in the charger binary).

Add support for bold text (when a font.png image is used).

Change-Id: I6d211a486a3636f20208502b1cd2aeae8b9f5b02
2013-03-07 13:34:24 -08:00
Doug Zongker
55a36ac1e0 recovery: change font for menus to be an image
Instead of representing the font used for menus and log messages in
the recovery binary, load it from a resource PNG image.  This allows
different devices to substitute their own font images.

Change-Id: Ib36b86db3d01298aa7ae2b62a26ca29e6ef18014
2013-03-04 16:37:44 -08:00
Doug Zongker
c560a67b12 add optional overscan compensation to recovery graphics
If your screen is a TV, it may not actually be displaying the edges of
the framebuffer.  Allow specifying an overscan percentage, and move
each edge of the framebuffer in by that percent of the width/height.
(The gr_* layer just lies to the caller about the size of the
framebuffer, telling the caller it's smaller than it really is, and
offsets all drawing commands to match.)

Change-Id: I11bb2feb39ae522bd3e957a14ebdecf3609e0fdc
2012-12-18 16:31:27 -08:00
Doug Zongker
52eeea4fa5 minor recovery fixes
- protect against missing/malformed bitmaps: fail to display them but
  don't crash.

- don't draw animation overlays until the overlay offset is computed.

- logging cleanup

Change-Id: Ieb1c155cfbb11e643000bdb5d1a57900c8757739
2012-09-04 14:28:25 -07:00
Doug Zongker
aff4dbb0ae Merge "recovery locale handling fixes" into jb-mr1-dev 2012-08-29 15:57:02 -07:00
Doug Zongker
8b240ccca1 recovery locale handling fixes
- change locale filename to "last_locale" so the main system doesn't
  delete it

- clean up some chatty logging

- update images with real German (other languages TBD)

Change-Id: I2ebb4ed4e054bd1808a3042d9efbb2c18f3a044d
2012-08-29 15:19:29 -07:00
Jean-Baptiste Queru
d52ef348d5 am bddbb5b3: Merge "Fixing trivial warnings for libminui"
* commit 'bddbb5b370d925d6e5ae62d560f5e7ad09a6ffac':
  Fixing trivial warnings for libminui
2012-08-24 13:06:43 -07:00
Doug Zongker
02ec6b88ed add simple text to recovery UI
- recovery takes a --locale argument, which will be passed by the main
  system

- the locale is saved in cache, in case the --locale argument is
  missing (eg, when recovery is started from fastboot)

- we include images that have prerendered text for many locales

- we split the background states into four (installing update,
  erasing, no command, error) so that appropriate text can be shown.

Change-Id: I731b8108e83d5ccc09a4aacfc1dbf7e86b397aaf
2012-08-22 17:26:40 -07:00
Edwin Vane
edc5d17096 Fixing trivial warnings for libminui
After fixing three trivial warnings, libminui builds cleanly with clang.

Change-Id: Id7c6228295427a5ed3c774c5f90e88a28336c1f7
Author: Edwin Vane <edwin.vane@intel.com>
Reviewed-by: Kevin P Schoedel <kevin.p.schoedel@intel.com>
2012-08-21 16:04:43 -04:00
Ed Heyl
64c5a59be9 fix conflicts with merge of jb-dev-mako
Change-Id: I2d8d18232ed02b2c4e3e661544046bf4b8039800
2012-07-26 13:57:07 -07:00
Doug Zongker
aade2e590e am dd6cd4fc: Merge "graphics: add support for "single buffering""
* commit 'dd6cd4fcc1b22df7f55e1ab3e54589939dc54179':
  graphics: add support for "single buffering"
2012-07-20 22:35:27 -07:00
Devin Kim
862d026fb2 minui: fix screen update issue
yres_virtual value is set incorrectly, causing serveral images to be skipped.
Change this value according to the number of buffers to fix this issue.

from: codeaurora.org
minui: Display the battery charging image correctly
commit: 581a4dead6b96579a13ff22e2454c1f329731679

Change-Id: I10f5d1c6cc37705f0287c7dd517082de2e11d264
Signed-off-by: Iliyan Malchev <malchev@google.com>
2012-07-20 07:01:11 -07:00
Octavian Purdila
0e34880ca2 graphics: add support for "single buffering"
When we don't have enough video memory for double buffering we
fallback to "single buffering".

Change-Id: I8bfab6d8cd6b54f0cc6c67edc41a4c37d8fbd4ba
Signed-off-by: Octavian Purdila <octavian.purdila@intel.com>
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2012-07-11 15:32:11 -07:00
Doug Zongker
9c5efe6bde allow double-quotes or not in TARGET_RECOVERY_PIXEL_FORMAT
Change-Id: I0bf22c87c51a34ee4a839c4966277fad8150bd59
2012-07-11 13:21:02 -07:00
Doug Zongker
28ce47cfa6 turn recovery into a C++ binary
Change-Id: I423a23581048d451d53eef46e5f5eac485b77555
2011-10-31 10:24:09 -07:00
Dima Zavin
441031dadc minui: add ability to synchronize current key state
If a key is down prior to the time of initialization, we would not get the
down event for the key, and thus think that the key is not pressed.

Add an interface that allows one to provide a callback to execute
on all keys that are currently down.

Change-Id: I2a4096c0cb4c7c7a9a80d207835f168a0b418413
Signed-off-by: Dima Zavin <dima@android.com>
2011-10-12 15:53:32 -07:00
Doug Zongker
f6abd409bb fix problem where the screen is sometimes all black in recovery
Change-Id: Ifa0b59e43eaf0bea9435aa4d96c5b0fc4f10fbfe
2011-09-27 13:09:48 -07:00
Dima Zavin
88e0899617 minui: events: only open input devices with EV_KEY and/or EV_REL
Change-Id: I8283d7aaa0f66d488f462cd108350cc49657a745
Signed-off-by: Dima Zavin <dima@android.com>
2011-09-02 14:55:20 -07:00
Dima Zavin
365836736c minui: events: add ability to poll on non-input fds
Change-Id: Iad52a6f2adcae0068d252d6163586f9d7b93121d
Signed-off-by: Dima Zavin <dima@android.com>
2011-09-02 14:55:20 -07:00
Dima Zavin
bc29063bf4 minui: events: refactor event acquisition
Events are now delivered through a callback mechanism during
a call to ev_dispatch(). This will allow us to extend the events
code to handle other devices/fds, not just input. One such example
is the ability to process uevents.

During initialization, we provide an input callback to ev_init
that gets called when a new event is encountered during dispatch.

ev_get has been removed and replaced with ev_get_input() helper
function that can be called from inside the callback to attempt
to get an input event.

The existing client of ev_get in recovery has been split up such
that the input thread just calls ev_wait(); ev_dispatch(); and
the input_callback handles individual events by using the
ev_get_input() helper.

Change-Id: I24d8e71bd1533876b4ab1ae751ba200fea43c049
Signed-off-by: Dima Zavin <dima@android.com>
2011-09-02 14:55:20 -07:00
Dima Zavin
4daf48a10b minui: graphics: add interface for framebuffer blank/unblank
Change-Id: I5c3ee61cbf6fadae50f10b9f2e73caceaa5048a7
Signed-off-by: Dima Zavin <dima@android.com>
2011-08-30 11:59:20 -07:00
Dima Zavin
3c7f00ede6 minui: graphics: add ability to query font size
Change-Id: I5e8f477b7b205794f2975f12e6b6010c177f6052
Signed-off-by: Dima Zavin <dima@android.com>
2011-08-30 11:58:24 -07:00
Michael Ward
3dbe66b71d Get the correct line_length.
Set the BPP and other fields and write it back, so the line_length comes back correctly.

Change-Id: I85e4e8223c79b9394ae1fb609b3026de62027ab8
2011-06-24 11:06:01 -07:00
Michael Ward
9d1bcdf7b8 Graphics can handle stride != xres, and BGRA support.
Change-Id: Ifee94ac08028e62a40241a089ac7c36346fea3a3
2011-06-22 15:04:00 -07:00
Doug Zongker
68189f2994 allow paletted RGB images in recovery
Recovery assumes any paletted images are in RGBA format.  Make it
handle both RGB and RGBA paletted images.

Bug: 3514884
Change-Id: I517cd571aa3f434dacacc33a774236260aec20ef
2011-03-04 17:13:16 -08:00
Doug Zongker
6809c51f8d make recovery UI images more general; allow for installation animation
Change some of the UI parameters (# of indeterminate progress bar
frames, fps, etc.) from #defined constants to variables that can be
set by the device-specific recovery_ui code (via a new function).

Support overlaying different images on top of the base installation
icon to animate it.  Make the FPS control more accurate.

Change-Id: I9268b389b7ea6b3ed9e0c7eae37baf4272e60edd
2011-03-01 14:04:34 -08:00
Doug Zongker
be3e6f13b8 option to allow recovery to use 24-bit graphics in UI
Add "RECOVERY_24_BIT := true" to the device's BoardConfig.mk to use
24-bit framebuffers in the recovery ui.

Change-Id: Iaede138bf7870becf237f12f1c0e49c9ff82d007
2011-01-13 16:43:44 -08:00
Doug Zongker
51266d1397 clear recovery framebuffers on allocation; display icon right after ui_init
Make ui_init() clear the framebuffer memory it maps in so the user
isn't treated to a visible flash of random bits on recovery startup.
Call ui_set_background() (to show the installing icon) right after
ui_init() to display something while device_recovery_start() is
working (which can take a second or two on some devices).

Bug: 3145331
Change-Id: I11e7859fab5847370ea4f4932c3fb1558af26c5d
2010-11-01 10:19:12 -07:00
Doug Zongker
d93a25459c simplify construction of the recovery progress bar
Instead of six separate images for the left end, right end, and tiled
center portion of the full and empty progress bars, just use two
images:  a full bar and an empty bar.  Draw the left side of the full
bar and the right side of the empty one, moving the boundary rightward
to "fill" the bar.  This makes recovery trivially smaller, and allows
fancier images to be used as progress bars.

Support paletted PNG images as resources.
2009-10-08 16:32:58 -07:00
Doug Zongker
ddd6a2865d split out device-specific recovery UI code into vendor directories
Take some device-specific details of the recovery UI (eg, what keys to
press to bring up the interface and perform actions, exact text of the
menu, etc.) and split them out into separate C functions.  Arrange to
take implementations of those functions from the appropriate vendor
directory at build time.  Provide a default implementation in case no
vendor-specific one is available.
2009-06-11 14:50:33 -07:00
Rebecca Schultz Zavin
573fd7b68b Force the fb into 16 bpp mode in case the hw has some other default.
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
2009-06-05 16:58:36 -07:00
Doug Zongker
19faefad05 AI 143289: am: CL 143128 Use PNG instead of BMP for recovery image icons. This saves
about 60k from the recovery and system images.
  Original author: dougz
  Merged from: //branches/donutburger/...

Automated import of CL 143289
2009-03-27 17:06:24 -07:00
The Android Open Source Project
c24a8e688a auto import from //depot/cupcake/@135843 2009-03-03 19:28:42 -08:00
The Android Open Source Project
ffb48f64fe auto import from //depot/cupcake/@135843 2009-03-03 18:28:14 -08:00
The Android Open Source Project
8b7334b3c2 auto import from //branches/cupcake/...@130745 2009-02-10 15:43:56 -08:00
The Android Open Source Project
ff3d93821e Code drop from //branches/cupcake/...@124589 2008-12-17 18:03:49 -08:00
The Android Open Source Project
23580ca27a Initial Contribution 2008-10-21 07:00:00 -07:00