Package: alsa-utils
Version: 1.0.23-4~0
Severity: normal
Tags: patch

I'm currently working on software speech synthesis in the Debian
Installer, and now merging my tested patches.

Here is the patch I'm using for alsa-lib to create an
alsa-utils-udeb package, which is needed to unmute all
cards. I had to factorize the functions for that into a
/usr/share/alsa/utils.sh that both /etc/init.d/alsa-utils and
/lib/debian-installer-startup.d/S37alsa-utils-udeb can use

Samuel

-- System Information:
Debian Release: 6.0
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable'), (1, 
'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.37 (SMP w/2 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages alsa-utils depends on:
ii  dialog             1.1-20100428-1        Displays user-friendly dialog boxe
hi  libasound2         1.0.23-3~0            shared library for ALSA applicatio
ii  libc6              2.11.2-10             Embedded GNU C Library: Shared lib
ii  libncursesw5       5.7+20100313-5        shared libraries for terminal hand
hi  linux-sound-base   1.0.21+dfsg-2+youpi.1 base package for ALSA and OSS soun
ii  lsb-base           3.2-27                Linux Standard Base 3.2 init scrip
ii  module-init-tools  3.12-1                tools for managing Linux kernel mo
ii  udev               164-3                 /dev/ and hotplug management daemo
ii  whiptail           0.52.11-2             Displays user-friendly dialog boxe

Versions of packages alsa-utils recommends:
hi  alsa-base          1.0.21+dfsg-2+youpi.1 ALSA driver configuration files
ii  pciutils           1:3.1.7-6             Linux PCI Utilities

alsa-utils suggests no packages.

-- no debconf information

-- 
Samuel Thibault <samuel.thiba...@fnac.net>
 Profitant de cette occasion, vous serait-il possible de rebooter 
 aussi Modérator et son petit copain qui gère les ressources de 
 download ?
 -+- OB in NPC : Apprendre à flasher son personnel -+-
Index: control
===================================================================
--- control     (révision 2445)
+++ control     (copie de travail)
@@ -30,3 +30,13 @@
   o aconnect, aseqnet, aseqdump: command line MIDI sequencer control
  .
  ALSA is the Advanced Linux Sound Architecture.
+
+Package: alsa-utils-udeb
+Architecture: alpha amd64 arm armeb armel armhf avr32 hppa i386 ia64 m32r m68k 
mips mipsel powerpc powerpcspe ppc64 s390 s390x sh3 sh3eb sh4 sh4eb sparc 
sparc64
+Provides: audio-mixer
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Package-Type: udeb
+Description: Utilities for configuring and using ALSA
+ Included tools: amixer and alsactl.
+ .
+ ALSA is the Advanced Linux Sound Architecture.
Index: alsa-utils-udeb.start
===================================================================
--- alsa-utils-udeb.start       (révision 0)
+++ alsa-utils-udeb.start       (révision 0)
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+. /usr/share/alsa/utils.sh
+
+preinit_levels all
+sanify_levels all

Modification de propriétés sur alsa-utils-udeb.start
___________________________________________________________________
Ajouté : svn:executable
   + *

Index: rules
===================================================================
--- rules       (révision 2445)
+++ rules       (copie de travail)
@@ -65,10 +65,14 @@
        dh_testdir
        dh_testroot
        dh_installdirs
+       dh_install
        install $(INSTALL_UAG) -m644 debian/udev.rules \
                debian/alsa-utils/lib/udev/rules.d/80-alsa.rules
        install $(INSTALL_UAG) -m755 debian/udev.script \
                debian/alsa-utils/lib/udev/alsa-utils
+       install $(CURDIR)/debian/alsa-utils/usr/bin/amixer 
$(CURDIR)/debian/alsa-utils-udeb/usr/bin/
+       install $(CURDIR)/debian/alsa-utils/usr/sbin/alsactl 
$(CURDIR)/debian/alsa-utils-udeb/usr/sbin/
+       install $(CURDIR)/debian/alsa-utils-udeb.start 
$(CURDIR)/debian/alsa-utils-udeb/lib/debian-installer-startup.d/S37alsa-utils-udeb
        dh_link
        DH_OPTIONS= dh_installinit --no-start -- start 50 S . stop 50 0 1 6 .
        #dh_installinit
