Skip to content

Three Qobuz Connect fixes - #793

Open
Gjuju wants to merge 3 commits into
moode-player:developfrom
Gjuju:contrib/qobuz-connect-fixes
Open

Three Qobuz Connect fixes#793
Gjuju wants to merge 3 commits into
moode-player:developfrom
Gjuju:contrib/qobuz-connect-fixes

Conversation

@Gjuju

@Gjuju Gjuju commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Three Qobuz Connect fixes

All found while testing Qobuz Connect on 10.3.4.

1. The Qobuz active flag is never reset. In worker.php, the startup reset that clears every renderer flag lists param='qbzctive', which matches nothing. qbzactive is therefore the only flag that survives a worker restart: when the worker restarts while Qobuz Connect is active, the Renderer Active overlay comes back with nothing playing and stays until the flag is cleared by hand.

2. isQobuzUpgradable() queries the wrong package. In renderer.php, it reads the installed version of librespot and compares it against the qobuz-connect entry in cfg_plugin. The two can never match, so the function always reports that an upgrade is available.

3. renderer.php startQobuz() — reads quality_fallback_behaviour (British)
while the schema row, qbz-config.php, the template and autocfg.php all
spell it behavior. It is the only British spelling in the tree, so the
lookup returns nothing and the daemon gets the command with no value:

  qbzd settings set audio.quality_fallback_behavior
  error: the following required arguments were not provided: <VALUE>

sysCmd() discards that, so the Quality fallback behavior selector never
reaches the daemon.

Validation

Measured on x86_64 and on a Raspberry Pi running stock 10.3.4, same method:
set the daemon to the value moOde does not want, then run startQobuz().

code daemon before daemon after
as-is always_fallback always_fallback — the configured value never arrives
fixed always_fallback always_skip — the configured value lands

The other two changes are code reading only.

Gjuju and others added 3 commits September 10, 2026 14:52
The startup reset that clears every renderer flag lists param='qbzctive',
which matches nothing, so qbzactive is the only flag left set when the
worker restarts. A player whose worker restarts while Qobuz Connect is
active then shows the Renderer Active overlay with nothing playing, and
it stays there until the flag is cleared by hand.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
isQobuzUpgradable() reads the installed version of librespot and compares
it against the qobuz-connect entry in cfg_plugin. The two can never match,
so the function always reports that an upgrade is available.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The setting was read as `quality_fallback_behaviour`. Every other reference
spells it `quality_fallback_behavior` -- the schema row, qbz-config.php, the
template and autocfg.php -- so the lookup returned nothing and the command sent
to the daemon carried no value:

    qbzd settings set audio.quality_fallback_behavior
    error: the following required arguments were not provided: <VALUE>

sysCmd() discards that, so the daemon silently kept its own default and the
Quality fallback behavior selector had no effect.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@Gjuju
Gjuju force-pushed the contrib/qobuz-connect-fixes branch from 3f21ac5 to c6e992c Compare September 10, 2026 12:52
@Gjuju Gjuju changed the title Two Qobuz Connect fixes Three Qobuz Connect fixes Sep 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants