Commit Graph

113 Commits

Author SHA1 Message Date
Geoffrey D. Bennett
2eb8e0b7cb Make boolean widget boolify value from alsa_get_elem_value()
Make sure the value is 0/1 as it's used as an index into
elem->bool_text[].
2024-02-05 20:03:10 +10:30
Geoffrey D. Bennett
0347d25fc9 Center-align text in combo boxes 2024-02-05 20:03:10 +10:30
Geoffrey D. Bennett
9a365000ad Combine gain and volume widgets
Remove volume widget and make the gain widget choose the appropriate
format string.
2024-02-05 20:03:10 +10:30
Geoffrey D. Bennett
be458afcc4 Remove hard-coded values from widget-gain.c and widget-volume.c
Update alsa-sim.c and alsa.c to read the TLV info, and update the gain
and volume widgets to use that info rather than hard-coding the
min/max values.
2024-02-05 20:03:10 +10:30
Geoffrey D. Bennett
197f469bd8 Allow for phantom power per-channel 2024-02-05 20:03:10 +10:30
Geoffrey D. Bennett
658f946202 Add support for routing the Gen 4 DSP I/O 2024-02-05 20:03:10 +10:30
Geoffrey D. Bennett
dfa40c79b0 Add margin to socket widget 2024-02-05 20:03:10 +10:30
Geoffrey D. Bennett
93f7a32ea5 Fix Presets button to be centered
The Presets button was filling the available space. It looks better
using GTK_ALIGN_CENTER instead.
2024-02-05 20:03:10 +10:30
Geoffrey D. Bennett
656eb06159 Inline routing_grid_label() in create_routing_group_grid()
As create_routing_grid() and routing_grid_label() are called 1:1 now,
the code from routing_grid_label() can be moved inside
create_routing_group_id() if we add descr and align parameters.
2024-02-05 20:03:10 +10:30
Geoffrey D. Bennett
e66a3ac883 Add orientation parameter to routing_grid_label()
By adding an orientation parameter, then routing_grid_label() can be
used for the Mixer I/O group labels as well.
2024-02-05 20:03:10 +10:30
Geoffrey D. Bennett
aba34f0648 Remove repeated group by code in create_routing_grid()
Create create_routing_group_grid() to remove repeated code from
create_routing_grid().
2024-02-05 20:03:10 +10:30
Geoffrey D. Bennett
9890b4939b Make the Level Meter check compatible with alsa-sim.c
Rather than retrieving the firmware version in alsa_scan_cards(), use
get_elem_by_name() to check if the control is present.

Update alsa-sim.c alsa_config_to_new_elem() to read iface=CARD
controls.
2024-02-05 20:03:10 +10:30
Geoffrey D. Bennett
5b9ff7d457 Remove lots of casts in create_routing_grid()
By storing routing_grid in a GtkGrid *, lots of GTK_GRID() casts can
be removed.
2024-02-05 20:03:10 +10:30
Geoffrey D. Bennett
22fdbaad41 Fix is_elem_routing_snk() for Gen 4
The search for routing sink ALSA elements should only include PCM,
Mixer, and DSP Capture Enums. The previous search for Capture Enum
excluding Line In Level Capture Enums is too broad for Gen 4 as the
Air control is a Capture Enum as well.
2024-02-05 20:03:10 +10:30
Geoffrey D. Bennett
80cd0ebc4d Remove gtk_widget_add_class()
Should use gtk_widget_add_css_class() instead.
2024-02-05 20:03:10 +10:30
Nate Gallaher
b525d8dc23 Clarify pad tooltip to specify attenuation amount 2024-02-02 19:19:22 +10:30
Geoffrey D. Bennett
0c3bc30439 Fix dial to display focus indication
Partial cherry-pick from 5dc3ab Sebastian Kaminski
"dial ... shows focus indication".

