Commit graph

32044 commits

Author SHA1 Message Date
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
d2ae832eef lcd: Fix scrolling.
Change-Id: I1f8d3d67b224c1c531438b94e3aab640b76770be
2013-12-23 20:25:34 +01:00
Jack Whitham
ca423ed0e3 Proposed fix for FS#12878: Zero-length embedded album art prevents mp3 playback
see http://www.rockbox.org/tracker/task/12878

Change-Id: Ib4233c06e18d1d193dfb9e73e745ca5d174e40b2
Reviewed-on: http://gerrit.rockbox.org/507
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
2013-12-23 17:55:15 +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
64b9e1fa7b buflib: Add buflib_context_relocate().
This function relocates a buflib back buffer, updating pointers in struct
buflib_context. It does not move any data by itself.

The intended use-case is buflib-on-buflib, where a buflib back buffer is
allocated with buflib and attempted to be moved. The move_callback() can call
this and return BUFLIB_CB_OK on success. No move_callback() is called for the
subordinate buflib buffer, therefore it must not contain non-movable
allocations. The caller is generally responsible moving the data and all its
implications.

Change-Id: I869219f9cff786a172c9e917a5f34470073892e6
2013-12-22 23:11:32 +01:00
Thomas Martitz
d25a512caf buflib: Try harder in buflib_alloc_maximum().
This function will now ask shrinkable allocations to give up all of their
memory. With future support of playback.c this can be used as a safe
replacement for audio_get_buffer().

Change-Id: I290a51d2c75254e66baf5698c41dc444dea6247a
2013-12-22 23:11:32 +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
Dominik Riebeling
21ff83295e Update changelog.
Change-Id: I81491530d712fde8cc0912d4ede26ce1db55a6df
2013-12-21 13:27:49 +01:00
Dominik Riebeling
587576437a Fix recorderv2 manual.
archosrecorderv2 uses the archosfmrecorder manual.

Change-Id: I015272db750b2fc5054d8259b37f00e0698afbff
2013-12-21 13:27:49 +01:00
Szymon Dziok
17f265df1f Fix cabbie WPS for black&white targets (m:robe 100)
Change-Id: I640893a5f1e248c86b5e928e85cce854b52ca364
2013-12-17 21:35:05 +01:00
Szymon Dziok
e7499ba981 Fix audio on m:robe 100.
Tested on different revisions and it works reliably.

Change-Id: Ic710236247a17f516c8561429f2da5c9684341b9
2013-12-17 20:20:00 +01:00
Nils Wallménius
e3c2ed7a71 Sync libopus to upstream release 1.1
Change-Id: I9fea7460fc33f60faff961b3389dd97b5191463c
2013-12-16 21:13:23 +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
Andrew Ryabinin
04c59b8a15 rk27xx: Fix ifdef for DEBUG_CANCEL button.
Change-Id: Iebbe518dcaf5c9e1573309b3fee17b52998d941c
2013-12-16 00:18:58 +04:00
Thomas Martitz
ed5b853c18 Fix more reds.
Change-Id: Ie62386a8f3e9986381f96eb83abb69bfc42b42e1
2013-12-15 00:47:21 +01:00
Thomas Martitz
c72b454286 Fix reds. Also apply the new scrolling to lcd charcell (this even uncovered an
error).

Change-Id: I29243bb36b6cec1471bd6c0afc64e00547a68c50
2013-12-15 00:38:48 +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
26801b3bd8 scroll_engine: Add STYLE_NONE to allow for drawing lines without styling.
This allows to draw lines without destroying styles that were drawn manually
(e.g. from apps/) beforehand.

Change-Id: I0de290c9343061efb115e1b76da5b76395c2b2af
2013-12-14 23:11:31 +01:00
Thomas Martitz
b094d80dab scroll_engine: Split out common main and remote lcd functions.
Uses a similar technique as lcd_*.c files of #including a common .c file, so
that a unified implementation can be reused for both displays.

Change-Id: I21f6de76df757b093e1a1dff0a4caf96a44fe77e
2013-12-14 23:11:30 +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
Thomas Martitz
47c8d3c14d lcd-*: Merge common viewport operations into lcd-bitmap-common.c
Change-Id: Ibec2d039ac0ba1214c9bd1b667bc8a9538a0d3d7
2013-12-14 23:11:30 +01:00
Marcin Bukat
87c6df98a3 adfuload: add test program
This test program. I add it mainly to document somehow my work:
1) atj213x.h    lists registers addresses
2) crt0.S       exploits self relocation of the binary
3) test_bl.c    documents how to control backlight on e150

