Creality-Helper-Script/scripts/usb_camera.sh
2024-05-08 21:04:07 +02:00

104 lines
3.6 KiB
Bash
Executable file

#!/bin/sh
set -e
function usb_camera_message(){
top_line
title 'USB Camera Support' "${yellow}"
inner_line
hr
echo -e "${cyan}This allows to use third-party camera from your printer's ${white}"
echo -e "${cyan}USB port. ${white}"
hr
bottom_line
}
function install_usb_camera(){
usb_camera_message
local yn
while true; do
install_msg "USB Camera Support" yn
case "${yn}" in
Y|y)
echo -e "${white}"
echo -e "Info: Copying file..."
if [ "$model" = "K1" ]; then
cp "$USB_CAMERA_DUAL_URL" "$INITD_FOLDER"/S50usb_camera
else
cp "$USB_CAMERA_SINGLE_URL" "$INITD_FOLDER"/S50usb_camera
echo
echo -e " ${darkred}Be careful with the 1080p resolution!"
echo -e " It takes more resources and timelapses are larger and take longer to convert.${white}"
echo -e " 720p is a good compromise between quality and performance."
echo -e " Make sure your camera is compatible with the chosen resolution."
echo
local resolution
while true; do
read -p " What camera resolution do you want to apply? (${yellow}480p${white}/${yellow}720p${white}/${yellow}1080p${white}): ${yellow}" resolution
case "${resolution}" in
480p|480P)
echo -e "${white}"
echo -e "Info: Applying change..."
sed -i 's/1280x720/640x480/g' "$INITD_FOLDER"/S50usb_camera
break;;
720p|720P)
echo -e "${white}"
echo -e "Info: Applying change..."
break;;
1080p|1080p)
echo -e "${white}"
echo -e "Info: Applying change..."
sed -i 's/1280x720/1920x1080/g' "$INITD_FOLDER"/S50usb_camera
break;;
*)
error_msg "Please select a correct choice!";;
esac
done
fi
chmod 755 "$INITD_FOLDER"/S50usb_camera
echo -e "Info: Installing necessary packages..."
"$ENTWARE_FILE" update && "$ENTWARE_FILE" install mjpg-streamer mjpg-streamer-input-http mjpg-streamer-input-uvc mjpg-streamer-output-http mjpg-streamer-www
echo -e "Info: Starting service..."
"$INITD_FOLDER"/S50usb_camera start
ok_msg "USB Camera Support has been installed successfully!"
return;;
N|n)
error_msg "Installation canceled!"
return;;
*)
error_msg "Please select a correct choice!";;
esac
done
}
function remove_usb_camera(){
usb_camera_message
local yn
while true; do
remove_msg "USB Camera Support" yn
case "${yn}" in
Y|y)
echo -e "${white}"
echo -e "Info: Stopping service..."
"$INITD_FOLDER"/S50usb_camera stop
echo -e "Info: Removing file..."
rm -f "$INITD_FOLDER"/S50usb_camera
echo -e "Info: Removing packages..."
set +e
"$ENTWARE_FILE" --autoremove remove mjpg-streamer-www
"$ENTWARE_FILE" --autoremove remove mjpg-streamer-output-http
"$ENTWARE_FILE" --autoremove remove mjpg-streamer-input-uvc
"$ENTWARE_FILE" --autoremove remove mjpg-streamer-input-http
"$ENTWARE_FILE" --autoremove remove mjpg-streamer
set -e
ok_msg "USB Camera Support has been removed successfully!"
echo -e " Please reboot your printer by using power switch on back!"
return;;
N|n)
error_msg "Deletion canceled!"
return;;
*)
error_msg "Please select a correct choice!";;
esac
done
}