#!/bin/bash clear about() { echo "" echo -e "\033[1mAbout:\033[0m" echo "" } help() { echo "" echo -e "\033[1mHelp:\033[0m" echo "" } inform() { device="$1" info=$(sonos $device info) model_name=$(echo "$info" | grep "model_name" | awk -F"=" '{print $2}') model_number=$(echo "$info" | grep "model_number" | awk -F"=" '{print $2}') player_name=$(echo "$info" | grep "player_name" | awk -F"=" '{print $2}') zone_name=$(echo "$info" | grep "zone_name" | awk -F"=" '{print $2}') mac_address=$(echo "$info" | grep "mac_address" | awk -F"=" '{print $2}') ip_address=$(echo "$info" | grep "ip_address" | awk -F"=" '{print $2}') display_version=$(echo "$info" | grep "display_version" | awk -F"=" '{print $2}') hardware_version=$(echo "$info" | grep "hardware_version" | awk -F"=" '{print $2}') software_version=$(echo "$info" | grep "software_version" | awk -F"=" '{print $2}') echo "" printf "\e[1m| %-20s | %-20s |\e[0m\n" "$model_name" "$player_name" printf "| %-20s | %-20s |\n" "Model name" "$model_name" printf "| %-20s | %-20s |\n" "Model number" "$model_number" printf "| %-20s | %-20s |\n" "Player name" "$player_name" printf "| %-20s | %-20s |\n" "Zone name" "$zone_name" printf "| %-20s | %-20s |\n" "mac adress" "$mac_address" printf "| %-20s | %-20s |\n" "IP address" "$ip_address" printf "| %-20s | %-20s |\n" "Display version" "$display_version" printf "| %-20s | %-20s |\n" "Hardware version" "$hardware_version" printf "| %-20s | %-20s |\n" "Software version" "$software_version" } soco() { device="$1" while true do clear #echo "###############" echo -e "\033[1m 🔊 Sonos $device \033[0m" #echo "###############" echo "" PS3="Select an option: " options=( "France Info" "France Inter" "K6 FM" "Rires et Chansons" "RTL" "Deezer Flow" "Playlist list_favs" "-start $device" "-stop $device" "-volume 11" "-volume 13" "-volume 15" "-mute ON" "-mute OFF" "-status light ON" "-status light OFF" "-infos on $device" "Menu Principal" ) select opt2 in "${options[@]}" do case $opt2 in "France Info") echo -e "\033[1m Playing France Info... \033[0m" sonos $device play_fav 'franceinfo' && sleep 2 break ;; "France Inter") echo -e "\033[1m Playing France Inter... \033[0m" sonos $device play_fav 'france inter' && sleep 2 break ;; "K6 FM") echo -e "\033[1m Playing K6 FM... \033[0m" sonos $device play_fav 'K6 FM' && sleep 2 break ;; "Rires et Chansons") echo -e "\033[1m Playing Rires et Chansons... \033[0m" sonos $device play_fav 'Rire et Chansons' && sleep 2 break ;; "RTL") echo -e "\033[1m Playing RTL... \033[0m" sonos $device play_fav 'RTL' && sleep 2 break ;; "Deezer Flow") echo -e "\033[1m Playing Deezer Flow... \033[0m" sonos $device play_fav 'Flow' break ;; "Playlist list_favs") echo -e "\033[1m Display playlist list_favs... \033[0m" sonos $device list_favs read -p "" break ;; "-start $device") echo -e "\033[1m Start $device... \033[0m" sonos $device start && sleep 2 break ;; "-stop $device") echo -e "\033[1m Stop $device... \033[0m" sonos $device stop && sleep 2 break ;; "-volume 11") echo -e "\033[1m Set volume to level 11... \033[0m" sonos $device volume 11 && sleep 2 break ;; "-volume 13") echo -e "\033[1m Set volume to level 13... \033[0m" sonos $device volume 13 && sleep 2 break ;; "-volume 15") echo -e "\033[1m Set volume to level 15... \033[0m" sonos $device volume 15 && sleep 2 break ;; "-mute ON") echo -e "\033[1m Mute ON... \033[0m" sonos $device mute on && sleep 2 break ;; "-mute OFF") echo -e "\033[1m Mute OFF... \033[0m" sonos $device mute off && sleep 2 break ;; "-status light ON") echo -e "\033[1m Status light ON... \033[0m" sonos $device status_light on && sleep 2 break ;; "-status light OFF") echo -e "\033[1m Status light OFF... \033[0m" sonos $device status_light off && sleep 2 break ;; "-infos on $device") echo -e "\033[1m Infos on $device... \033[0m" inform $device read -p "" break ;; "Menu Principal") exec "$0" ;; *) echo -e "\033[1;31m invalid option \033[0m";; esac done done } while true do clear echo -e "\033[1m 🔈 SoCo-Cli GUI\033[0m" echo -e "" PS3='Select an option: ' options=("About" "Help" "Chambre" "Salon" "Exit") select opt in "${options[@]}" do case $opt in "About") #echo "About" about read -p "" break ;; "Help") #echo "Help" help read -p "" break ;; "Chambre") soco "Chambre" ;; "Salon") soco "Salon" ;; "Exit") exit ;; *) echo "invalid option" ;; esac done done