diff options
| author | Lennart Poettering <lennart@poettering.net> | 2009-08-19 01:35:43 +0200 | 
|---|---|---|
| committer | Lennart Poettering <lennart@poettering.net> | 2009-08-19 01:35:43 +0200 | 
| commit | 24e582808c18d6866d8c10f8f0320b1af0ab758b (patch) | |
| tree | 2f632722d576995f19bf90c6a17272eade31387e /src/modules/bluetooth/module-bluetooth-device.c | |
| parent | 2838b78e59ee7c8ea42fec6880cc4c2b2a2c9485 (diff) | |
source: rework volume handling
- drop the 'virtual_' prefix from s->virtual_volume since we don't
  distuingish between reference and real volumes for sources
- introduce an accuracy for source volumes: if the hardware can control
  the volume "close enough" don't necessarily adjust the rest in
  software unless it is beyond a certain threshold. This should save a
  little bit of CPU at the expensive of a bit of accuracy in volume
  handling.
- other minor cleanups
Diffstat (limited to 'src/modules/bluetooth/module-bluetooth-device.c')
| -rw-r--r-- | src/modules/bluetooth/module-bluetooth-device.c | 4 | 
1 files changed, 2 insertions, 2 deletions
diff --git a/src/modules/bluetooth/module-bluetooth-device.c b/src/modules/bluetooth/module-bluetooth-device.c index d6321fc4..395ec838 100644 --- a/src/modules/bluetooth/module-bluetooth-device.c +++ b/src/modules/bluetooth/module-bluetooth-device.c @@ -1500,12 +1500,12 @@ static void source_set_volume_cb(pa_source *s) {      if (u->profile != PROFILE_HSP)          return; -    gain = (pa_cvolume_max(&s->virtual_volume) * 15) / PA_VOLUME_NORM; +    gain = (pa_cvolume_max(&s->volume) * 15) / PA_VOLUME_NORM;      if (gain > 15)          gain = 15; -    pa_cvolume_set(&s->virtual_volume, u->sample_spec.channels, (pa_volume_t) (gain * PA_VOLUME_NORM / 15)); +    pa_cvolume_set(&s->volume, u->sample_spec.channels, (pa_volume_t) (gain * PA_VOLUME_NORM / 15));      pa_assert_se(m = dbus_message_new_method_call("org.bluez", u->path, "org.bluez.Headset", "SetMicrophoneGain"));      pa_assert_se(dbus_message_append_args(m, DBUS_TYPE_UINT16, &gain, DBUS_TYPE_INVALID));  | 
