Commit Graph

34709 Commits

Author SHA1 Message Date
Solomon Peachy 2e708c48c5 pcm: Dynamically-size the mixer buffer at higher audio bitrates.
Basically, existing sizes apply for <= 48KHz audio. Up to 96K,
we double the mix buffer.  up to 192K, we double it again.

Will help reduce the interrupt load and overall latency, keeping it
roughtly constant as a function of time, regardless of bitrate.

(It is acutally a fixed-size buffer, statically-allocated to handle the
 worst-case bitrate the player supports. However, at runtime if we are
 using a lower bitrate we will only use a portion of it in order to keep
 latancies down)

Change-Id: I61ca23180a86502732b0903fe9691c1a8c2aeaea
2020-10-03 14:19:17 -04:00
Solomon Peachy d4a620e85a alsa: introduce AUDIOHW_MUTE_ON_PAUSE, and have rocker use it.
Change-Id: I1edbb8e71a9c73baaeecb01b66cbee6c3f7b5f8f
2020-10-03 14:41:40 +00:00
Solomon Peachy d18157608d xduoo codec cleanups
Change-Id: I6c3437bde2d9f781a02ffc6b3a83148b9a7af872
2020-10-03 14:41:21 +00:00
Solomon Peachy 1824f8b103 xduoox3ii/x20: Rework the mute control to actually function properly.
(By switching the output away from the audio jacks)

Change-Id: Ib8511c9d45029bba038dc4d1d187174d56cb3043
2020-10-03 04:13:13 +00:00
Solomon Peachy 90c30bc7ef alsa: Explicitly mute the output when we stop playing, and unmute after playback starts
Allows us to avoid hearing the codec powering on and off.

Change-Id: Idaaff437932009952ed248be97eedf54cb4cf28e
2020-10-03 04:12:51 +00:00
Solomon Peachy c7eceea183 alsa: Handle underruns when starting a new stream
Unsure why this is happening, but now we detect and recover errors at
startup.

Also clean up the mismash of printf(), DEBUGF(), etc in favor of panicf() for the really serious stuff and logf() for everything else.

Change-Id: I9aaa620d55d556645c9a6d108541b987983b32a8
2020-10-03 01:04:53 +00:00
Solomon Peachy b0e1b245b4 alsa: Use larger playback buffers for higher bitrates
(existing ones apply up to 48KHz, scale up linearly to 192KHz)

Change-Id: Iac32d49b8073b63a5d40fd21f41437e6051cb8de
2020-10-02 09:50:38 -04:00
Solomon Peachy 90af40e90c imx233: Hardware codec supports up to 192KHz. Make it so!
Change-Id: If08a1d244f28092a5d5332d666fb9afdc78f35a9
2020-10-02 09:50:38 -04:00
Solomon Peachy 9892e468d5 hosted: Don't use O_SYNC for the framebuffer handle.
Change-Id: Iff4b1947fe053313d677b894c78250760aaef967
2020-10-02 09:48:59 -04:00
Solomon Peachy b5cb99a7bf For backlights that have a wide control, support skipping steps.
the rocker, x3ii, and x20 now take advantage of this, and fades
are far faster now.

Change-Id: Iceb1a5a6c1d1389c3fdb859b32016b5114a80a22
2020-10-02 02:45:43 +00:00
Solomon Peachy 9ee618e889 hosted: Fix overzealous spamming of backlight and lcd enable
This caused random delays in LCD activity, and also caused key inputs to go nuts

Change-Id: Ie483c86f7461455308f8c5f8999df313521c6b55
2020-10-02 02:24:42 +00:00
Solomon Peachy f4f3255edf xduoox3: Work out clocks for 176/192KHz support.
Note:  PCM mix buffer sizes are _way_ too small for these high bitrates

(We really need to make the mixer stuff use dynamic buffer sizes based
 on the bitrate.  Maybe pre-allocate a max size based on upper bitrate limit,
 but use only part of it at lower bitrates?  So we can have sane latency..)

Change-Id: Id7b4afd73dba7f1ffb84b2e1c016859fae5d6835
2020-10-01 17:30:22 -04:00
Solomon Peachy db22dae2f9 fix more red.
Change-Id: If5fee31d633e5f75272ba85f5293ad01b1ce573a
2020-10-01 16:39:37 -04:00
Solomon Peachy a96eb1a7f7 Fix warnings and errors introduced in b030bf5
Change-Id: I23966b6a79c0d2cbab2e01c649c1b991f460d8ad
2020-10-01 16:08:20 -04:00
Solomon Peachy b030bf5885 xduoox3ii/x20: Proper lineout detection and volume mangling.
hotplugging hp and lineout works, without blowing out eardrums.

Change-Id: I2df5c7a618bb2d1d77d416548d45dff9cfc619db
2020-10-01 15:41:30 -04:00
Solomon Peachy 6d47dc9a88 fix some of the red introduced in e43726d
Change-Id: Id1abb0dd11f8a8e79a80fc54e58a5a22706a03ad
2020-10-01 12:55:52 -04:00
Solomon Peachy e43726df2c hosted pcm-alsa improvements
* xduoo x3ii/x20:  Better line out support
 * less granular volume settings (too many steps before)
 * Better handling of swiching sample rates
 * Log actual sample rate in debug menu

Most credit goes to Roman Stolyarov
Additional integration [re]work by myself

Change-Id: I63af3740678cf2ed3170f61534e1029c81826bb6
2020-10-01 11:56:57 -04:00
Solomon Peachy 6459fa0765 scrobbler: Fix logfile location on most hosted targets.
Change-Id: Ie07fdbd8e99b5c492b87bb5c6a7f916e28143943
2020-10-01 11:18:00 -04:00
Solomon Peachy 021b55735b hosted: fix shutdown crash in framebuffer code.
Change-Id: I78315b81ab8df0408abc64d5edb6af37db568ad7
2020-10-01 14:01:21 +00:00
Solomon Peachy 0a7b23097a Hosted: Improvements in the LCD code. (Roman Stolyarov)
* Kill LCD when turning off the backlight
 * Fix logic errors in lcd_enable() calls
 * Use ioctls instead of sysfs to twiddle lcd enable

Change-Id: I6864ff63d87b747ac48719b0f4ba2de00333a1d3
2020-10-01 12:49:39 +00:00
Solomon Peachy cb9b5d3b50 Add 192 and 176KHz to mikmod and test_sampr plugins
Change-Id: I34e835ae0ae39da1ce50153eee86c14747705c4e
2020-09-30 22:52:56 -04:00
Solomon Peachy 1cd004ff5b pcm: Missed a file for the 192/176K playback.
Change-Id: Ie9b5299bfb074604db5a9ac340f67c5ed75aa926
2020-09-30 22:03:34 -04:00
Solomon Peachy 01650b8bc9 audio: Add support for 192 and 176KHz playback
* SAMPR_CAPS_ALL -> SAMPR_CAPS_ALL_48/96/192
 * All targets claiming SAMPR_CAPS_ALL now get appropriate subset
 * No need to explicitly define HAVE_PLAY_FREQ
 * Rates that are a multiple of 44 or 48KHz can be used for playback

Inspired by a patch by Roman Stolyarov, but substantially rewritten by myself.

Change-Id: Iaca7363521b1cb9921e047ba1004d3cbe9c9c23e
2020-09-30 21:37:11 -04:00
Solomon Peachy c2c59457e1 lua: fix ipod builds broken by 127862c
Change-Id: Ibef7de6b4e87568206ede66c399093b66b827b69
2020-10-01 01:24:35 +00:00
Solomon Peachy 127862c947 lua: Include $TARGET when preprocessing the headers for the button helper
Change-Id: I3ab98b52991949adb1db2f13ea99ed24d827e575
2020-09-30 20:13:05 -04:00
Solomon Peachy 91197dd59b xduoox3: Fix an error in a comment
Change-Id: Ic4994a7215d95f24c5d599cad762b2d0b6a03921
2020-09-30 17:07:55 -04:00
Dominik Riebeling 728299e322 rbutil: Fix unnecessary implicit cast.
Change-Id: Id05220a700eb826d38023575b02f568b1c1a7580
2020-09-30 21:12:50 +02:00
Dominik Riebeling c8f79d31b1 rbutil: Add postinstall hint for rocker and xduoo player.
Change-Id: I4f679228a354019d830afbbd402db566abd743d3
2020-09-30 21:12:50 +02:00
Solomon Peachy ff408fd717 Leave HOME_DIR out of default recording and playlist paths
The hosted filesystem code will automatically prepend HOME_DIR.

Change-Id: I36a76e51637ab2bb68353f8eb9ffac25ca75bad1
2020-09-30 18:56:54 +00:00
William Wilgus 1c0648c603 lua rockevents reduce context switching for action and buttons
check if any buttons are waiting in the queue before triggering
the event thread for action & button events

makes button events quicker and also spend less time interrupting lua
both wins

Change-Id: I38346c084afdd99e4608f40b52053ee39730fb40
2020-09-30 16:33:38 +00:00
Solomon Peachy a511917f18 configure: Compact the target selection a bit
Change-Id: Ic20f4085d2a135f6596d3e80be8ff1017c6b7480
2020-09-29 09:25:00 -04:00
Solomon Peachy 977a03a1a4 fix x20 and yp-r1 builds.
Change-Id: Ifc6638c2ed6bc862ded389f1b81f30c7a0419ec0
2020-09-28 22:26:59 -04:00
Solomon Peachy 0ebfe3dfcf xduoo: x3ii and x20 have filter_roll_off support
Change-Id: I4891c7c9197f7aecd82b20d1e1c106d80ddba732
2020-09-28 21:28:17 -04:00
Solomon Peachy 0fe7db2460 xduoo: x3ii and x20 also have their CPUs clocked at 1008 MHz.
Change-Id: I59fbd1edc934a6e2b2323e13b4efc3cc1caad903
2020-09-28 21:17:39 -04:00
Solomon Peachy ae58b5aafe xduoox20: UI Simulator support
Change-Id: I2a03cea07fbad9fb5862ca69e4cfca2e8ca6b17f
2020-09-28 21:12:52 -04:00
Solomon Peachy 43980bb877 rocker: CPU is actually running at 1008MHz, not 532.
Change-Id: If5204574cb604d1ea82f0863d300468bedcf541d
2020-09-29 00:37:11 +00:00
Solomon Peachy 7719010ed7 hosted: Slightly cleaner shutdown; kill the display first.
Change-Id: I620d7afb2eb0556cde07c7828b134b13892e6db4
2020-09-29 00:27:49 +00:00
Solomon Peachy fd2e65e94d rocker: Increase the long-press shutdown delay a bit.
Change-Id: Ief64f3d39556efa7de7df32eb7613a29a466a02e
2020-09-29 00:27:27 +00:00
Szymon Dziok 466156f0b5 SVG image of the xDuoo X20 and other formats for the manual.
Change-Id: I076c3f597dfd28faefb843427d31d195483f1999
2020-09-28 14:55:24 +02:00
William Wilgus 018e0051bc lua playback example
cool little lua based audio player
creates dynamic playlist of 10 mp3s found on device if no music loaded

I had to limit the depth of search to 3 levels due to the recursive
nature of the current dirbrowser functions this could be rectified with a
bit more code

fixed a bug in print.lua that kept scrolling text even after screen clear

Change-Id: Ifd285332df41a409ecaeb1ea447ad15537b5d04c
2020-09-27 15:57:34 +00:00
Dominik Riebeling 201e9bcde8 rbutil: Fix some minor issues found by clazy.
Change-Id: I0e63df09caf959dcb325c6ad2297c4348388a831
2020-09-27 10:57:58 +02:00
Dominik Riebeling f1f72ff8df rbutil: Code cleanup.
- Fix naming.
- Remove non-functional functionality to set cache folder.
- Use URL filename part when copying the file if target filename is not set.

Change-Id: Ic9af59300f06d4309c6a4c9542d4f6079dd841c3
2020-09-27 09:28:21 +02:00
Dominik Riebeling 9d8bcbeb2a sansapatcher: rework exit code handling.
- #define all exit codes and use them for indicating further errors.
- only enable interactive (i.e. wait for keypress before exiting) mode
  when built with bootloaders.

Change-Id: I6dcbc51226aadc4ab640bf260b6331ddbd4773cc
2020-09-27 09:28:15 +02:00
Dominik Riebeling af76fa3e7a ipodpatcher: Rework exit codes.
- #define all exit codes used so they can be checked more easily.
- Use exit codes to indicate more error states.

Change-Id: I052962e3457a7cd5eca8b70256889d25b1b4b3aa
2020-09-27 09:28:10 +02:00
Dominik Riebeling 3806f57ed8 ipodpatcher: Fix some type warnings.
Change-Id: I66fa99db3f4913bafa17a1e976cbfd08e26349ce
2020-09-27 09:28:05 +02:00
William Wilgus 0f23cadbca lua -- add sort by name, size, date to filebrowse include
I had previously added the fuctionality to luadir but I didn't update
the examples

also breaks out the file_browser function to be a bit more accessible

Change-Id: I14067256b9d76a757f732840cbee1cf84d775b1b
2020-09-25 23:07:30 -04:00
William Wilgus 1f9e16e4df InvalidVoice prompt Fix red for devices w/o physical hold buttons
left in there from debugging

Change-Id: I6b9b7cb92848d2a7a72f6b1d688e61dc81c7c27b
2020-09-20 16:44:24 -04:00
William Wilgus 2ffe87902d Add Invalid Voice Announcement to the voice system FS#13216
When a voice file is invalid or fails to load the voice system splash a
message 'Invalid Voice'

Now we supply a single voice file (currently only english is used)
the support for other languages is in but I haven't set it up to
look for anything but InvalidVoice_english.talk

Also adds a one time kill voice thread function
 ie. it doesn't allow re-init after killing the voice thread & queue

Change-Id: I7b43f340c3cc65c65110190f0e0075b31218a7ac
2020-09-20 16:08:49 -04:00
Solomon Peachy c528c01312 plugin: Fix pile of warnings.
(Bad Solomon)

Change-Id: I5a74480d9606c707149667c8387471d98da71386
2020-09-20 15:25:13 +00:00
Solomon Peachy 5d40d97585 voice: rename mp3_play_* functions to voice_play_*
Remove mp3_is_playing() entirely, in favor of pcm_is_playing()
Remove mp3_play_pause() entirely, as it's a dummy/no-op call
Remoce some archos-specific comments

Change-Id: I4e9ff323490a93add00809efd19e0d4e3f198b2d
2020-09-20 14:52:30 +00:00