Commit graph

15135 commits

Author SHA1 Message Date
Thomas Martitz
bc9a45b05f icons: Remove automatic left padding if x == 0.
Since x is viewport-relative the icon isn't necessarily placed at the physical
display boundaries so that the padding isn't always useful. In fact it does
more harm if one wants to place an icon exactly at 0 of a (non-default)
viewport.

Calling code looks still mostly fine. I've only modified list drawer to include
the padding in the call-site.

Change-Id: I6b16b3d4377c3553234667b79837adde10e0edf2
2014-01-07 11:36:00 +01:00
Thomas Martitz
76476751d7 lcd-charcell: Correct get_icon_width() stub, everything is 1 char wide.
Change-Id: I2a76c306be8f11827cb8d1f12641d710f49274aa
2014-01-07 11:36:00 +01:00
Thomas Martitz
acee675a5e lcd-charcell: Add set_drawmode() wrapper to multi-screen API.
Change-Id: Idb6477aca8b19cb346ba2c2f5b91074e4679b0dd
2014-01-07 11:36:00 +01:00
Thomas Martitz
77836e5736 lcd-16bit: Introduce lcd_gradient_fillrect_part().
It is similar to lcd_gradient_fillrect(), except that it only draws a part
of the complete gradient. This can be used to draw only the bottom half
of a full gradient.

Change-Id: Ib47cc5237f6966e35ba07988bddbb00fd97adf96
2014-01-07 11:36:00 +01:00
Thomas Martitz
6630958533 lcd-common/scroll_engine: Introduce lcd_putsxy_scroll_func().
This function supports installing a custom scroll callback. This will be
called when the scrollengine redraws the line. It allows to draw extended
styles (or anything your can possible imagine) along with the text.

It is also strictly pixel-based, the first pixel-based function that supports
scrolling.

Change-Id: I57f81ac7b3d08b877aea4cb8afa882f175ebcdfc
2014-01-07 11:36:00 +01:00
Thomas Martitz
2f4a94189d bmp.c: Undo debug stuff that got in by accident.
Change-Id: Ic37658ab8d81405e28a4097d38785900fd0951cd
2014-01-05 19:37:48 +01:00
Thomas Martitz
281d1fadb3 Do not include kernel.h in system.h.
system.h doesn't need it on its own and this change makes it less
dependant on Rockbox internals.

Change-Id: I4e1e4108a52a7b599627a829204eb82b392fc6d6
2014-01-05 19:35:23 +01:00
Thomas Martitz
dd7b141736 apps/bitmaps: Replace pseudo-native default icons with mono ones.
The old icons looked exactly like the mono version, and all >1 bpp drivers
support rendering mono bitmaps. Therefore a mono bitmap can be used which
requires less ram.

This affects only the builtin icons, not the ones used by cabbiev2.

Change-Id: I3b02b5b04fe8b4bcc69e83310871254d336b648a
2014-01-05 19:35:23 +01:00
PurlingNayuki
7602f10423 Fix Chinese translation and missing "Attack Time" string
Change-Id: Ia4ae29bfe8739da93369a497a55680c7d445f730
Reviewed-on: http://gerrit.rockbox.org/700
Reviewed-by: Purling Nayuki <cyq.yzfl@gmail.com>
Tested: Purling Nayuki <cyq.yzfl@gmail.com>
Reviewed-by: Bertrik Sikken <bertrik@sikken.nl>
2014-01-05 15:47:34 +01:00
Thomas Martitz
042d8bf9eb Revert "Fix data abort introduced by ef92ed4a."
This reverts commit 61a096499b.

The original issue was caused by a new structure member which caused
bmp_args::buf to be unaligned for 2-byte reads. Enforcing that alignment
should be the faster fix. Aligning to cache (while at it) should
improve bmp loading times even more.

