After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 441910 - volume steps are not adjusted to the mixer resolution
volume steps are not adjusted to the mixer resolution
Status: RESOLVED FIXED
Product: gnome-settings-daemon
Classification: Core
Component: plugins
2.23.x
Other All
: Normal normal
: ---
Assigned To: gnome-settings-daemon-maint
gnome-settings-daemon-maint
Depends on:
Blocks:
 
 
Reported: 2007-05-28 21:15 UTC by Tormod Volden
Modified: 2008-04-07 20:39 UTC
See Also:
GNOME target: ---
GNOME version: 2.17/2.18



Description Tormod Volden 2007-05-28 21:15:13 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
Comment 1 Jens Granseuer 2008-04-07 20:39:52 UTC
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