toggle-mic.sh 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #!/bin/bash
  2. (($1)) && ALSA_CAPTURE_CARD_N=$1
  3. MUTE_MODE=0
  4. CAPTURE_PIN='Capture,0'
  5. CAPTURE_STATE_ON='100% cap'
  6. CAPTURE_STATE_OFF='0% nocap'
  7. LINE_INPUT_PIN='Line'
  8. MIC_INPUT_PIN='Rear Mic'
  9. MIC_BOOST_PIN='Rear Mic Boost,0'
  10. MIC_BOOST_VAL='20.00dB'
  11. LED_STATE_ON='-led'
  12. LED_STATE_OFF='led'
  13. TOGGLE_STATE_ON='1'
  14. TOGGLE_STATE_OFF='0'
  15. CAPTURE_STATE="$CAPTURE_STATE_OFF"
  16. LED_STATE="$LED_STATE_OFF"
  17. TOGGLE_STATE="$TOGGLE_STATE_OFF"
  18. STATE_FILE=~/.config/mic-toggle-state
  19. [ -z $ALSA_CAPTURE_CARD_N ] && ( (speaker-test -t sine -f 1000)& pid=$! ; sleep 0.1s ; kill -9 $pid ; )
  20. [ -z $ALSA_CAPTURE_CARD_N ] && echo "no card # specified" && exit
  21. [ -f "$STATE_FILE" ] && ((`cat $STATE_FILE`)) && is_off=1 || is_off=0
  22. (($MUTE_MODE)) && capture_state_off=$CAPTURE_STATE_OFF || capture_state_off=$CAPTURE_STATE_ON
  23. (($is_off)) && input_pin=$LINE_INPUT_PIN || input_pin=$MIC_INPUT_PIN
  24. if (($is_off))
  25. then CAPTURE_STATE="$capture_state_off" LED_STATE="$LED_STATE_OFF" TOGGLE_STATE="$TOGGLE_STATE_OFF"
  26. else CAPTURE_STATE="$CAPTURE_STATE_ON" LED_STATE="$LED_STATE_ON" TOGGLE_STATE="$TOGGLE_STATE_ON"
  27. fi
  28. amixer -c $ALSA_CAPTURE_CARD_N sset $CAPTURE_PIN $CAPTURE_STATE
  29. amixer -c $ALSA_CAPTURE_CARD_N sset 'Input Source' "$input_pin"
  30. amixer -c $ALSA_CAPTURE_CARD_N sset "$MIC_BOOST_PIN" "$MIC_BOOST_VAL"
  31. xset "$LED_STATE" named 'Scroll Lock'
  32. echo "$TOGGLE_STATE" > $STATE_FILE
  33. echo "cat STATE_FILE=`cat $STATE_FILE` CAPTURE_STATE=$CAPTURE_STATE LED_STATE=$LED_STATE TOGGLE_STATE=$TOGGLE_STATE input_pin=$input_pin"