From 81b3ada15b00abad23aa7452d66c8dbac11f85d4 Mon Sep 17 00:00:00 2001 From: Michael Herger Date: Wed, 13 Mar 2024 11:55:04 +0100 Subject: [PATCH] Fix playback of alarm fallback sound. --- Slim/Plugin/Sounds/Plugin.pm | 9 +++++++-- Slim/Plugin/Sounds/ProtocolHandler.pm | 3 ++- Slim/Utils/Alarm.pm | 14 +------------- 3 files changed, 10 insertions(+), 16 deletions(-) diff --git a/Slim/Plugin/Sounds/Plugin.pm b/Slim/Plugin/Sounds/Plugin.pm index 9e7346985b..f0376bfffc 100644 --- a/Slim/Plugin/Sounds/Plugin.pm +++ b/Slim/Plugin/Sounds/Plugin.pm @@ -175,7 +175,7 @@ sub getSortedSounds { $a->{name} cmp $b->{name} } map { my $path = $menus->{$menu->{id}}->{$_}; - $validPaths{$path} = 1; + $validPaths{$path} = string("PLUGIN_SOUNDS_$_"); { name => string("PLUGIN_SOUNDS_$_"), bitrate => 128, @@ -199,7 +199,7 @@ sub getSortedSounds { delete $menu->{id}; } - main::DEBUGLOG && $log->is_debug && $log->debug(Data::Dump::dump(\@items)); + main::DEBUGLOG && $log->is_debug && $log->debug(Data::Dump::dump(\@items, \%validPaths)); $alarmPlaylists = \@playlistItems; return $soundsMenus = { @@ -209,6 +209,11 @@ sub getSortedSounds { }; } +sub getSoundName { + my ($class, $path) = @_; + return $validPaths{$path =~ s/^loop:\/\///r}; +} + sub getStreamUrl { my ($class, $client, $url) = @_; diff --git a/Slim/Plugin/Sounds/ProtocolHandler.pm b/Slim/Plugin/Sounds/ProtocolHandler.pm index 5091e6a1fe..729a2264d1 100644 --- a/Slim/Plugin/Sounds/ProtocolHandler.pm +++ b/Slim/Plugin/Sounds/ProtocolHandler.pm @@ -45,11 +45,12 @@ sub getNextTrack { } sub getMetadataFor { - my $class = shift; + my ( $class, $client, $url ) = @_; my $icon = Slim::Plugin::Sounds::Plugin->_pluginDataFor('icon'); return { + title => Slim::Plugin::Sounds::Plugin->getSoundName($url), cover => $icon, icon => $icon, bitrate => '128k CBR', diff --git a/Slim/Utils/Alarm.pm b/Slim/Utils/Alarm.pm index 02b0309a05..0bc9e5b922 100644 --- a/Slim/Utils/Alarm.pm +++ b/Slim/Utils/Alarm.pm @@ -1133,19 +1133,7 @@ sub _playFallback { my $client = $self->client; - my $url; - - my $server = Slim::Utils::Network::serverAddr(); - my $port = $prefs->get('httpport'); - - my $auth = ''; - if ( $prefs->get('authorize') ) { - my $password = Slim::Player::Squeezebox::generate_random_string(10); - $client->password($password); - $auth = "squeezeboxXXX:${password}@"; - } - - $url = "loop://${auth}${server}:${port}/html/slim-backup-alarm.mp3"; + my $url = "loop://html/slim-backup-alarm.mp3"; main::DEBUGLOG && $log->is_debug && $log->debug("Starting fallback alarm: $url");