mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-10-29 05:40:23 -04:00
tests: show dB in volume-ui.py
This commit is contained in:
parent
000bdb8d25
commit
ce3fbb5268
1 changed files with 26 additions and 3 deletions
|
|
@ -111,6 +111,10 @@ class CVolume(Structure):
|
|||
_set_fade.restype = c_void_p
|
||||
_set_fade.argtypes = [c_void_p, c_void_p, c_float]
|
||||
|
||||
_to_dB = libpulse.pa_sw_volume_to_dB
|
||||
_to_dB.restype = c_double
|
||||
_to_dB.argytpes = [c_uint32]
|
||||
|
||||
def snprint(this):
|
||||
s = create_string_buffer(320)
|
||||
r = this._snprint(s, len(s), byref(this))
|
||||
|
|
@ -138,6 +142,12 @@ class CVolume(Structure):
|
|||
def set_fade(this, cm, f):
|
||||
return this._set_fade(byref(this), byref(cm), f)
|
||||
|
||||
def to_dB(this, channel = None):
|
||||
if channel is None:
|
||||
return this._to_dB(this.max())
|
||||
|
||||
return this._to_dB(this.values[channel])
|
||||
|
||||
cm = ChannelMap()
|
||||
|
||||
if len(sys.argv) > 1:
|
||||
|
|
@ -149,7 +159,7 @@ v = CVolume()
|
|||
v.channels = cm.channels
|
||||
|
||||
for i in range(cm.channels):
|
||||
v.values[i] = 65536/2
|
||||
v.values[i] = 65536
|
||||
|
||||
title = cm.to_pretty_name()
|
||||
if title is None:
|
||||
|
|
@ -163,6 +173,7 @@ vbox = gtk.VBox(spacing=6)
|
|||
|
||||
channel_labels = {}
|
||||
channel_scales = {}
|
||||
channel_dB_labels = {}
|
||||
|
||||
def update_volume(update_channels = True, update_fade = True, update_balance = True, update_scale = True):
|
||||
if update_channels:
|
||||
|
|
@ -178,6 +189,11 @@ def update_volume(update_channels = True, update_fade = True, update_balance = T
|
|||
if update_fade:
|
||||
fade_scale.set_value(v.get_fade(cm))
|
||||
|
||||
for i in range(cm.channels):
|
||||
channel_dB_labels[i].set_label("%0.2f dB" % v.to_dB(i))
|
||||
|
||||
value_dB_label.set_label("%0.2f dB" % v.to_dB())
|
||||
|
||||
def fade_value_changed(fs):
|
||||
v.set_fade(cm, fade_scale.get_value())
|
||||
update_volume(update_fade = False)
|
||||
|
|
@ -200,19 +216,26 @@ for i in range(cm.channels):
|
|||
vbox.pack_start(channel_labels[i], expand=False, fill=True)
|
||||
|
||||
channel_scales[i] = gtk.HScale()
|
||||
channel_scales[i].set_range(0, 65536)
|
||||
channel_scales[i].set_range(0, 65536*3/2)
|
||||
channel_scales[i].set_digits(0)
|
||||
channel_scales[i].set_value_pos(gtk.POS_RIGHT)
|
||||
vbox.pack_start(channel_scales[i], expand=False, fill=True)
|
||||
|
||||
channel_dB_labels[i] = gtk.Label("-xxx dB")
|
||||
channel_dB_labels[i].set_alignment(1, 1)
|
||||
vbox.pack_start(channel_dB_labels[i], expand=False, fill=True)
|
||||
|
||||
value_label = gtk.Label("Value")
|
||||
value_label.set_alignment(0, .5)
|
||||
vbox.pack_start(value_label, expand=False, fill=True)
|
||||
value_scale = gtk.HScale()
|
||||
value_scale.set_range(0, 65536)
|
||||
value_scale.set_range(0, 65536*3/2)
|
||||
value_scale.set_value_pos(gtk.POS_RIGHT)
|
||||
value_scale.set_digits(0)
|
||||
vbox.pack_start(value_scale, expand=False, fill=True)
|
||||
value_dB_label = gtk.Label("-xxx dB")
|
||||
value_dB_label.set_alignment(1, 1)
|
||||
vbox.pack_start(value_dB_label, expand=False, fill=True)
|
||||
|
||||
balance_label = gtk.Label("Balance")
|
||||
balance_label.set_alignment(0, .5)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue