github zmd22/diskos-disco v2.6.2
diskOS Disco! 2.6.2

5 hours ago

diskOS Disco! 2.6.2

Bluetooth headphones connect straight on AAC or LDAC: no switch, no pause. Plus a polished Bluetooth screen, a
clearer clock field, and back-swipe feedback on the track pop-up.

Bluetooth

  • Born on the right codec. Until now every Bluetooth connection started on SBC and then switched to AAC or LDAC,
    which rebuilds the link: a short silence on the first song, or a song waiting a moment before it starts. Now Disco
    remembers which codecs your headphones support, and the next time Bluetooth starts it sets up the connection on
    your chosen codec from the first moment (with your LDAC quality: Mobile, Standard or High). Nothing to switch,
    nothing to wait for.
  • Disco marks each pair with its known-good codecs: a codec that really ran on them (confirmed by Bluetooth
    itself) counts as good; one that didn't come up isn't insisted on next time.
  • The first time you use a pair (or after choosing another codec), it works as in 2.6.1: start on SBC, switch once.
    As soon as the headphones are switched off, Disco gets ready, so their next connection starts straight on the
    right codec. Switched off and on again quickly, they're switched up again at once rather than staying on SBC.
  • "Connected: FiiO EH11 / LDAC": the pop-up now names the headphones and the codec actually running, once the
    codec is settled, also when headphones reconnect by themselves.
  • The Bluetooth screen keeps up: switching your headphones off or on while the screen is open now updates the
    list at once (it used to keep showing "Connected - LDAC" until you reopened it).
  • Other headphones are safe: connecting to a pair that isn't known to support that codec sets Bluetooth up the
    normal way first, so it always has sound.

Bluetooth screen

  • One clear line at the top: "Connected to FiiO EH11 - LDAC", in each theme's own font; long names scroll.
  • Bigger rows and larger hint text ("Tap to connect", "Connected - LDAC"), and less empty space at the top, so the
    list has more room. Same elements, same places; the Wi-Fi screen is unchanged.

Clock field (Disco, Squash, Null)

  • A touch bigger and clearer: the Wi-Fi, Bluetooth and battery icons, the clock (Disco, Squash) and the weather,
    all still inside their field.
  • New: Settings › Display › Music screen › Music information › Clock and info, below Show clock:
    • Battery percentage: the level as a number (67%) next to the battery icon. Off by default.
    • Weather: the weather under the clock. On by default; off, tapping the clock no longer opens Weather.
  • Null: when the menu slides in and the title moves up, the clock now fades out together with the weather.

Smaller things

  • Back-swipe feedback on the track pop-up (tap the title on Music): the back arrow now follows your finger as on
    every other screen, and the pop-up closes when you let go with it armed.
  • Ring and Braun: development is frozen. They keep working and get fixes that apply to every theme, but no new
    changes; the clock-field changes are for Disco, Squash and Null.

Testing: an independent review of an earlier 2.6.2 build found five issues; all are fixed and covered by
tests. The idea was tested by hand on the maintainer's Disc: started this way, LDAC headphones connected
straight on LDAC and stayed on it through playback. The automatic version is covered by tests but was not yet
tried on a Disc before release. Bluetooth codec choices still apply on firmware V2.57 only.

Installing and updating

  • Already on diskOS Disco! 1.4.1 or newer? Update from the SD card: download mq_ui, sign it with your own
    keys and copy the diskos-update folder to the card (how). Your settings, music and stats stay.
  • New install? Start from FiiO's stock V2.57 firmware (recommended). Installing over upstream diskOS or
    another diskOS build is not supported and can be buggy; restore stock first. See Install.
  • Windows: Unsupported, but working as intended: confirmed several times by users, installs and SD updates included.

After updating

  • Settings > System > About shows 2.6.2.
  • The new version starts as a trial: play some music or tap Keep to keep it. If it doesn't start properly,
    the Disc goes back to the previous version by itself, or choose Go back.
Technical notes

BlueALSA (v4.0.0, started by Disco) picks the first enabled A2DP codec in its own order at connection, SBC first;
--codec=sbc only enables SBC. Disco now remembers each headphone's codec list (btcaps_<mac>, from the codec probe)
and, when Bluetooth starts and the last-used headphones (bt_last) support the chosen codec, starts BlueALSA with
--codec=-sbc --codec=-ldac (AAC) or --codec=-sbc (LDAC, --ldac-quality from the chosen level). The codec step
then reports "already AAC/LDAC" and sends nothing. bt_connect to headphones not known to support that codec
restarts BlueALSA with the normal order first (bt_codec_prepare_steps, in the connect script). Bluetooth screen:
per-theme overrides in bt_create (the radio skins are shared with Wi-Fi and unchanged); rows 64 px. Clock field:
clock_batt_pct and clock_weather (dhome_clockinfo_apply, null_clockinfo_apply); 20 px weather icons
(font_weather20.c, Font Awesome 4.7, OFL). Track pop-up: ov_swipe_cb shows the back arrow and closes on release;
the arrow stays frontmost on its layer. Confirmed codecs mark headphones as known-good,
unconfirmed ones as bad (btbad_<mac>, not born on); when a link comes back the codec is re-checked (fresh arm),
and after a real disconnect (three completed empty probes) BlueALSA is restarted for the next connection
(bt_alsa_rearm_born). After the 2.6.2 b2 review: the running BlueALSA's real arguments are read from
/proc/<pid>/cmdline (bt_alsa_actual), never a remembered intention; restarts run in the background with a
readiness wait and only when the kernel lists no Bluetooth connection (/sys/class/bluetooth/hci0:<handle>,
bt_acl_links; "can't tell" restarts nothing); the LDAC quality is part of the comparison; a connection with no
audio link for three probes while BlueALSA is restricted gets the normal order back (other headphones reconnecting by
themselves); "already AAC/LDAC" also clears a bad mark; a link counts as gone after two empty probes and as back
after that (debounced). The auto-route poll re-reads the device
list (scan_kick, no discovery) when the A2DP link appears or goes while the Bluetooth screen is open. Test: ui/tests/bt_born_test.py. Built with
the GCC 11.2 MIPS toolchain; build record in payload/mq_ui.build.json.

Don't miss a new diskos-disco release

NewReleases is sending notifications on new releases.