From 2c4b3c8683d541ab1ce6178220d1e41386592f60364821e3ecacfeca8144aecd Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Mon, 18 Aug 2008 17:01:56 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/alsa?expand=0&rev=48 --- alsa-lib-1.0.17.tar.bz2 | 3 - alsa-lib-1.0.17a.tar.bz2 | 3 + alsa-lib-git-fixes.diff | 337 --------------------------------------- alsa.changes | 13 ++ alsa.spec | 21 ++- joystick | 23 +-- sysconfig.joystick | 22 --- 7 files changed, 31 insertions(+), 391 deletions(-) delete mode 100644 alsa-lib-1.0.17.tar.bz2 create mode 100644 alsa-lib-1.0.17a.tar.bz2 delete mode 100644 alsa-lib-git-fixes.diff diff --git a/alsa-lib-1.0.17.tar.bz2 b/alsa-lib-1.0.17.tar.bz2 deleted file mode 100644 index b8b843d..0000000 --- a/alsa-lib-1.0.17.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bc691463af8506c1c84db0edab727ee8f8ee4ecd1777b0e264db2525d4500833 -size 788551 diff --git a/alsa-lib-1.0.17a.tar.bz2 b/alsa-lib-1.0.17a.tar.bz2 new file mode 100644 index 0000000..0783028 --- /dev/null +++ b/alsa-lib-1.0.17a.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ace3d9c57eae65c7f292704b49c3806a1f90ce2cdeb4aca1e5abf021127ad3ed +size 789428 diff --git a/alsa-lib-git-fixes.diff b/alsa-lib-git-fixes.diff deleted file mode 100644 index 92577a2..0000000 --- a/alsa-lib-git-fixes.diff +++ /dev/null @@ -1,337 +0,0 @@ -diff --git a/include/asoundef.h b/include/asoundef.h -index e780c65..c6c4eec 100644 ---- a/include/asoundef.h -+++ b/include/asoundef.h -@@ -69,35 +69,56 @@ extern "C" { - #define IEC958_AES1_PRO_USERBITS_UDEF (12<<4) /**< user defined application */ - #define IEC958_AES1_CON_CATEGORY 0x7f /**< consumer category */ - #define IEC958_AES1_CON_GENERAL 0x00 /**< general category */ --#define IEC958_AES1_CON_EXPERIMENTAL 0x40 /**< experimental category */ --#define IEC958_AES1_CON_SOLIDMEM_MASK 0x0f /**< ??? */ --#define IEC958_AES1_CON_SOLIDMEM_ID 0x08 /**< ??? */ --#define IEC958_AES1_CON_BROADCAST1_MASK 0x07 /**< ??? */ --#define IEC958_AES1_CON_BROADCAST1_ID 0x04 /**< ??? */ --#define IEC958_AES1_CON_DIGDIGCONV_MASK 0x07 /**< digital<->digital converter mask */ --#define IEC958_AES1_CON_DIGDIGCONV_ID 0x02 /**< digital<->digital converter id */ --#define IEC958_AES1_CON_ADC_COPYRIGHT_MASK 0x1f /**< ADC Copyright mask */ --#define IEC958_AES1_CON_ADC_COPYRIGHT_ID 0x06 /**< ADC Copyright ID */ --#define IEC958_AES1_CON_ADC_MASK 0x1f /**< ADC Mask */ --#define IEC958_AES1_CON_ADC_ID 0x16 /**< ADC ID */ --#define IEC958_AES1_CON_BROADCAST2_MASK 0x0f /**< Broadcast mask */ --#define IEC958_AES1_CON_BROADCAST2_ID 0x0e /**< Broadcast ID */ - #define IEC958_AES1_CON_LASEROPT_MASK 0x07 /**< Laser-optical mask */ - #define IEC958_AES1_CON_LASEROPT_ID 0x01 /**< Laser-optical ID */ --#define IEC958_AES1_CON_MUSICAL_MASK 0x07 /**< Musical device mask */ --#define IEC958_AES1_CON_MUSICAL_ID 0x05 /**< Musical device ID */ --#define IEC958_AES1_CON_MAGNETIC_MASK 0x07 /**< Magnetic device mask */ --#define IEC958_AES1_CON_MAGNETIC_ID 0x03 /**< Magnetic device ID */ - #define IEC958_AES1_CON_IEC908_CD (IEC958_AES1_CON_LASEROPT_ID|0x00) /**< IEC958 CD compatible device */ - #define IEC958_AES1_CON_NON_IEC908_CD (IEC958_AES1_CON_LASEROPT_ID|0x08) /**< non-IEC958 CD compatible device */ -+#define IEC958_AES1_CON_MINI_DISC (IEC958_AES1_CON_LASEROPT_ID|0x48) /**< Mini-Disc device */ -+#define IEC958_AES1_CON_DVD (IEC958_AES1_CON_LASEROPT_ID|0x18) /**< DVD device */ -+#define IEC958_AES1_CON_LASTEROPT_OTHER (IEC958_AES1_CON_LASEROPT_ID|0x78) /**< Other laser-optical product */ -+#define IEC958_AES1_CON_DIGDIGCONV_MASK 0x07 /**< digital<->digital converter mask */ -+#define IEC958_AES1_CON_DIGDIGCONV_ID 0x02 /**< digital<->digital converter id */ - #define IEC958_AES1_CON_PCM_CODER (IEC958_AES1_CON_DIGDIGCONV_ID|0x00) /**< PCM coder */ --#define IEC958_AES1_CON_SAMPLER (IEC958_AES1_CON_DIGDIGCONV_ID|0x20) /**< PCM sampler */ --#define IEC958_AES1_CON_MIXER (IEC958_AES1_CON_DIGDIGCONV_ID|0x10) /**< Mixer */ -+#define IEC958_AES1_CON_MIXER (IEC958_AES1_CON_DIGDIGCONV_ID|0x10) /**< Digital signal mixer */ - #define IEC958_AES1_CON_RATE_CONVERTER (IEC958_AES1_CON_DIGDIGCONV_ID|0x18) /**< Rate converter */ --#define IEC958_AES1_CON_SYNTHESIZER (IEC958_AES1_CON_MUSICAL_ID|0x00) /**< Synthesizer */ --#define IEC958_AES1_CON_MICROPHONE (IEC958_AES1_CON_MUSICAL_ID|0x08) /**< Microphone */ -+#define IEC958_AES1_CON_SAMPLER (IEC958_AES1_CON_DIGDIGCONV_ID|0x20) /**< PCM sampler */ -+#define IEC958_AES1_CON_DSP (IEC958_AES1_CON_DIGDIGCONV_ID|0x28) /**< Digital sound processor */ -+#define IEC958_AES1_CON_DIGDIGCONV_OTHER (IEC958_AES1_CON_DIGDIGCONV_ID|0x78) /**< Other digital<->digital product */ -+#define IEC958_AES1_CON_MAGNETIC_MASK 0x07 /**< Magnetic device mask */ -+#define IEC958_AES1_CON_MAGNETIC_ID 0x03 /**< Magnetic device ID */ - #define IEC958_AES1_CON_DAT (IEC958_AES1_CON_MAGNETIC_ID|0x00) /**< Digital Audio Tape */ - #define IEC958_AES1_CON_VCR (IEC958_AES1_CON_MAGNETIC_ID|0x08) /**< Video recorder */ -+#define IEC958_AES1_CON_DCC (IEC958_AES1_CON_MAGNETIC_ID|0x40) /**< Digital compact cassette */ -+#define IEC958_AES1_CON_MAGNETIC_DISC (IEC958_AES1_CON_MAGNETIC_ID|0x18) /**< Magnetic disc digital audio device */ -+#define IEC958_AES1_CON_MAGNETIC_OTHER (IEC958_AES1_CON_MAGNETIC_ID|0x78) /**< Other magnetic device */ -+#define IEC958_AES1_CON_BROADCAST1_MASK 0x07 /**< Broadcast mask */ -+#define IEC958_AES1_CON_BROADCAST1_ID 0x04 /**< Broadcast ID */ -+#define IEC958_AES1_CON_DAB_JAPAN (IEC958_AES1_CON_BROADCAST1_ID|0x00) /**< Digital audio broadcast (Japan) */ -+#define IEC958_AES1_CON_DAB_EUROPE (IEC958_AES1_CON_BROADCAST1_ID|0x08) /**< Digital audio broadcast (Europe) */ -+#define IEC958_AES1_CON_DAB_USA (IEC958_AES1_CON_BROADCAST1_ID|0x60) /**< Digital audio broadcast (USA) */ -+#define IEC958_AES1_CON_SOFTWARE (IEC958_AES1_CON_BROADCAST1_ID|0x40) /**< Electronic software delivery */ -+#define IEC958_AES1_CON_IEC62105 (IEC958_AES1_CON_BROADCAST1_ID|0x20) /**< Used by another standard (IEC 62105) */ -+#define IEC958_AES1_CON_BROADCAST1_OTHER (IEC958_AES1_CON_BROADCAST1_ID|0x78) /**< Other broadcast product */ -+#define IEC958_AES1_CON_BROADCAST2_MASK 0x0f /**< Broadcast alternative mask */ -+#define IEC958_AES1_CON_BROADCAST2_ID 0x0e /**< Broadcast alternative ID */ -+#define IEC958_AES1_CON_MUSICAL_MASK 0x07 /**< Musical device mask */ -+#define IEC958_AES1_CON_MUSICAL_ID 0x05 /**< Musical device ID */ -+#define IEC958_AES1_CON_SYNTHESIZER (IEC958_AES1_CON_MUSICAL_ID|0x00) /**< Synthesizer */ -+#define IEC958_AES1_CON_MICROPHONE (IEC958_AES1_CON_MUSICAL_ID|0x08) /**< Microphone */ -+#define IEC958_AES1_CON_MUSICAL_OTHER (IEC958_AES1_CON_MUSICAL_ID|0x78) /**< Other musical device */ -+#define IEC958_AES1_CON_ADC_MASK 0x1f /**< ADC Mask */ -+#define IEC958_AES1_CON_ADC_ID 0x06 /**< ADC ID */ -+#define IEC958_AES1_CON_ADC (IEC958_AES1_CON_ADC_ID|0x00) /**< ADC without copyright information */ -+#define IEC958_AES1_CON_ADC_OTHER (IEC958_AES1_CON_ADC_ID|0x60) /**< Other ADC product (with no copyright information) */ -+#define IEC958_AES1_CON_ADC_COPYRIGHT_MASK 0x1f /**< ADC Copyright mask */ -+#define IEC958_AES1_CON_ADC_COPYRIGHT_ID 0x16 /**< ADC Copyright ID */ -+#define IEC958_AES1_CON_ADC_COPYRIGHT (IEC958_AES1_CON_ADC_COPYRIGHT_ID|0x00) /**< ADC with copyright information */ -+#define IEC958_AES1_CON_ADC_COPYRIGHT_OTHER (IEC958_AES1_CON_ADC_COPYRIGHT_ID|0x60) /**< Other ADC with copyright information product */ -+#define IEC958_AES1_CON_SOLIDMEM_MASK 0x0f /**< Solid memory based products mask */ -+#define IEC958_AES1_CON_SOLIDMEM_ID 0x08 /**< Solid memory based products ID */ -+#define IEC958_AES1_CON_SOLIDMEM_DIGITAL_RECORDER_PLAYER (IEC958_AES1_CON_SOLIDMEM_ID|0x00) /**< Digital audio recorder and player using solid state memory */ -+#define IEC958_AES1_CON_SOLIDMEM_OTHER (IEC958_AES1_CON_SOLIDMEM_ID|0x70) /**< Other solid state memory based product */ -+#define IEC958_AES1_CON_EXPERIMENTAL 0x40 /**< experimental category */ - #define IEC958_AES1_CON_ORIGINAL (1<<7) /**< this bits depends on the category code */ - #define IEC958_AES2_PRO_SBITS (7<<0) /**< mask - sample bits */ - #define IEC958_AES2_PRO_SBITS_20 (2<<0) /**< 20-bit - coordination */ -@@ -115,8 +136,16 @@ extern "C" { - #define IEC958_AES2_CON_CHANNEL_UNSPEC (0<<4) /**< channel number unspecified */ - #define IEC958_AES3_CON_FS (15<<0) /**< mask - sample frequency */ - #define IEC958_AES3_CON_FS_44100 (0<<0) /**< 44.1kHz */ -+#define IEC958_AES3_CON_FS_NOTID (1<<0) /**< sample frequency non indicated */ - #define IEC958_AES3_CON_FS_48000 (2<<0) /**< 48kHz */ - #define IEC958_AES3_CON_FS_32000 (3<<0) /**< 32kHz */ -+#define IEC958_AES3_CON_FS_22050 (4<<0) /**< 22.05kHz */ -+#define IEC958_AES3_CON_FS_24000 (6<<0) /**< 24kHz */ -+#define IEC958_AES3_CON_FS_88200 (8<<0) /**< 88.2kHz */ -+#define IEC958_AES3_CON_FS_768000 (9<<0) /**< 768kHz */ -+#define IEC958_AES3_CON_FS_96000 (10<<0) /**< 96kHz */ -+#define IEC958_AES3_CON_FS_176400 (12<<0) /**< 176.4kHz */ -+#define IEC958_AES3_CON_FS_192000 (14<<0) /**< 192kHz */ - #define IEC958_AES3_CON_CLOCK (3<<4) /**< mask - clock accuracy */ - #define IEC958_AES3_CON_CLOCK_1000PPM (0<<4) /**< 1000 ppm */ - #define IEC958_AES3_CON_CLOCK_50PPM (1<<4) /**< 50 ppm */ -@@ -129,6 +158,26 @@ extern "C" { - #define IEC958_AES4_CON_WORDLEN_23_19 (4<<1) /**< 23-bit or 19-bit */ - #define IEC958_AES4_CON_WORDLEN_24_20 (5<<1) /**< 24-bit or 20-bit */ - #define IEC958_AES4_CON_WORDLEN_21_17 (6<<1) /**< 21-bit or 17-bit */ -+#define IEC958_AES4_CON_ORIGFS (15<<4) /**< mask - original sample frequency */ -+#define IEC958_AES4_CON_ORIGFS_NOTID (0<<4) /**< original sample frequency not indicated */ -+#define IEC958_AES4_CON_ORIGFS_192000 (1<<4) /**< 192kHz */ -+#define IEC958_AES4_CON_ORIGFS_12000 (2<<4) /**< 12kHz */ -+#define IEC958_AES4_CON_ORIGFS_176400 (3<<4) /**< 176.4kHz */ -+#define IEC958_AES4_CON_ORIGFS_96000 (5<<4) /**< 96kHz */ -+#define IEC958_AES4_CON_ORIGFS_8000 (6<<4) /**< 8kHz */ -+#define IEC958_AES4_CON_ORIGFS_88200 (7<<4) /**< 88.2kHz */ -+#define IEC958_AES4_CON_ORIGFS_16000 (8<<4) /**< 16kHz */ -+#define IEC958_AES4_CON_ORIGFS_24000 (9<<4) /**< 24kHz */ -+#define IEC958_AES4_CON_ORIGFS_11025 (10<<4) /**< 11.025kHz */ -+#define IEC958_AES4_CON_ORIGFS_22050 (11<<4) /**< 22.05kHz */ -+#define IEC958_AES4_CON_ORIGFS_32000 (12<<4) /**< 32kHz */ -+#define IEC958_AES4_CON_ORIGFS_48000 (13<<4) /**< 48kHz */ -+#define IEC958_AES4_CON_ORIGFS_44100 (15<<4) /**< 44.1kHz */ -+#define IEC958_AES5_CON_CGMSA (3<<0) /**< mask - CGMS-A */ -+#define IEC958_AES5_CON_CGMSA_COPYFREELY (0<<0) /**< copying is permitted without restriction */ -+#define IEC958_AES5_CON_CGMSA_COPYONCE (1<<0) /**< one generation of copies may be made */ -+#define IEC958_AES5_CON_CGMSA_COPYNOMORE (2<<0) /**< condition not be used */ -+#define IEC958_AES5_CON_CGMSA_COPYNEVER (3<<0) /**< no copying is permitted */ - - /** \} */ - -diff --git a/src/pcm/pcm_direct.c b/src/pcm/pcm_direct.c -index a884b12..1170963 100644 ---- a/src/pcm/pcm_direct.c -+++ b/src/pcm/pcm_direct.c -@@ -1107,7 +1107,7 @@ int snd_pcm_direct_initialize_poll_fd(snd_pcm_direct_t *dmix) - snd_pcm_info_get_subdevice(info) * 2 + capture); - ret = snd_timer_open(&dmix->timer, name, SND_TIMER_OPEN_NONBLOCK | SND_TIMER_OPEN_TREAD); - if (ret < 0) { -- dmix->tread = 1; -+ dmix->tread = 0; - ret = snd_timer_open(&dmix->timer, name, SND_TIMER_OPEN_NONBLOCK); - if (ret < 0) { - SNDERR("unable to open timer '%s'", name); -@@ -1293,7 +1293,7 @@ int snd_pcm_direct_check_interleave(snd_pcm_direct_t *dmix, snd_pcm_t *pcm) - const snd_pcm_channel_area_t *dst_areas; - const snd_pcm_channel_area_t *src_areas; - -- bits = snd_pcm_format_physical_width(dmix->type); -+ bits = snd_pcm_format_physical_width(pcm->format); - if ((bits % 8) != 0) - interleaved = 0; - channels = dmix->channels; -diff --git a/src/pcm/pcm_plugin.c b/src/pcm/pcm_plugin.c -index c73a02b..c4f5b4a 100644 ---- a/src/pcm/pcm_plugin.c -+++ b/src/pcm/pcm_plugin.c -@@ -203,7 +203,7 @@ static snd_pcm_sframes_t snd_pcm_plugin_rewind(snd_pcm_t *pcm, snd_pcm_uframes_t - snd_pcm_sframes_t n = snd_pcm_mmap_hw_avail(pcm); - snd_pcm_sframes_t sframes; - -- if ((snd_pcm_uframes_t)n > frames) -+ if ((snd_pcm_uframes_t)n < frames) - frames = n; - if (frames == 0) - return 0; -@@ -222,7 +222,7 @@ static snd_pcm_sframes_t snd_pcm_plugin_rewind(snd_pcm_t *pcm, snd_pcm_uframes_t - frames = plugin->client_frames(pcm, sframes); - snd_pcm_mmap_appl_backward(pcm, (snd_pcm_uframes_t) frames); - snd_atomic_write_end(&plugin->watom); -- return n; -+ return (snd_pcm_sframes_t) frames; - } - - static snd_pcm_sframes_t snd_pcm_plugin_forwardable(snd_pcm_t *pcm) -@@ -234,9 +234,9 @@ static snd_pcm_sframes_t snd_pcm_plugin_forward(snd_pcm_t *pcm, snd_pcm_uframes_ - { - snd_pcm_plugin_t *plugin = pcm->private_data; - snd_pcm_sframes_t n = snd_pcm_mmap_avail(pcm); -- snd_pcm_uframes_t sframes; -+ snd_pcm_sframes_t sframes; - -- if ((snd_pcm_uframes_t)n > frames) -+ if ((snd_pcm_uframes_t)n < frames) - frames = n; - if (frames == 0) - return 0; -@@ -246,8 +246,8 @@ static snd_pcm_sframes_t snd_pcm_plugin_forward(snd_pcm_t *pcm, snd_pcm_uframes_ - else - sframes = frames; - snd_atomic_write_begin(&plugin->watom); -- sframes = INTERNAL(snd_pcm_forward)(plugin->gen.slave, (snd_pcm_uframes_t) sframes); -- if ((snd_pcm_sframes_t) sframes < 0) { -+ sframes = INTERNAL(snd_pcm_forward)(plugin->gen.slave, sframes); -+ if (sframes < 0) { - snd_atomic_write_end(&plugin->watom); - return sframes; - } -@@ -255,7 +255,7 @@ static snd_pcm_sframes_t snd_pcm_plugin_forward(snd_pcm_t *pcm, snd_pcm_uframes_ - frames = plugin->client_frames(pcm, sframes); - snd_pcm_mmap_appl_forward(pcm, (snd_pcm_uframes_t) frames); - snd_atomic_write_end(&plugin->watom); -- return n; -+ return (snd_pcm_sframes_t) frames; - } - - static snd_pcm_sframes_t snd_pcm_plugin_write_areas(snd_pcm_t *pcm, -diff --git a/src/pcm/pcm_softvol.c b/src/pcm/pcm_softvol.c -index 7af7f40..eee6424 100644 ---- a/src/pcm/pcm_softvol.c -+++ b/src/pcm/pcm_softvol.c -@@ -275,9 +275,15 @@ static void softvol_convert_stereo_vol(snd_pcm_softvol_t *svol, - return; - } - -- vol[0] = svol->dB_value[svol->cur_vol[0]]; -- vol[1] = svol->dB_value[svol->cur_vol[1]]; -- vol_c = svol->dB_value[(svol->cur_vol[0] + svol->cur_vol[1]) / 2]; -+ if (svol->max_val == 1) { -+ vol[0] = svol->cur_vol[0] ? 0xffff : 0; -+ vol[1] = svol->cur_vol[1] ? 0xffff : 0; -+ vol_c = vol[0] | vol[1]; -+ } else { -+ vol[0] = svol->dB_value[svol->cur_vol[0]]; -+ vol[1] = svol->dB_value[svol->cur_vol[1]]; -+ vol_c = svol->dB_value[(svol->cur_vol[0] + svol->cur_vol[1]) / 2]; -+ } - switch (svol->sformat) { - case SND_PCM_FORMAT_S16_LE: - case SND_PCM_FORMAT_S16_BE: -@@ -325,7 +331,10 @@ static void softvol_convert_mono_vol(snd_pcm_softvol_t *svol, - return; - } - -- vol_scale = svol->dB_value[svol->cur_vol[0]]; -+ if (svol->max_val == 1) -+ vol_scale = svol->cur_vol[0] ? 0xffff : 0; -+ else -+ vol_scale = svol->dB_value[svol->cur_vol[0]]; - switch (svol->sformat) { - case SND_PCM_FORMAT_S16_LE: - case SND_PCM_FORMAT_S16_BE: -@@ -569,9 +578,13 @@ static void snd_pcm_softvol_dump(snd_pcm_t *pcm, snd_output_t *out) - snd_pcm_softvol_t *svol = pcm->private_data; - snd_output_printf(out, "Soft volume PCM\n"); - snd_output_printf(out, "Control: %s\n", svol->elem.id.name); -- snd_output_printf(out, "min_dB: %g\n", svol->min_dB); -- snd_output_printf(out, "max_dB: %g\n", svol->max_dB); -- snd_output_printf(out, "resolution: %d\n", svol->max_val + 1); -+ if (svol->max_val == 1) -+ snd_output_printf(out, "boolean\n"); -+ else { -+ snd_output_printf(out, "min_dB: %g\n", svol->min_dB); -+ snd_output_printf(out, "max_dB: %g\n", svol->max_dB); -+ snd_output_printf(out, "resolution: %d\n", svol->max_val + 1); -+ } - if (pcm->setup) { - snd_output_printf(out, "Its setup is:\n"); - snd_pcm_dump_setup(pcm, out); -@@ -596,13 +609,21 @@ static int add_user_ctl(snd_pcm_softvol_t *svol, snd_ctl_elem_info_t *cinfo, int - int i; - unsigned int def_val; - -- err = snd_ctl_elem_add_integer(svol->ctl, &cinfo->id, count, 0, svol->max_val, 0); -+ if (svol->max_val == 1) -+ err = snd_ctl_elem_add_boolean(svol->ctl, &cinfo->id, count); -+ else -+ err = snd_ctl_elem_add_integer(svol->ctl, &cinfo->id, count, -+ 0, svol->max_val, 0); - if (err < 0) - return err; -- add_tlv_info(svol, cinfo); -- /* set zero dB value as default, or max_val if -- there is no 0 dB setting */ -- def_val = svol->zero_dB_val ? svol->zero_dB_val : svol->max_val; -+ if (svol->max_val == 1) -+ def_val = 1; -+ else { -+ add_tlv_info(svol, cinfo); -+ /* set zero dB value as default, or max_val if -+ there is no 0 dB setting */ -+ def_val = svol->zero_dB_val ? svol->zero_dB_val : svol->max_val; -+ } - for (i = 0; i < count; i++) - svol->elem.value.integer.value[i] = def_val; - return snd_ctl_elem_write(svol->ctl, &svol->elem); -@@ -647,7 +668,7 @@ static int softvol_load_control(snd_pcm_t *pcm, snd_pcm_softvol_t *svol, - svol->max_val = resolution - 1; - svol->min_dB = min_dB; - svol->max_dB = max_dB; -- if (svol->max_dB == ZERO_DB) -+ if (svol->max_val == 1 || svol->max_dB == ZERO_DB) - svol->zero_dB_val = svol->max_val; - else if (svol->max_dB < 0) - svol->zero_dB_val = 0; /* there is no 0 dB setting */ -@@ -671,7 +692,8 @@ static int softvol_load_control(snd_pcm_t *pcm, snd_pcm_softvol_t *svol, - /* hardware control exists */ - return 1; /* notify */ - -- } else if (cinfo->type != SND_CTL_ELEM_TYPE_INTEGER || -+ } else if ((cinfo->type != SND_CTL_ELEM_TYPE_INTEGER && -+ cinfo->type != SND_CTL_ELEM_TYPE_BOOLEAN) || - cinfo->count != (unsigned int)cchannels || - cinfo->value.integer.min != 0 || - cinfo->value.integer.max != resolution - 1) { -@@ -684,7 +706,7 @@ static int softvol_load_control(snd_pcm_t *pcm, snd_pcm_softvol_t *svol, - SNDERR("Cannot add a control"); - return err; - } -- } else { -+ } else if (svol->max_val > 1) { - /* check TLV availability */ - unsigned int tlv[4]; - err = snd_ctl_elem_tlv_read(svol->ctl, &cinfo->id, tlv, sizeof(tlv)); -@@ -693,6 +715,10 @@ static int softvol_load_control(snd_pcm_t *pcm, snd_pcm_softvol_t *svol, - } - } - -+ if (svol->max_val == 1) -+ return 0; -+ -+ /* set up dB table */ - if (min_dB == PRESET_MIN_DB && max_dB == ZERO_DB && resolution == PRESET_RESOLUTION) - svol->dB_value = preset_dB_value; - else { -@@ -863,6 +889,7 @@ pcm.name { - [min_dB REAL] # minimal dB value (default: -51.0) - [max_dB REAL] # maximal dB value (default: 0.0) - [resolution INT] # resolution (default: 256) -+ # resolution = 2 means a mute switch - } - \endcode - -@@ -965,7 +992,7 @@ int _snd_pcm_softvol_open(snd_pcm_t **pcmp, const char *name, - MAX_DB_UPPER_LIMIT); - return -EINVAL; - } -- if (resolution < 0 || resolution > 1024) { -+ if (resolution <= 1 || resolution > 1024) { - SNDERR("Invalid resolution value %d", resolution); - return -EINVAL; - } diff --git a/alsa.changes b/alsa.changes index 1ad919b..35a2cb6 100644 --- a/alsa.changes +++ b/alsa.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Mon Aug 18 18:04:56 CEST 2008 - mrueckert@suse.de + +- remove outdated options in the fillup_and_insserv call + +------------------------------------------------------------------- +Mon Aug 18 16:35:04 CEST 2008 - tiwai@suse.de + +- fixed required-stop of joystick init script +- remove obsolete joystick control parameters from sysconfig and + init script +- updated to alsa-lib 1.0.17a -- just including previous fixes + ------------------------------------------------------------------- Wed Aug 6 15:32:54 CEST 2008 - tiwai@suse.de diff --git a/alsa.spec b/alsa.spec index 4b2788d..84ad793 100644 --- a/alsa.spec +++ b/alsa.spec @@ -1,5 +1,5 @@ # -# spec file for package alsa (Version 1.0.17) +# spec file for package alsa (Version 1.0.17a) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -20,7 +20,7 @@ Name: alsa BuildRequires: doxygen -%define package_version 1.0.17 +%define package_version 1.0.17a License: GPL v2 or later Group: System/Libraries Requires: alsa-utils @@ -28,8 +28,8 @@ Recommends: alsa-plugins alsa-oss PreReq: %insserv_prereq %fillup_prereq AutoReqProv: on Summary: Advanced Linux Sound Architecture -Version: 1.0.17 -Release: 10 +Version: 1.0.17a +Release: 1 Source: ftp://ftp.alsa-project.org/pub/lib/alsa-lib-%{package_version}.tar.bz2 Source8: 40-alsa.rules Source11: alsasound @@ -45,7 +45,7 @@ Source31: all_notes_off.bin Source32: all_notes_off.mid Source33: alsa-info.sh Source34: alsa-init.sh -Patch: alsa-lib-git-fixes.diff +# Patch: alsa-lib-git-fixes.diff Url: http://www.alsa-project.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -117,7 +117,7 @@ Authors: %prep %setup -q -n alsa-lib-%{package_version} -%patch -p1 +# %patch -p1 %build # build alsa-lib @@ -196,7 +196,7 @@ if [ -f /etc/sysconfig/sound ]; then sed -i -e s/LOAD_ALSA_SEQ/LOAD_SEQUENCER/g /etc/sysconfig/sound fi fi -%{fillup_and_insserv -nsy sound alsasound START_ALSA} +%{fillup_and_insserv -ny sound alsasound} %{fillup_and_insserv -n joystick joystick} if [ -f /bin/rpm.bin -a -f /bin/rpm.sh -a -f /bin/uname.sh -a -f /bin/uname.bin ]; then # do nothing in autobuild environment @@ -259,6 +259,13 @@ exit 0 %{_datadir}/alsa %changelog +* Mon Aug 18 2008 mrueckert@suse.de +- remove outdated options in the fillup_and_insserv call +* Mon Aug 18 2008 tiwai@suse.de +- fixed required-stop of joystick init script +- remove obsolete joystick control parameters from sysconfig and + init script +- updated to alsa-lib 1.0.17a -- just including previous fixes * Wed Aug 06 2008 tiwai@suse.de - fix the detection of non-interleaved format in dmix code - fix the detection of old timer tread support in dmix diff --git a/joystick b/joystick index 70d4995..666789a 100644 --- a/joystick +++ b/joystick @@ -8,7 +8,7 @@ ### BEGIN INIT INFO # Provides: joystick # Required-Start: alsasound -# Required-Stop: +# Required-Stop: alsasound # Default-Start: 2 3 5 # Default-Stop: # Short-Description: Set up analog josysticks @@ -35,19 +35,6 @@ function start () { /sbin/modprobe joydev for js in 0 1 2 3; do - # configure joystick port (if necessary) - eval jsport=\$JOYSTICK_CONTROL_PORT_$js - if [ -n "$jsport" ]; then - $alsactl set $js card:"Joystick Address" "port $jsport" - fi - # activate joystick (if necessary) - eval jsctrl=\$JOYSTICK_CONTROL_$js - if [ -n "$jsctrl" -a "$jsctrl" != no ]; then - if [ "$jsctrl" = yes ]; then - jsctrl="Joystick" - fi - $alsactl set $js card:"$jsctrl" true - fi # load gameport module eval jsmod=\$GAMEPORT_MODULE_$js if [ -n "$jsmod" -a "$jsmod" != off ]; then @@ -64,14 +51,6 @@ function start () { function stop () { for js in 0 1 2 3; do - # deactivate joystick (if necessary) - eval jsctrl=\$JOYSTICK_CONTROL_$js - if [ -n "$jsctrl" -a "$jsctrl" != no ]; then - if [ "$jsctrl" = yes ]; then - jsctrl="Joystick" - fi - $alsactl set $js card:"$jsctrl" false - fi # remove gameport module eval jsmod=\$GAMEPORT_MODULE_$js if [ -n "$jsmod" -a "$jsmod" != off ]; then diff --git a/sysconfig.joystick b/sysconfig.joystick index 643b87b..fe99df4 100644 --- a/sysconfig.joystick +++ b/sysconfig.joystick @@ -33,25 +33,3 @@ JOYSTICK_MODULE_OPTION_0="" JOYSTICK_MODULE_OPTION_1="" JOYSTICK_MODULE_OPTION_2="" JOYSTICK_MODULE_OPTION_3="" - -## Type: string -## Default: "" -# -# Control name of sound driver to activate (via alsactl) -# e.g. "yes" (alias "Joystick") or "Joystick Enable" -# -JOYSTICK_CONTROL_0="" -JOYSTICK_CONTROL_1="" -JOYSTICK_CONTROL_2="" -JOYSTICK_CONTROL_3="" - -## Type: string -## Default: "" -# -# Port to be used (via alsactl) -# Some soundcard like ens1371 needs the port address (typically 0x200) -# -JOYSTICK_CONTROL_PORT_0="" -JOYSTICK_CONTROL_PORT_1="" -JOYSTICK_CONTROL_PORT_2="" -JOYSTICK_CONTROL_PORT_3=""