GNOME Bugzilla – Bug 441910
volume steps are not adjusted to the mixer resolution
Last modified: 2008-04-07 20:39:52 UTC
Please describe the problem: Using Default Mixer Track and volume up/down keys to adjust the microphone level of my USB webcam. This mixer track has only 4 positions: 0,33,67,100 Steps to reproduce: 1. Press the volume up/down key Actual results: Track level doesn't change. Expected results: Track level should change with my keypresses. If not pressing once would be enough, I should see a change after 3 presses in one direction. Does this happen every time? yes Other information: vol_step is by default 6, and if the current volume is 67, 67+6 is not enough to make it jump to 100. I have to use a vol_step of 17 to get 100. I guess the logic is that +17 is more than half the way to the next step. Setting /apps/gnome_settings_daemon/volume_step to 17 works, but shouldn't this be automatic and depending on the mixer volume steps available? $ amixer -c 1 Simple mixer control 'Mic',0 Capabilities: cvolume cswitch cswitch-joined Capture channels: Mono Limits: Capture 0 - 3 Mono: Capture 0 [0%] [26.00dB] [on] $ lsusb Bus 001 Device 004: ID 0471:030c Philips PCVC690K WebCam [pwc] $ cat /proc/asound/cards 0 [Intel ]: HDA-Intel - HDA Intel HDA Intel at 0xc8000000 irq 16 1 [U0x4710x30c ]: USB-Audio - USB Device 0x471:0x30c USB Device 0x471:0x30c at usb-0000:00:1d.0-2, full speed
This should be fixed in trunk now. Would be great if you could try that since I don't have any hardware that actually has that problem. 2008-04-07 Jens Granseuer <jensgr@gmx.net> Currently, the percentage by which to lower or raise the volume when hitting the multimedia keys is taken from GConf, with 6 being the default. We don't have any settings dialogs to actually change it, though. If the user now selects a mixer that supports fewer volume levels than the GConf setting implies (100/6) it becomes impossible to change the volume (without fiddling with the GConf setting). This patch adds a "threshold" property to the AcmeVolume class that denotes the minimum percentage required to actually affect the volume. The plugin now uses the step size read from GConf or the mixer threshold, depending on which one is bigger. (bug #441910) * plugins/media-keys/actions/acme-volume-alsa.c: (acme_volume_alsa_get_threshold), (acme_volume_alsa_class_init): * plugins/media-keys/actions/acme-volume-dummy.c: (acme_volume_dummy_get_threshold), (acme_volume_dummy_class_init): * plugins/media-keys/actions/acme-volume-gstreamer.c: (acme_volume_gstreamer_get_threshold), (acme_volume_gstreamer_class_init): * plugins/media-keys/actions/acme-volume-oss.c: (acme_volume_oss_get_threshold), (acme_volume_oss_class_init), (acme_volume_oss_mixer_check): * plugins/media-keys/actions/acme-volume.c: (acme_volume_get_threshold): * plugins/media-keys/actions/acme-volume.h: add get_threshold method * plugins/media-keys/gsd-media-keys-manager.c: (do_sound_action): use gconf value or threshold, depending on what's bigger