#!/bin/sh # # Callback Handler for zaurus mixer events # # $1 = Current Jack function # Valid options: "Off, Headphone, Headset, Mic, Line" # $2 = External Speaker Status # Valid options: "On, Off" # The speaker can't be "On" in Headset, Mic or Line Jack modes if [ -z "$1" -o -z "$2" ]; then echo "Incorrect usage" exit 1 fi JACK="$1" SPK="$2" LEFT="true" RLPLAYBACK="false" RLBYPASS="false" case $SPK in "On") ;; "Off") ;; *) echo "Invalid speaker option: $SPK" exit 1 ;; esac case $JACK in "Off") ;; "Headphone") ;; "Headset" | "Mic" | "Line") LEFT="false" RLPLAYBACK="true" RLBYPASS="true" SPK="Off" ;; *) echo "Invalid jack option: $JACK" exit 1 ;; esac #. @appconfdir@/config @sbindir@/alsactl store cp /etc/asound.state /etc/asound.state.bak cat /etc/asound.state | sed "/Jack Function/ { N s:\(Jack Function.*\n.*value \).*$:\1$JACK: }; /Speaker Function/ { N s:\(Speaker Function.*\n.*value \).*$:\1$SPK: }; /Right Mixer Left Playback/ { N s:\(Right Mixer Left Playback.*\n.*value \).*$:\1$RLPLAYBACK: }; /Right Mixer Left Bypass/ { N s:\(Right Mixer Left Bypass.*\n.*value \).*$:\1$RLBYPASS: }; /Left Mixer Playback/ { N s:\(Left Mixer Playback.*\n.*value \).*$:\1$LEFT: }" > /etc/asound.state.new mv /etc/asound.state.new /etc/asound.state @sbindir@/alsactl restore