214 lines
6.7 KiB
Bash
Executable File
214 lines
6.7 KiB
Bash
Executable File
#!/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
|
|
|
|
|