Index: alsa-utils-udeb.dirs
===================================================================
--- alsa-utils-udeb.dirs        (révision 0)
+++ alsa-utils-udeb.dirs        (révision 0)
@@ -0,0 +1,3 @@
+usr/bin
+usr/sbin
+lib/debian-installer-startup.d
Index: alsa-utils-udeb.install
===================================================================
--- alsa-utils-udeb.install     (révision 0)
+++ alsa-utils-udeb.install     (révision 0)
@@ -0,0 +1 @@
+debian/utils.sh /usr/share/alsa
Index: init
===================================================================
--- init        (révision 2445)
+++ init        (copie de travail)
@@ -27,6 +27,7 @@
 MYNAME=/etc/init.d/alsa-utils
 
 . /lib/lsb/init-functions
+. /usr/share/alsa/utils.sh
 
 # $1 EXITSTATUS
 # [$2 MESSAGE]
@@ -48,8 +49,6 @@
 
 executable amixer || { echo "${MYNAME}: Error: No amixer program available." 
>&2 ; exit 1 ; }
 
-bugout() { echo "${MYNAME}: Programming error" >&2 ; exit 123 ; }
-
 # $1 <card ID> | "all"
 restore_levels()
 {
@@ -85,185 +84,8 @@
        fi
 }
 
-echo_card_indices()
-{
-       if [ -f /proc/asound/cards ] ; then
-               sed -n -e's/^[[:space:]]*\([0-7]\)[[:space:]].*/\1/p' 
/proc/asound/cards
-       fi
-}
 
-filter_amixer_output()
-{
-       sed \
-               -e '/Unable to find simple control/d' \
-               -e '/Unknown playback setup/d' \
-               -e '/^$/d'
-}
-
-# The following functions try to set many controls.
-# No card has all the controls and so some of the attempts are bound to fail.
-# Because of this, the functions can't return useful status values.
-
-# $1 <control>
-# $2 <level>
-# $CARDOPT
-unmute_and_set_level()
-{
-       { [ "$2" ] && [ "$CARDOPT" ] ; } || bugout
-       amixer $CARDOPT -q set "$1" "$2" unmute 2>&1 | filter_amixer_output || :
-       return 0
-}
-
-# $1 <control>
-# $CARDOPT
-mute_and_zero_level()
-{
-       { [ "$1" ] && [ "$CARDOPT" ] ; } || bugout
-       amixer $CARDOPT -q set "$1" "0%" mute 2>&1 | filter_amixer_output || :
-       return 0
-}
-
-# $1 <control>
-# $2 "on" | "off"
-# $CARDOPT
-switch_control()
-{
-       { [ "$2" ] && [ "$CARDOPT" ] ; } || bugout
-       amixer $CARDOPT -q set "$1" "$2" 2>&1 | filter_amixer_output || :
-       return 0
-}
-
 # $1 <card ID>
