You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

110 lines
2.0 KiB

  1. #!/bin/bash
  2. DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
  3. export ROOT=`dirname "$DIR"`
  4. export SOUNDS=$ROOT/sounds
  5. export PLAYER=mplayer
  6. export SPEAK=espeak-ng
  7. ALARM_PID=-1
  8. STATIC_PID=-1
  9. function info() {
  10. echo "[INFO]" $@
  11. }
  12. function play() {
  13. cat /dev/null | $PLAYER $@ > /dev/null 2>&1
  14. }
  15. function pa-volume() {
  16. amixer cset numid=3,iface=MIXER,name='Line Out Playback Volume' $1 > /dev/null
  17. }
  18. function pa-volume-normal() {
  19. info "Volume set to Normal"
  20. pa-volume 15
  21. }
  22. function pa-volume-loud() {
  23. info "Volume set to HIGH!"
  24. pa-volume 25
  25. }
  26. function pa-volume-loud-if-inactive() {
  27. LAST_ACTIVE=`human-activity-ago`
  28. if [[ $LAST_ACTIVE > 200 ]]; then
  29. info "Human is inactive. Last activity: $LAST_ACTIVE seconds ago."
  30. pa-volume-loud
  31. else
  32. info "Human is active. Setting only normal volume."
  33. pa-volume-normal
  34. fi
  35. }
  36. function pa-volume-quiet() {
  37. info "Volume set to low"
  38. pa-volume 8
  39. }
  40. function pa-preheat() {
  41. info "PA Preheating"
  42. pa-power off
  43. pa-volume-normal
  44. pa-static-start 40
  45. play $SOUNDS/announcement_4-tone_up_quick.ogg
  46. pa-power on
  47. info "PA Ready"
  48. }
  49. function pa-shutdown() {
  50. info "PA Shutdown"
  51. pa-power off
  52. pa-volume-normal
  53. killall $PLAYER >/dev/null 2>&1
  54. }
  55. function pa-announcement() {
  56. info " DING DONG "
  57. play $SOUNDS/announcement_4-tone_up_smooth.ogg
  58. }
  59. function pa-announcement-quick() {
  60. info " Ding Dong "
  61. play $SOUNDS/announcement_4-tone_up_smooth_quick.ogg
  62. }
  63. function pa-announcement-quickest() {
  64. info " ding-dong "
  65. play $SOUNDS/announcement_4-tone_up_quickest.ogg
  66. }
  67. function pa-alarm-start() {
  68. info "Alarm started"
  69. kill $ALARM_PID 2>/dev/null
  70. play -loop 0 $SOUNDS/alarm_simple.ogg &
  71. ALARM_PID=$!
  72. }
  73. function pa-alarm-stop() {
  74. info "Alarm stopped"
  75. kill $ALARM_PID 2>/dev/null
  76. }
  77. function pa-static-start() {
  78. kill $STATIC_PID 2>/dev/null
  79. play -loop 0 -volume ${1:--1} -softvol $SOUNDS/static.ogg &
  80. STATIC_PID=$!
  81. }
  82. function pa-static-stop() {
  83. kill $STATIC_PID 2>/dev/null
  84. }
  85. function pa-say() {
  86. info "Say: $@"
  87. cat /dev/null | $SPEAK "$@"
  88. }