Change-Id: I055e0fe065d926a5c3805b73cea3f537cb64bf52
2013-12-13 22:43:52 +01:00
Thomas Martitz
32a6ed8903 CREDITS: Add Albert Song for his FLAC embedded albumart patch.
Change-Id: Id99c6199b5d5c724aeb6230b25cd3705682b663d
2013-12-13 12:38:58 +01:00
Albert Song
f633d5ed48 Add support for flac embeded album art.
Change-Id: I077768f7d80b57976f9a7278b640ef67cf4f2af2
Reviewed-on: http://gerrit.rockbox.org/694
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
2013-12-13 12:37:20 +01:00
Amaury Pouly
8666871cb3 hwstub/stmp: disable watchdog
Some targets like Sony NWZ use a watchdog, so we must disable it to prevent
spurious reboot when we take over

Change-Id: I138a8d7f9a1b089acb2d08d7f6c4a58e8b088b3a
2013-12-13 00:20:18 +01:00
Amaury Pouly
3bbe52bb85 hwstub/stmp: cleanup
Conditional no longer needed since ctr0.S is private to target, also setup
stack just before jumping to C code only

Change-Id: I74116239be9e87bbe53e8fa814c45f04f242f1c1
2013-12-13 00:20:18 +01:00
Marcin Bukat
b5ca0cffac adfuload: utility to upload and exec binary using brom adfu mode of atj213x SoC
Change-Id: If52aa34124be2801c2ac316641ff9aa0bbd837c6
2013-12-11 15:42:25 +01:00
Amaury Pouly
01d8cc6f39 Fix yellow
Change-Id: I60cd312c501f2f0fe0c12489c86c856eeb8e1aa8
2013-12-08 11:30:13 +01:00
Amaury Pouly
b163fb9eac rmi/fuze+: add product info in the debug screen
Change-Id: Id06dbe0909e37587a45a2ebf5b0beab93cd44f61
2013-12-08 11:12:39 +01:00
Amaury Pouly
b69ea1873d Fix typo in the manual
Change-Id: I1110901c080852b37e70a111e55c35c7f2b4e6d7
2013-12-08 11:06:46 +01:00
Benjamin Brown
43f1ac8510 Docs: Manual entry for touchpad settings.
New section Touchpad added to the manual. Gigabeatfx and
SansaFuze+ entries added for touchpad sensitivity setting.

Change-Id: I0c5a173d6ad479c4e6995cf5045d90da6cc216ab
Reviewed-on: http://gerrit.rockbox.org/689
Reviewed-by: Benjamin Brown <foolshperson@gmail.com>
Tested: Benjamin Brown <foolshperson@gmail.com>
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2013-12-08 01:31:41 +01:00
Amaury Pouly
99835fa38b imxtools/sbtools/sb1: fix parsing/debug bug about jump/call arguments
Change-Id: Ib406cfc03ced6c8689ed467c154d6a7447a34e5c
2013-12-06 15:22:38 +01:00
Amaury Pouly
6eefc418dc imxtools/sbtools/elf: fix debug code
Change-Id: If043eb214417a41f71e6c05fc6a725eb8f983373
2013-12-06 15:22:38 +01:00
Marcin Bukat
3440f3518e hwstub: Prepare for multi arch support
Change-Id: Id38411ff95660e60ee23f99350b275b92b3e4578
Reviewed-on: http://gerrit.rockbox.org/690
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2013-12-06 11:46:01 +01:00
Amaury Pouly
c5b209f2d8 elftosb: fix crash on invalid command file
Change-Id: Ifef61b7ca6a391960d1d696ba455e0d14462c967
2013-12-06 11:37:49 +01:00
Amaury Pouly
f365a5123f hwstub: forgot the db command file for stmp
Change-Id: I08ca6be221d3633c5b6e5e4b023afca33713e428
2013-12-06 11:37:10 +01:00
Amaury Pouly
2bf192ee6e imx233: regenerate registers headers
Change-Id: I546177a247646d7a9864d1ec2796ef0708e50667
2013-12-06 02:04:37 +01:00
Amaury Pouly
e43bfdd5e8 regtools: update STMP3600 descriptio (fix EMI block)
Change-Id: I654e3210c1050e3bd559c9e9b29707a6341b111b
2013-12-06 02:00:40 +01:00
Amaury Pouly
58bb4b9b4c hwstub: implement i2c and i2c eeprom dump
Change-Id: Iff1b4f40affb88c104e7322e25cdbe34f8886476
2013-12-06 01:56:04 +01:00
Amaury Pouly
c945fb6e94 imx233: fix storage code to work for non-MD builds
Change-Id: Ic326e59385aff3be1ada52b482e94051c512323d
2013-12-06 01:55:37 +01:00
Amaury Pouly
065910663a storage: fix MD vs MV confusion
Change-Id: If0e4b0ac8b24413b77f1d67293c652c6a0e01bbd
2013-12-06 01:55:21 +01:00
Amaury Pouly
d8cbe4e4fb fuze+: remove unused, duplicate code in config file
Change-Id: Ia8116528ca65844322177531f14b2f6bbfb56719
2013-12-06 01:54:34 +01:00