This commit adds support for piecewise linear interpolation tapers to
GtkDial and the gain widget so that the 4th Gen 4i4 volume knob taper
can be modelled correctly.
The taper was previously set to a log function which matched the
Clarett volume knob. Add linear option to match the Scarlett 4th Gen
input gain knobs and hardware level meters.
Rather than having widget/widget2/widget_callback fields in the struct
alsa_elem, have a list of callbacks and allow private data to be
passed to callbacks.
The Clarett 8Pre layout was very wide; it would be preferable if the
main window output controls were placed below the global & input
controls like for the Gen 3 18i8 and 18i20.
Rather than use the presence of speaker switching to determine which
main window layout to use, check the number of input & output
controls, and use the taller layout if the total is 12 or more.
The Clarett+ series don't have a pad function, so can't rely on that
for creating input controls. Look for "Line ... Capture Switch" rather
than "Line ... Pad Capture Switch".