-sanify_levels_on_card()
-{
-       CARDOPT="-c $1"
-
-       unmute_and_set_level "Master" "80%"
-       unmute_and_set_level "Master Mono" "80%"   # See Bug#406047
-       unmute_and_set_level "Master Digital" "80%"   # E.g., cs4237B
-       unmute_and_set_level "Playback" "80%"
-       unmute_and_set_level "Headphone" "70%"
-       unmute_and_set_level "PCM" "80%"
-       unmute_and_set_level "PCM,1" "80%"   # E.g., ess1969
-       unmute_and_set_level "DAC" "80%"     # E.g., envy24, cs46xx
-       unmute_and_set_level "DAC,0" "80%"   # E.g., envy24
-       unmute_and_set_level "DAC,1" "80%"   # E.g., envy24
-       unmute_and_set_level "Synth" "80%"
-       unmute_and_set_level "CD" "80%"
-
-       mute_and_zero_level "Mic"
-       mute_and_zero_level "IEC958"         # Ubuntu #19648
-
-       # Intel P4P800-MX  (Ubuntu bug #5813)
-       switch_control "Master Playback Switch" on
-       switch_control "Master Surround" on
-
-       # Trident/YMFPCI/emu10k1:
-       unmute_and_set_level "Wave" "80%"
-       unmute_and_set_level "Music" "80%"
-       unmute_and_set_level "AC97" "80%"
-
-       # DRC:
-       unmute_and_set_level "Dynamic Range Compression" "80%"
-
-       # Required for HDA Intel (hda-intel):
-       unmute_and_set_level "Front" "80%"
-
-       # Required for SB Live 7.1/24-bit (ca0106):
-       unmute_and_set_level "Analog Front" "80%"
-
-       # Required at least for Via 823x hardware on DFI K8M800-MLVF 
Motherboard with kernels 2.6.10-3/4 (see ubuntu #7286):
-       switch_control "IEC958 Capture Monitor" off
-
-       # Required for hardware allowing toggles for AC97 through IEC958,
-       #  valid values are 0, 1, 2, 3. Needs to be set to 0 for PCM1.
-       unmute_and_set_level "IEC958 Playback AC97-SPSA" "0"
-
-       # Required for newer Via hardware (see Ubuntu #31784)
-       unmute_and_set_level "VIA DXS,0" "80%"
-       unmute_and_set_level "VIA DXS,1" "80%"
-       unmute_and_set_level "VIA DXS,2" "80%"
-       unmute_and_set_level "VIA DXS,3" "80%"
-
-       # Required on some notebooks with ICH4:
-       switch_control "Headphone Jack Sense" off
-       switch_control "Line Jack Sense" off
-
-       # Some machines need one or more of these to be on;
-       # others need one or more of these to be off:
-       #
-       # switch_control "External Amplifier" on
-       switch_control "Audigy Analog/Digital Output Jack" on
-       switch_control "SB Live Analog/Digital Output Jack" on
-       
-       # D1984 -- Thinkpad T61/X61
-       switch_control "Speaker" on
-       switch_control "Headphone" on
-
-       # HDA-Intel w/ "Digital" capture mixer (See Ubuntu #193823)
-       unmute_and_set_level "Digital" "80%"
-
-       # On MacBookPro5,3 and later models (See Bug#597791)
-       unmute_and_set_level "Front Speaker" "80%"
-       # On MacBook5,2 models (See Bug#602973)
-       unmute_and_set_level "LFE" "80%"
-
-       # On Intel 82801H (See Bug#603550)
-       unmute_and_set_level "Speaker" "80%"
-
-       return 0
-}
-
-# $1 <card ID> | "all"
-sanify_levels()
-{
-       TTSDML_RETURNSTATUS=0
-       case "$1" in
-         all)
-               for CARD in $(echo_card_indices) ; do
-                       sanify_levels_on_card "$CARD" || TTSDML_RETURNSTATUS=1
-               done
-               ;;
-         *)
-               sanify_levels_on_card "$1" || TTSDML_RETURNSTATUS=1
-               ;;
-       esac
-       return $TTSDML_RETURNSTATUS
-}
-
-# $1 <card ID>
-preinit_levels_on_card()
-{
-       CARDOPT="-c $1"
-
-       # Silly dance to activate internal speakers by default on PowerMac
-       # Snapper and Tumbler
-       id=$(cat /proc/asound/card$1/id 2>/dev/null)
-       if [ "$id" = "Snapper" -o "$id" = "Tumbler" ]; then
-               switch_control "Auto Mute" off
-               switch_control "PC Speaker" off
-               switch_control "Auto Mute" on
-       fi
-}
-
-# $1 <card ID> | "all"
-preinit_levels()
-{
-       TTSDML_RETURNSTATUS=0
-       case "$1" in
-         all)
-               for CARD in $(echo_card_indices) ; do
-                       preinit_levels_on_card "$CARD" || TTSDML_RETURNSTATUS=1
-               done
-               ;;
-         *)
-               preinit_levels_on_card "$1" || TTSDML_RETURNSTATUS=1
-               ;;
-       esac
-       return $TTSDML_RETURNSTATUS
-}
-
-# $1 <card ID>
 mute_and_zero_levels_on_card()
 {
        CARDOPT="-c $1"
Index: install
===================================================================
--- install     (révision 0)
+++ install     (révision 0)
@@ -0,0 +1 @@
+debian/utils.sh /usr/share/alsa
Index: utils.sh
===================================================================
--- utils.sh    (révision 0)
+++ utils.sh    (révision 0)
@@ -0,0 +1,181 @@
+#!/bin/sh
+
+bugout() { echo "${MYNAME}: Programming error" >&2 ; exit 123 ; }
+
+echo_card_indices()
+{
+       if [ -f /proc/asound/cards ] ; then
+               sed -n -e's/^[[:space:]]*\([0-7]\)[[:space:]].*/\1/p' 
/proc/asound/cards
+       fi
+}
+
+filter_amixer_output()
+{
+       sed \
+               -e '/Unable to find simple control/d' \
+               -e '/Unknown playback setup/d' \
+               -e '/^$/d'
+}
+
+# The following functions try to set many controls.
+# No card has all the controls and so some of the attempts are bound to fail.
+# Because of this, the functions can't return useful status values.
+
+# $1 <control>
+# $2 <level>
+# $CARDOPT
+unmute_and_set_level()
+{
+       { [ "$2" ] && [ "$CARDOPT" ] ; } || bugout
+       amixer $CARDOPT -q set "$1" "$2" unmute 2>&1 | filter_amixer_output || :
+       return 0
+}
+
+# $1 <control>
+# $CARDOPT
+mute_and_zero_level()
+{
+       { [ "$1" ] && [ "$CARDOPT" ] ; } || bugout
+       amixer $CARDOPT -q set "$1" "0%" mute 2>&1 | filter_amixer_output || :
+       return 0
+}
+
+# $1 <control>
+# $2 "on" | "off"
+# $CARDOPT
+switch_control()
+{
+       { [ "$2" ] && [ "$CARDOPT" ] ; } || bugout
+       amixer $CARDOPT -q set "$1" "$2" 2>&1 | filter_amixer_output || :
+       return 0
+}
+
+# $1 <card ID>
+sanify_levels_on_card()
+{
+       CARDOPT="-c $1"
+
+       unmute_and_set_level "Master" "80%"
+       unmute_and_set_level "Master Mono" "80%"   # See Bug#406047
+       unmute_and_set_level "Master Digital" "80%"   # E.g., cs4237B
+       unmute_and_set_level "Playback" "80%"
+       unmute_and_set_level "Headphone" "70%"
+       unmute_and_set_level "PCM" "80%"
+       unmute_and_set_level "PCM,1" "80%"   # E.g., ess1969
+       unmute_and_set_level "DAC" "80%"     # E.g., envy24, cs46xx
+       unmute_and_set_level "DAC,0" "80%"   # E.g., envy24
+       unmute_and_set_level "DAC,1" "80%"   # E.g., envy24
+       unmute_and_set_level "Synth" "80%"
+       unmute_and_set_level "CD" "80%"
+
+       mute_and_zero_level "Mic"
+       mute_and_zero_level "IEC958"         # Ubuntu #19648
+
+       # Intel P4P800-MX  (Ubuntu bug #5813)
+       switch_control "Master Playback Switch" on
+       switch_control "Master Surround" on
+
+       # Trident/YMFPCI/emu10k1:
+       unmute_and_set_level "Wave" "80%"
+       unmute_and_set_level "Music" "80%"
+       unmute_and_set_level "AC97" "80%"
+
+       # DRC:
+       unmute_and_set_level "Dynamic Range Compression" "80%"
+
+       # Required for HDA Intel (hda-intel):
+       unmute_and_set_level "Front" "80%"
+
+       # Required for SB Live 7.1/24-bit (ca0106):
+       unmute_and_set_level "Analog Front" "80%"
+
+       # Required at least for Via 823x hardware on DFI K8M800-MLVF 
Motherboard with kernels 2.6.10-3/4 (see ubuntu #7286):
+       switch_control "IEC958 Capture Monitor" off
+
+       # Required for hardware allowing toggles for AC97 through IEC958,
+       #  valid values are 0, 1, 2, 3. Needs to be set to 0 for PCM1.
+       unmute_and_set_level "IEC958 Playback AC97-SPSA" "0"
+
+       # Required for newer Via hardware (see Ubuntu #31784)
+       unmute_and_set_level "VIA DXS,0" "80%"
+       unmute_and_set_level "VIA DXS,1" "80%"
+       unmute_and_set_level "VIA DXS,2" "80%"
+       unmute_and_set_level "VIA DXS,3" "80%"
+
+       # Required on some notebooks with ICH4:
+       switch_control "Headphone Jack Sense" off
+       switch_control "Line Jack Sense" off
+
+       # Some machines need one or more of these to be on;
+       # others need one or more of these to be off:
+       #
+       # switch_control "External Amplifier" on
+       switch_control "Audigy Analog/Digital Output Jack" on
+       switch_control "SB Live Analog/Digital Output Jack" on
+       
+       # D1984 -- Thinkpad T61/X61
+       switch_control "Speaker" on
+       switch_control "Headphone" on
+
+       # HDA-Intel w/ "Digital" capture mixer (See Ubuntu #193823)
+       unmute_and_set_level "Digital" "80%"
+
+       # On MacBookPro5,3 and later models (See Bug#597791)
+       unmute_and_set_level "Front Speaker" "80%"
+       # On MacBook5,2 models (See Bug#602973)
+       unmute_and_set_level "LFE" "80%"
+
+       # On Intel 82801H (See Bug#603550)
+       unmute_and_set_level "Speaker" "80%"
+
+       return 0
+}
+
+# $1 <card ID> | "all"
+sanify_levels()
+{
+       TTSDML_RETURNSTATUS=0
+       case "$1" in
+         all)
+               for CARD in $(echo_card_indices) ; do
+                       sanify_levels_on_card "$CARD" || TTSDML_RETURNSTATUS=1
+               done
+               ;;
+         *)
+               sanify_levels_on_card "$1" || TTSDML_RETURNSTATUS=1
+               ;;
+       esac
+       return $TTSDML_RETURNSTATUS
+}
+
+# $1 <card ID>
+preinit_levels_on_card()
+{
+       CARDOPT="-c $1"
+
+       # Silly dance to activate internal speakers by default on PowerMac
+       # Snapper and Tumbler
+       id=$(cat /proc/asound/card$1/id 2>/dev/null)
+       if [ "$id" = "Snapper" -o "$id" = "Tumbler" ]; then
+               switch_control "Auto Mute" off
+               switch_control "PC Speaker" off
+               switch_control "Auto Mute" on
+       fi
+}
+
+# $1 <card ID> | "all"
+preinit_levels()
+{
+       TTSDML_RETURNSTATUS=0
+       case "$1" in
+         all)
+               for CARD in $(echo_card_indices) ; do
+                       preinit_levels_on_card "$CARD" || TTSDML_RETURNSTATUS=1
+               done
+               ;;
+         *)
+               preinit_levels_on_card "$1" || TTSDML_RETURNSTATUS=1
+               ;;
+       esac
+       return $TTSDML_RETURNSTATUS
+}

Modification de propriétés sur utils.sh
___________________________________________________________________
Ajouté : svn:executable
   + *

Reply via email to