Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 15 additions & 4 deletions www/daemon/worker.php
Original file line number Diff line number Diff line change
Expand Up @@ -1603,7 +1603,7 @@
phpSession('write', 'volknob', '0');
sysCmd('/var/www/util/vol.sh 0');
$result = sqlQuery("UPDATE cfg_system SET value='0' WHERE param='btactive' OR param='aplactive' OR
param='spotactive' OR param='qbzctive' OR param='slactive' OR param='paactive' OR param='rbactive' OR
param='spotactive' OR param='qbzactive' OR param='slactive' OR param='paactive' OR param='rbactive' OR
param='inpactive'", $dbh);
workerLog('worker: Active flags: at least one true');
workerLog('worker: Reset flags: all reset to false');
Expand Down Expand Up @@ -3301,9 +3301,20 @@ function runQueuedJob() {
break;
// Qobuz Connect
case 'qobuzsvc':
stopQobuz();
if ($_SESSION['qobuzsvc'] == 1) {
startQobuz();
// A settings save does not need the daemon taken down: qbzd writes
// its own stores and nudges a running daemon through
// POST /api/settings/reload, which reloads in place. Restarting
// ends the Qobuz Connect session instead, and the app has to be
// pointed at the player again before anything plays. The service
// toggle and the manual restart button still go the long way.
if ($_SESSION['w_queueargs'] == 'apply_settings' && $_SESSION['qobuzsvc'] == 1 &&
!empty(sysCmd('pgrep -x qbzd'))) {
cfgQobuz();
} else {
stopQobuz();
if ($_SESSION['qobuzsvc'] == 1) {
startQobuz();
}
}
if ($_SESSION['w_queueargs'] == 'disconnect_renderer' && $_SESSION['rsmafterqbz'] == 'Yes') {
sysCmd('mpc play');
Expand Down
1 change: 1 addition & 0 deletions www/inc/constants.php
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,7 @@
const NOTIFY_DURATION_INFINITE = 8640000; // 100 days
const NOTIFY_MSG_SYSTEM_RESTART_REQD = 'Restart the system for the changes to take effect.';
const NOTIFY_MSG_SVC_RESTARTED = ' has been restarted to make the changes effective.';
const NOTIFY_MSG_SVC_SETTINGS_APPLIED = ' settings have been applied.';
const NOTIFY_MSG_SVC_MANUAL_RESTART = ' has been restarted.';
const NOTIFY_MSG_LOCALDISPLAY_STARTING = 'Local display is starting...';
const NOTIFY_MSG_PEPPYDISPLAY_STARTING = 'Peppy display is starting...';
Expand Down
14 changes: 9 additions & 5 deletions www/inc/renderer.php
Original file line number Diff line number Diff line change
Expand Up @@ -264,9 +264,7 @@ function isSpotifyUpgradable() {

// Qobuz Connect
// Copyright 2026 @PhilipVinc qbz fork of moode / https://github.com/PhilipVinc/moode
function startQobuz() {
// Logging
$logging = $_SESSION['debuglog'] == '1' ? ' > ' . QBZD_LOG : ' > /dev/null';
function cfgQobuz() {
// Settings
$result = sqlRead('cfg_qobuz', sqlConnect());
$cfgQobuz = array();
Expand Down Expand Up @@ -299,14 +297,20 @@ function startQobuz() {
sysCmd('qbzd settings set audio.normalization_enabled ' . $cfgQobuz['normalization_enabled']);
sysCmd('qbzd settings set audio.allow_quality_fallback true');
sysCmd('qbzd settings set audio.gapless_enabled ' . $cfgQobuz['gapless_enabled']);
sysCmd('qbzd settings set audio.quality_fallback_behavior ' . $cfgQobuz['quality_fallback_behaviour']);
sysCmd('qbzd settings set audio.quality_fallback_behavior ' . $cfgQobuz['quality_fallback_behavior']);
sysCmd('qbzd settings set audio.streaming_only ' . $cfgQobuz['streaming_only']);
sysCmd('qbzd settings set audio.stream_first_track ' . $cfgQobuz['stream_first_track']);
sysCmd('qbzd settings set audio.cache_to_disk ' . $cfgQobuz['cache_to_disk']);
sysCmd('qbzd settings set audio.memory_cache_mb ' . $cfgQobuz['memory_cache_mb']);
sysCmd('qbzd settings set audio.alsa_buffer_ms ' . $cfgQobuz['alsa_buffer_ms']);
// Event script
sysCmd('qbzd settings set hooks.script /var/local/www/commandw/qbzevent.sh');
}
function startQobuz() {
// Logging
$logging = $_SESSION['debuglog'] == '1' ? ' > ' . QBZD_LOG : ' > /dev/null';

cfgQobuz();

// Start the daemon
$cmd = 'qbzd run' . $logging . ' 2>&1 &';
Expand Down Expand Up @@ -357,7 +361,7 @@ function isQobuzInstalled() {
return empty($result) ? false : true;
}
function isQobuzUpgradable() {
$installedVersion = sysCmd('dpkg-query --showformat=\'${Version}\n\' --show librespot | grep moode')[0];
$installedVersion = sysCmd('dpkg-query --showformat=\'${Version}\n\' --show qbzd | grep moode')[0];
$availableVersion = sqlQuery("SELECT version FROM cfg_plugin WHERE component='renderer' AND type='qobuz-connect'", sqlConnect())[0]['version'];
return ($installedVersion == $availableVersion ? false : true);
}
Expand Down
4 changes: 2 additions & 2 deletions www/qbz-config.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@
sqlUpdate('cfg_qobuz', $dbh, $key, $value);
}
if ($_SESSION['qobuzsvc'] == '1') {
$notify = array('title' => NOTIFY_TITLE_INFO, 'msg' => NAME_QOBUZ . NOTIFY_MSG_SVC_RESTARTED);
submitJob('qobuzsvc', '', $notify['title'], $notify['msg']);
$notify = array('title' => NOTIFY_TITLE_INFO, 'msg' => NAME_QOBUZ . NOTIFY_MSG_SVC_SETTINGS_APPLIED);
submitJob('qobuzsvc', 'apply_settings', $notify['title'], $notify['msg']);
}
}

Expand Down