Change-Id: I58a2caaf08c0ce46e2fb9666de628a30a36ea5f4
2014-01-05 01:19:44 +01:00
Frank Gevaerts
61a096499b Fix data abort introduced by ef92ed4a.
Change-Id: I3e1bf2434238835d2d2b8f5f2a8f44b0df97b33d
2014-01-04 22:15:02 +01:00
Jonathan Gordon
124c969f49 Fix build error
Change-Id: I32e06cc41c70e225622c87539feaca5f92131065
2013-12-30 23:35:23 +11:00
Jonathan Gordon
00b3fd2a66 skin_engine: unload skin backdrops when the skins are reset
Hopefully this will fix various skin related bugs which happen
on usb plug/unplug!

Change-Id: Ie1d8378fca38dae02e42ed02a68bdb3663651b4d
2013-12-29 18:00:38 +11:00
Thomas Martitz
a56837b46d recording: Fix sloppy return value check. This caused an OOM panic.
Change-Id: I30bbc5623d81ad7cbbee52a439fb5909af2761b7
2013-12-24 10:20:13 +01:00
Thomas Martitz
5827e41904 hwcodec: core_alloc_maximum() returned 0 bytes if talk.c controls the audio buffer.
On hwcodec talk.c has the entire audio buffer (not just parts of it), therefore
it must give up everything and cannot count on core_alloc_maximum() to return
the remaining space. This is equivalent to it was handled before 22e802e.

You could probaby do smarter and shrink for example the .talk clip buffer
but is it really worth it?

Change-Id: Idc3431c59fb41b05338559c615093358c5d8ed9b
2013-12-24 01:16:10 +01:00
Thomas Martitz
10d71bb910 Fix more reds.
Change-Id: I13e9a0398efe0dab222f2a9c4f5d9295570e4dfd
2013-12-23 13:02:59 +01:00
Thomas Martitz
a4d1849e24 Fix yellow.
Change-Id: Ib46e4d0896de4227a508abf5806c00ec3d59db51
2013-12-23 12:54:36 +01:00
Thomas Martitz
ee7c13514e hwcodec: Need to grab audio buffer before recording.
This was missed in 22e802e because I didn't realize that hwcodec doesn't
compile pcm_record.c.

Change-Id: I48cd4c2beec0a3d01caf06f2a2ced98be22a3673
2013-12-23 12:53:06 +01:00
Thomas Martitz
ec6258f936 fix some reds.
Change-Id: Iecb1305dbd1519434e0f476d2199e728b96091f9
2013-12-23 12:35:52 +01:00
Thomas Martitz
22e802e800 playback,talk: Share audiobuffer via core_alloc_maximum().
This fixes the radioart crash that was the result of buffering.c working
on a freed buffer at the same time as buflib (radioart uses buffering.c for the
images). With this change the buffer is owned by buflib exclusively so this
cannot happen.

As a result, audio_get_buffer() doesn't exist anymore. Callers should call
core_alloc_maximum() directly. This buffer needs to be protected as usual
against movement if necessary (previously it was not protected at all which
cased the radioart crash), To get most of it they can adjust the willingness of
the talk engine to give its buffer away (at the expense of disabling voice
interface) with the new talk_buffer_set_policy() function.

Change-Id: I52123012208d04967876a304451d634e2bef3a33
2013-12-23 12:17:38 +01:00
Thomas Martitz
9f878b105d Fix errors introduced by a62bd92.
Change-Id: I3f65ca5347d08e1b77196c73ccb3a0951f14c850
2013-12-22 21:05:54 +01:00
Thomas Martitz
a62bd9282e Fix warning and re-order code a bit.
Change-Id: I1d733b3d0bd17cc541218f9a2b7712712ad314dd
2013-12-22 20:15:03 +01:00
Thomas Martitz
ef92ed4a6a Support GIMP bmp files.
Change-Id: I7380ceeaf696b67e1641d24e7b932e3d74770932
2013-12-22 19:55:55 +01:00
Ryan Billing
d0918b98fa DSP Compressor: Sidechain, Exponential Atk/Rls
This is an improvement to the current compressor which I have added
to my own Sansa Fuze V2 build.  I am submitting here in case others
find it interesting.

Features added to the existing compressor:
Attack, Look-ahead, Sidechain Filtering.
Exponential attack and release characteristic response.

Benefits from adding missing features:
Attack:
Preserve perceived "brightness" of tone by letting onset transients
come through at a higher level than the rest of the compressed program
material.

Look-ahead:
With Attack comes clipping on the leading several cycles of a transient
onset.  With look-ahead function, this can be pre-emptively mitigated with
a slower gain change (less distortion).  Look-ahead limiting is implemented
to prevent clipping while keeping gain change ramp to an interval near 3ms
instead of instant attack.

The existing compressor implementation distorts the leading edge of a
transient by causing instant gain change, resulting in log() distortion.
This sounds "woofy" to me.

Exponential Attack/Release:
eMore natural sounding.  On attack, this is a true straight line of 10dB per
attack interval.  Release is a little different, however, sounds natural as
an analog compressor.

Sidechain Filtering:
Mild high-pass filter reduces response to low frequency onsets.  For example,
a hard kick drum is less likely to make the whole of the program material
appear to fade in and out.  Combined with a moderate attack time, such a
transient will ride through with minimal audible artifact.

Overall these changes make dynamic music sound more "open", more natural.  The
goal of a compressor is to make dyanamic music sound louder without necessarily
sounding as though it has been compressed.  I believe these changes come closer to this goal.

Enjoy.  If not, I am enjoying it

Change-Id: I664eace546c364b815b4dc9ed4a72849231a0eb2
Reviewed-on: http://gerrit.rockbox.org/626
Tested: Purling Nayuki <cyq.yzfl@gmail.com>
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2013-12-15 22:24:08 +01:00
Andrew Ryabinin
5b5f0755d6 Introduce IHIFI760/960 targets.
Change-Id: Ie36e48742c0ed9aa3fd6f49aa034a11d2492327c
2013-12-16 00:45:18 +04:00
Thomas Martitz
ed5b853c18 Fix more reds.
Change-Id: Ie62386a8f3e9986381f96eb83abb69bfc42b42e1
2013-12-15 00:47:21 +01:00
Thomas Martitz
1fc19042f7 Bump plugin api and sort.
Change-Id: I8b8ab58abbd40726326b8b47bd6bbb07580b5ce4
2013-12-14 23:15:45 +01:00
Thomas Martitz
50eb528bc1 scroll_engine: Major rework to support pixel-based scrolling and scroll callbacks.
Much of the scrolling work is moved from lcd-bitmap-common to lcd-scroll.c,
a small scroll callback routine remains. This callback can potentially be
overridden by more extensive scrollers.

The callback also gets fed with pixel-based scrolling information, which
finally removes the strict line-based nature of the scroll engine. Along with
this is the change from scroll_stop_viewport_line() to scroll_stop_viewport_rect()
which works on a pixel-based rectangle instead of lines.

The ultimate goal is to move most of the scroll work to apps, which can
much better decide which line decorations to apply etc. This work is laying
the ground work.

Change-Id: I3b2885cf7d8696ddd9253d5a9a73318d3d42831a
2013-12-14 23:11:31 +01:00
Thomas Martitz
1c5d0b41ee scroll_engine: Rename scroll_stop* functions to be more consistent with the lcd api.
Change-Id: I8ada10b96bfb628cca0331689e8b936ae47c7e1c
2013-12-14 23:11:30 +01:00
Lorenzo Miori
1deab73980 Initial commit for the YP-Z5 port
The port uses the imx233 soc, it's a STMP3650 based Samsung player

Change-Id: I50b6d7e77fd292fab5ed26de87853cd5aaf9eaa4
Reviewed-on: http://gerrit.rockbox.org/490
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2013-12-02 20:48:21 +01:00
Amaury Pouly
193753aa1f Introduce volume_{present,removable} and fix invalid calls in apps/
The code was trying to probe for volume presence by calling drive layer
with volume index. It is a miracle it get unnoticed so far. Introduce
proper volume probing using the vol->drive map in the disk layer.