Use has_focus() rather than has_visible_focus() as I found
has_visible_focus() to be unreliable.
2023-12-15 03:17:04 +10:30
Geoffrey D. Bennett
945ccc874d Fix dial to grab focus when clicked
Partial cherry-pick from 5dc3ab Sebastian Kaminski
"dial grabs focus when being clicked".
2023-12-15 03:14:23 +10:30
Geoffrey D. Bennett
fef139be64 Split calc_valp() into calc_valp() and calc_valp_log()
gtk_dial_drag_gesture_begin() needs a linear calc_valp().
2023-12-15 02:55:42 +10:30
Geoffrey D. Bennett
f10a383e36 Reformat keyboard accelerators to match existing code
Terminate menus[] with empty-initialised as well.
2023-12-15 02:44:37 +10:30
Trent
21f0d9dd05 Add keyboard accelerators (aka shortcuts, hotkeys) for menu items. 2023-12-12 14:25:25 -07:00
Jason A. Donenfeld
d81f9ca2bb gtkdial: use fabs() for double
Passing a double to abs() truncates it to an integer, which is probably
not intended, and also causes fatal errors on clang.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2023-12-05 12:29:49 +10:30
Geoffrey D. Bennett
6812c001de Fix long lines 2023-12-02 04:15:55 +10:30
Geoffrey D. Bennett
21cc6d6021 Allow the mixer window to be resized and give it scrollbars 2023-12-02 03:06:53 +10:30
Jason A. Donenfeld
4cb1cd6e57 Makefile: prefer distro cflags if specified
The compilation flags that are necessary for building and part of the
developer's intentions belong in the `+=` section, but the base flags
that distros like to override belong in a `?=` section, so that build
systems using their own are respected.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2023-12-01 14:19:36 +10:30
sporksnail
1211746b9e src/Makefile: Respect CFLAGS from environment 2023-11-30 12:44:03 +10:30
Geoffrey D. Bennett
32c0062367 Update drag_motion() to scroll the routing window
The routing window will be scrolled relative to the position of the
mouse within the window so all sources/sinks can be reached when
dragging.
2023-11-30 00:42:55 +10:30
Geoffrey D. Bennett
8376ce70b4 Fix typo rounting -> routing 2023-11-30 00:42:52 +10:30
Geoffrey D. Bennett
d31bd3380e Allow the routing window to be resized and give it scrollbars 2023-11-26 22:57:52 +10:30
Geoffrey D. Bennett
19ccbbb304 Fix the socket widget so that it will not shrink 2023-11-26 22:56:59 +10:30
Geoffrey D. Bennett
26db9dec52 Improve layout for larger interfaces without speaker switching
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.
2023-11-26 22:56:09 +10:30
Geoffrey D. Bennett
92932dbb26 Remove user-control of level meters
jandejongh reported:

In the USB Levels display, user can (attempt to) set the level of the
"slider".
Expected: These "sliders" are read-only and should not allow setting a
value (makes no sense to me?).

Fixes: #78.
2023-11-19 16:00:58 +10:30
Geoffrey D. Bennett
befce0824f Check Firmware Version before enabling Levels menu item
The level meters don't work correctly on earlier kernel versions, so
they shouldn't be displayed in that case. The "Firmware Version" ALSA
control was added to the kernel at the same time as the level meters
were fixed, so use the presence of that to determine whether or not to
enable the menu item.
2023-11-19 13:12:50 +10:30
Geoffrey D. Bennett
e92e391548 Add Clarett USB/Clarett+ models to window-hardware.c 2023-11-18 02:03:01 +10:30
fenugrec
c49a788ecd Reduce code duplication in menu.c 2023-11-18 01:58:43 +10:30
fenugrec
2936f110be Replace deprecated gtk_widget_{show,hide} calls
The replacement, gtk_widget_set_visible(), is available since 2.18.
There is some code duplication in menu.c that could eventually be
unified.
2023-11-18 01:50:42 +10:30
Geoffrey D. Bennett
fb3429ba6c Global replace "destination" with "sink"
Fixes #73.
2023-11-17 15:40:53 +10:30
Geoffrey D. Bennett
3595f5ccf5 Update Makefile to get version from $APP_VERSION
If git describe fails, check $APP_VERSION, otherwise set the version
to "Unknown".
2023-11-15 00:00:28 +10:30
Geoffrey D. Bennett
d96ced2b45 Add meter/level display 2023-11-14 01:54:42 +10:30
sporksnail
38edefb93e window-startup.c: fix typo
Fix a minor typo in window-startup.c
2023-11-13 03:24:41 +10:30
Alejandro Domínguez
2ce8450031 Do not use deprecated or non-standard keys in desktop file 2023-10-19 03:38:07 +10:30
Alejandro Domínguez
5637e411d4 Change icon file name
It's a good idea to use the new FreeDesktop conventions for
file names. It adapts better to stuff like Flatpak.
2023-10-19 03:38:07 +10:30
David Cooper
e176fad933 Add keyword to desktop file 2023-10-19 03:29:28 +10:30
Geoffrey D. Bennett
1839c18671 Specify full path to alsactl
Debian doesn't include /usr/sbin in $PATH so alsactl isn't found.
Hopefully it's in /usr/sbin for everyone.

Fixes #65.
2023-10-19 02:08:58 +10:30
Geoffrey D. Bennett
ea920d6343 Apply correction curve to the dials
Display the volume levels on the dials with a correction curve that
resembles what the volume knob on the hardware does.
2023-10-09 02:05:21 +10:30
Geoffrey D. Bennett
7c9ec68d7c Fix input counting for Clarett+ series
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".
2023-09-20 03:36:53 +09:30
Geoffrey D. Bennett
fb9ccfed49 Fix building with Gtk 4.10
Add -Wno-error=deprecated-declarations to the Makefile so that it
can build when using Gtk 4.10.
2023-09-07 02:10:48 +09:30
Geoffrey D. Bennett
65c0f6aa43 Add Clarett support 2022-08-12 01:42:54 +09:30
Sebastian Kaminski
50b7531dd2 Prevent the boolean widget from changing size when toggled
When the label of the button for the boolean widget changes, the size
of the button was also changing. This commit sets the minimum size of
the widget so that it will accommodate both labels.
2022-04-02 23:14:50 +10:30
Geoffrey D. Bennett
c175afbad7 Clarify comments and variable names in choose_line_colour() 2022-04-01 17:42:19 +10:30