From 1323857b0fe739e6534bff8b8f8c7f271a8b7736 Mon Sep 17 00:00:00 2001 From: Bruno 21 Date: Wed, 16 Dec 2020 07:39:36 +0100 Subject: [PATCH] sonos.sh +soco_infos() +soco_lists() --- sonos.sh | 173 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 167 insertions(+), 6 deletions(-) diff --git a/sonos.sh b/sonos.sh index 7b1bfd1..d4394a7 100755 --- a/sonos.sh +++ b/sonos.sh @@ -53,7 +53,147 @@ inform() { printf "| %-20s | %-20s |\n" "Display version" "$display_version" printf "| %-20s | %-20s |\n" "Hardware version" "$hardware_version" printf "| %-20s | %-20s |\n" "Software version" "$software_version" + echo "" + echo "< Press Enter>" + } + +soco_infos() { + clear + device="$1" + while true + do + clear + echo "" + echo -e "\033[1m 🔊 Sonos infos $device \033[0m" + echo "" + PS3="Select an option: " + options=( + "(A)larms" + "(G)roups" + "(I)nfo" + "(S)hares" + "S(y)sinfo" + "(R)eturn" + ) + select opt2 in "${options[@]}" + do + case "$REPLY" in + 1|a|A) + echo -e "\n\033[1m Alarms... \033[0m" + a=$(sonos $device alarms) + echo -e "\n $a \n" + read -p "< Press Enter>" + break + ;; + 2|g|G) + echo -e "\n\033[1m Groups... \033[0m" + g=$(sonos $device groups) + echo -e "\n $g \n" + read -p "< Press Enter>" + break + ;; + 3|i|I) + echo -e "\n\033[1m Info... \033[0m" + #sonos $device info + inform $device + read -p "" + break + ;; + 4|s|S) + echo -e "\n\033[1m Shares... \033[0m" + s=$(sonos $device shares) + echo -e "\n $s \n" + read -p "< Press Enter>" + break + ;; + 5|y|Y) + echo -e "\n\033[1m Sysinfo... \033[0m" + y=$(sonos $device sysinfo) + echo -e "\n $y \n" + read -p "< Press Enter>" + break + ;; + 6|r|R) + exec "$0" + ;; + *) echo -e "\n\033[1;31m invalid option \033[0m";; + esac + done + done + } + +soco_lists() { + clear + device="$1" + + while true + do + clear + echo "" + echo -e "\033[1m 🔊 Sonos lists $device \033[0m" + echo "" + PS3="Select an option: " + options=( + "Favourite radio (s)tations" + "(F)avourites" + "(Q)ueue" + "List (a)rtists" + "List al(b)ums" + "(R)eturn" + ) + select opt2 in "${options[@]}" + do + case "$REPLY" in + 1|s|S) + echo -e "\n\033[1m Favourite radio stations... \033[0m" + s=$(sonos $device favourite_radio_stations) + echo -e "\n $s \n" + read -p "< Press Enter>" + break + ;; + 2|f|F) + echo -e "\n\033[1m Favourites... \033[0m" + f=$(sonos $device list_favs) + echo -e "\n $f \n" + read -p "< Press Enter>" + break + ;; + 3|q|Q) + echo -e "\n\033[1m Queue... \033[0m" + q=$(sonos $device list_queue) + echo -e "\n $q \n" + read -p "< Press Enter>" + break + ;; + 4|a|A) + echo -e "\n\033[1m List artists... \033[0m" + a=$(sonos $device list_artists | more) + echo -e "\n $a \n" + read -p "< Press Enter>" + break + ;; + 5|b|B) + echo -e "\n\033[1m List albums... \033[0m" + b=$(sonos $device list_albums | more) + echo -e "\n $b \n" + read -p "< Press Enter>" + break + ;; + 7|p|P) + echo -e "\n\033[1m List albums... \033[0m" + read -p "Enter Album" alb + b=$(sonos $device list_albums | more) + echo -e "\n $b \n" + break + ;; + 6|r|R) + exec "$0" + ;; + *) echo -e "\n\033[1;31m invalid option \033[0m";; + esac + done + done } soco() { @@ -83,8 +223,10 @@ soco() { "-volume (13)" "-m(u)te OFF" "-volume (15)" - "-status (l)ight ON" + "-status light O(N)" "-status light (O)FF" + "(I)nfos" + "(L)ists" "Menu Princip(a)l" ) select opt2 in "${options[@]}" @@ -92,12 +234,12 @@ soco() { case "$REPLY" in 1|f|F) echo -e "\n\033[1m Playing France Info... \033[0m" - sonos $device play_fav 'franceinfo' && sleep 2 + sonos $loc $device play_fav 'franceinfo' && sleep 2 break ;; 2|t|T) echo -e "\n\033[1m Playing France Inter... \033[0m" - sonos $device play_fav 'france inter' && sleep 2 + sonos $loc $device play_fav 'france inter' && sleep 2 break ;; 3|k|K) @@ -136,7 +278,7 @@ soco() { sonos $device stop && sleep 2 break ;; - 10|i|I) + 10) echo -e "\n\033[1m Infos on $device... \033[0m" inform $device read -p "" @@ -167,7 +309,7 @@ soco() { sonos $device volume 15 && sleep 2 break ;; - 16|l|L) + 16|n|N) echo -e "\n\033[1m Status light ON... \033[0m" sonos $device status_light on && sleep 2 break @@ -177,7 +319,17 @@ soco() { sonos $device status_light off && sleep 2 break ;; - 18|a|A) + 18|i|I) + echo -e "\n\033[1m Infos... \033[0m" + soco_infos $device + #break + ;; + 19|l|L) + echo -e "\n\033[1m Lists... \033[0m" + soco_lists $device + #break + ;; + 20|a|A) exec "$0" ;; *) echo -e "\n\033[1;31m invalid option \033[0m";; @@ -186,6 +338,15 @@ soco() { done } + +# local or discover +# --use-local-speaker-list, -l +# Use the local speaker list instead of SoCo discovery +# --refresh-local-speaker-list, -r +# Refresh the local speaker list + +loc=" -l" + while true do clear