| Age | Commit message (Collapse) | Author |
|
#405.' (#436) from leper/tangara-fw:splash_screen_version into main
Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/436
|
|
|
|
This commit adds an 'index' field to the output of the `bt_list`
command. This is meant to be used with/for `bt_forget <index>`, which
requires an index of the device to forget - this helps clarify the index
of each device.
|
|
|
|
Tab_theFox/tangara-fw:wheel_with_buttons into main
Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/340
|
|
(#306) from Be.ing/tangara-fw:flac_internal into main
Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/306
|
|
It's a better, less verbose driver, and also this fixes an occasional
crash on boot.
|
|
|
|
|
|
|
|
|
|
|
|
Be.ing/tangara-fw:lvgl_heap_report into main
Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/365
|
|
|
|
|
|
|
|
requesting more
|
|
In my limited tests this improves decoding speed by around 3%.
|
|
It turns out that “seeking to a first sample in a not–first block” is actually very common, because Tangara only seeks to exact seconds and the reference encoder tends to size blocks in a way that makes the first sample in a block likely be the sample that the firmware wants to seek to.
|
|
This allows you to use the touch wheel for quick playback control:
- bottom quadrant for play/pause
- left and right quadrant for track skip back / forward
- top quadrant to seek back 25 seconds (handy when listening
to a podcast)
|
|
to save internal RAM space
|
|
To free up some internal RAM space
|
|
This increases CPU usage by ~2% for the audio_conv task, which I
think is an acceptable tradeoff. The Speex resampler still
makes its own allocations in internal RAM.
|
|
(#317) from Be.ing/tangara-fw:premature_pause into main
Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/317
|
|
The decoder does use `memset` on the buffer, but according to Espressif that should be fine.
See-Also: https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/system/mem_alloc.html#bit-accessible-memory
See-Also: https://esp32.com/viewtopic.php?t=1730#p8056
|
|
The SetTrack event is sent when *decoding* finishes, not when
*playback* finishes so the decoder can start buffering the next
track in advance of its playback to ensure gapless playback.
Clearing StreamCues causes
Playback::react(const internal::StreamHeartbeat& ev)
to transit the Playback FSM to Standby, which sets the
IAudioOutput to stop reading from the output buffer. Thus,
clearing StreamCues in response to the SetTrack event paused
playback with the end of the track stuck waiting in the output
buffer. When a new queue was loaded and started playing, the
end of the previous track would be played before the new track
was played.
Fixes https://codeberg.org/cool-tech-zone/tangara-fw/issues/313
|
|
|
|
This drops CPU usage for the audio_dec task by about 15%.
|
|
This is the maximum amount that malloc can currently allocate in a
single allocation.
|
|
|
|
Splits the control scheme into separate schemes for the side buttons and touchwheel, allowing them to be configured independently of each other. At least one input must be used for navigation, and there are guards to prevent locking oneself out of any input. If the input scheme is invalid, a pop up will show alerting the user.
Different behaviours can be bound to the side buttons for when the device is locked or unlocked. This PR also adds a mode for these buttons that controls media playback (prev/next on up/down, pressing both buttons toggles play/pause).
There are some changes to the way inputs handle locking. Rather than the input devices tracking the current locked mode, different input devices are created on lock depending on the mode that is configured.
Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/264
Co-authored-by: ailurux <ailurux@noreply.codeberg.org>
Co-committed-by: ailurux <ailurux@noreply.codeberg.org>
|
|
ayumi/tangara-fw:wavpack into main
Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/218
|
|
columns' (#302) from display_padding into main
Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/302
|
|
|
|
|
|
(#288) from tahnok/tangara-fw:trim-bt-name-whitespace into main
Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/288
Reviewed-by: cooljqln <cooljqln@noreply.codeberg.org>
|
|
Makes the Lua UI update immediately after running the bt_forget command
added in PR #289
|
|
tahnok/tangara-fw:bt_forget into main
Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/289
|
|
|
|
I have a speaker at home with a name of "Pebble V3\r\n" that renders
poorly without this change.
|
|
Prior to this change, the UI thread was consuming approx. 10-14% CPU
in the idle state, and appeared to be running in an endless loop.
After this change, the UI thread is measured at about 0.1% CPU. I'm
not sure what the current consumption impact is, but it's gotta be
a power saving, even if slim?
Following manual testing with the device after flashing this change,
the UI responsiveness and music playback does not appear to be
negatively affected. The UI actions that were tested were:
- Scrolling through items on the root menu
- Scrolling through settings
- Scrolling through All Tracks with long-press on the bottom of
the scroll wheel (Page Down) on a device with ~20k songs
- Repeatedly hitting 'next track'
- Forcing a DB update, and scrolling through All Tracks while
updating the database.
The device was configured with the following settings when tested:
- TTS enabled
- Wired headphones
- Bluetooth enabled but not connected
- No DB auto-update
- Playing music
Prior to this change, the UI thread was consuming approx. 10-14% CPU
in the idle state, and appeared to be running in an endless loop.
On a stock (v1.2.2) build, `tasks` reported:
```
→ tasks
name core free stack run time
IDLE1 1 1.0 KiB 99.6%
IDLE0 0 1.1 KiB 86.5%
ui any 10.1 KiB 13.7%
console_repl 1 5.6 KiB 0.5%
Tmr Svc any 1.4 KiB 0.0%
audio_dec any 19.4 KiB 0.0%
main 0 2.0 KiB 0.0%
lvglDraw any 2.9 KiB 0.0%
btController 0 2.1 KiB 0.0%
esp_timer 0 3.4 KiB 0.0%
BTC_TASK 1 2.6 KiB 0.0%
worker_1 any 30.1 KiB 0.0%
worker_3 any 5.7 KiB 0.0%
worker_2 any 29.5 KiB 0.0%
worker_0 any 25.7 KiB 0.0%
BTU_TASK 1 3.2 KiB 0.0%
hciT 1 1.5 KiB 0.0%
ipc0 0 1.0 KiB 0.0%
ipc1 1 1.0 KiB 0.0%
audio_conv any 3.4 KiB 0.0%
```
Following this change, the UI thread decreased from 13% in idle to
0.1% usage, as reported by `tasks`:
```
→ tasks
name core free stack run time
IDLE1 1 1.0 KiB 99.8%
IDLE0 0 1.1 KiB 99.4%
console_repl any 6.4 KiB 0.5%
ui any 10.1 KiB 0.1%
btController 0 2.1 KiB 0.0%
Tmr Svc any 1.4 KiB 0.0%
esp_timer 0 3.4 KiB 0.0%
audio_dec any 19.4 KiB 0.0%
ipc1 1 1.0 KiB 0.0%
ipc0 0 1.0 KiB 0.0%
hciT 1 1.5 KiB 0.0%
BTU_TASK 1 3.2 KiB 0.0%
worker_3 any 20.7 KiB 0.0%
worker_2 any 29.4 KiB 0.0%
BTC_TASK 1 2.5 KiB 0.0%
worker_1 any 30.1 KiB 0.0%
worker_0 any 5.7 KiB 0.0%
lvglDraw any 2.9 KiB 0.0%
main 0 2.0 KiB 0.0%
audio_conv any 3.4 KiB 0.0%
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Also, clang-format previous changes in provider.hpp.
|
|
|
|
|