Change-Id: I463a5bcc8170f007cad049536094207d2ba3c6fc
Reviewed-on: http://gerrit.rockbox.org/669
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2013-11-20 21:34:04 +01:00
Amaury Pouly
262479173b sonynwz: rework keymap based on lebellium's work and enable volume in list
Change-Id: Ieb015e78d1c0aa74c61591e442bfdf5f883f3811
2013-11-20 13:40:16 +00:00
Benjamin Brown
8b06039541 Fix typo in apps/plugins/lib/pluginlib_actions.c
BUTOTN_REL should be BUTTON_REL

Change-Id: I5b4aaeb87f31c5c0779656651b074512e22bcc4e
Reviewed-on: http://gerrit.rockbox.org/663
Reviewed-by: Benjamin Brown <foolshperson@gmail.com>
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
2013-11-17 21:27:18 +01:00
Amaury Pouly
e387a746d2 sonynwz: add pluginlib keymap
Change-Id: I7753fb8d9a5f9e2e95dfaa03ce8d2469ae0bd74a
2013-11-14 16:44:16 +00:00
Amaury Pouly
42452d0fbd sonynwz: add battery_bench keymap
Change-Id: I7be9131356b8655f2dbb90f203b44b2225257450
2013-11-14 16:43:56 +00:00
Ralf Ertzinger
b170c73f92 Updated IAP commands.
Originally written and uploaded by Lalufu (Ralf Ertzinger) in Feb 2012.
They have been condensed into a single patch and some further additions
by Andy Potter.

Currently includes Authentication V2 support from iPod to Accessory,
RF/BlueTooth transmitter support, selecting a playlist and selecting a
track from the current playlist. Does not support uploading Album Art
or podcasts. Has been tested on the following iPods,
4th Gen Grayscale, 4th Gen Color/Photo, Mini 2nd Gen, Nano 1st Gen and
Video 5.5Gen.

Change-Id: Ie8fc098361844132f0228ecbe3c48da948726f5e
Co-Authored by: Andy Potter <liveboxandy@gmail.com>
Reviewed-on: http://gerrit.rockbox.org/533
Reviewed-by: Frank Gevaerts <frank@gevaerts.be>
2013-11-10 18:41:24 +01:00
Andrew Ryabinin
500b137308 playback: Fix build with LOGF_ENABLE.
Change-Id: I01154d4a9441f44852748c910c267419f7f4149e
2013-11-10 15:36:18 +04:00
Amaury Pouly
d3bc64833c Initial commit for the Creative ZEN Mozaic
Change-Id: Ib65aad9f5de37e514047955cad7ca40dc0af4f74
2013-10-22 00:34:44 +02:00
Amaury Pouly
b1a6a24ed7 debug_menu: add tea5760uk tuner debug info
Change-Id: I18ee5374a312335498777713c20f5de9014dacf3
2013-10-21 23:50:55 +02:00
Amaury Pouly
7ba802b1b4 Add missing keymap
Change-Id: Ica8738905e7666f4e76621a84fa9ee18c7c2ac6e
2013-09-25 16:48:56 +02:00
Amaury Pouly
9392d036c4 Initial commit for the sony NWZ-E360 and NWZ-E370
Change-Id: I52d21e136a98eaf481615d641795cf7ecf325465
2013-09-25 14:31:39 +02:00
Amaury Pouly
f67d9bd14f apps: factor depth3d capability in features.txt
Currently the 3 possible sources for this setting are: imx233, wm8750, wm8978

Change-Id: I4f2b23dbe203f2b357a264b77f801c7b4c28bdee
2013-09-25 14:31:39 +02:00
Jean-Louis Biasini
c40a8219ac fuze+/keymaps: Add action_std_cancel to bookmark and recording screen
This fix FS#12902 and prevent same bug in bookmark screen.
thanks to Julian67 for reporting

Change-Id: Ifd2a383fd0f24aa3e242a8c72668de85526f0a70
Reviewed-on: http://gerrit.rockbox.org/622
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2013-09-20 10:56:38 +02:00
Jean-Louis Biasini
4f3f639c73 fuze+/keymaps: define Cancel over Menu in EQ context
This fix FS#12895, Menu has no effect in EQ context anyway...

Change-Id: I31f8e1fdfea1479efd75cb411125e08eafade403
Reviewed-on: http://gerrit.rockbox.org/620
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2013-09-18 12:40:47 +02:00
Jonathan Gordon
acf3af4ae3 radio: fix FS#12747
Change-Id: I57448a29d986cca0535c47c0ebfa2f4f3846a936
Reviewed-on: http://gerrit.rockbox.org/614
Reviewed-by: Dominik Riebeling <Dominik.Riebeling@gmail.com>
Tested-by: Dominik Riebeling <Dominik.Riebeling@gmail.com>
2013-09-09 18:22:07 +02:00
Jean-Louis Biasini
df6eb82f51 touch devices: Disable touch on softlock.
Target that have a touchpad/touchscreen should disable it while
being locked (In order to avoid LCD to drain battery power due to
"key locked" constant reporting messages. If they a have a keylock
button this was already handled at driver level. If not (e.g. fuze+),
they will have to implement a switch at driver level that action.c
can operate on softlock.
This patch does the following for any target having a touchpad
or a touchscreen and no HAS_BUTTON_HOLD (ie any softlock target)
1) it implements the code to call button_enable_touch(bool en) in
action.c.
2) button_enable_touch is implemented in button.c and call
either touchpad_enable or touchscreen_enable
3) those two function are implemented respectively in touchscreen.c
and a new touchpad.c file. They provide a generic way to silents touch's
device and call a function at driver level where target specific code
can be implemented if possible/needed (for power saving for instance).
Those function name are touchpad_enable_device and touchscreen_enable_device
4) we implement an empty function at driver level of targets that need it
to have them still being able to compiled.

Change-Id: I9ead78a25bd33466a8533f5b9f259b395cb5ce49
Reviewed-on: http://gerrit.rockbox.org/569
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2013-09-05 20:02:07 +02:00
Jean-Louis Biasini
ef2dd06d5e fuze+/keymaps: Implement the ACTION_STD_MENU
ACTION_STD_MENU seems to be an important keymaps. We map it to
BUTTON_BACK and keep cancel on the BUTTON_LEFT

Change-Id: Iea4a1e4671faee376ad4200b08ca82c2d00d1ff9
Reviewed-on: http://gerrit.rockbox.org/571
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2013-09-05 20:01:33 +02:00
Amaury Pouly
74761b70ac zenxfi2: use sensible keymap and simulator keys
Change-Id: Icd718b34924e1d228bbd6662617152646ef0c3a5
2013-08-28 13:06:46 +02:00
Marcin Bukat
a2a2e14e0d lua: Switch memory allocator from dl to tlsf
Instead of providing yet another memory allocator implementation
use tlsf and simply link tlsf library.

Another small improvement is to *grow* memory pool by grabbing
audiobuffer instead of just switching to use audiobuf exclusively.
Tested with simple lua 'memory eater' script.

This patch extends tlsf lib slightly. You can provide
void *get_new_area(size_t * size) function which will override
weak dummy implementation provided in lib itself. This allows to
automaticaly initialize memory pool as well as grow memory
pool if needed (for example grab audiobuffer when pluginbuffer
is exhaused).

Change-Id: I841af6b6b5bbbf546c14cbf139a7723fbb982f1b
2013-08-26 09:42:47 +02:00
Nils Wallménius
b2e80edd16 Change CODECFLAGS to a "simply-expanded" var to give the individual
codec makefiles larger freedom in what they can do to it.
Use this in libopus to prepend the libopus searchpaths to
CODECFLAGS so that its internal config.h will be picked up before
our global one. This avoids having to do a s/config.h/opus_config.h/
when syncing which will be handy soon.

Change-Id: I018d729aa0c8300fa3149f22a5a8c5668b339dfa
Reviewed-on: http://gerrit.rockbox.org/496
Reviewed-by: Nils Wallménius <nils@rockbox.org>
2013-08-23 18:34:30 +02:00