Add initial support for the Vocaster One and Two

This commit is contained in:
Geoffrey D. Bennett
2024-02-25 00:45:25 +10:30
parent 607b002985
commit 6e40b8d9ed
7 changed files with 5363 additions and 2 deletions

1861
demo/Vocaster One.state Normal file

File diff suppressed because it is too large Load Diff

3428
demo/Vocaster Two.state Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -146,6 +146,11 @@ button.toggle {
text-shadow: 0 0 5px #0000ff, 0 0 15px #0000ff;
}
/* orange */
.window-frame .vocaster button.autogain:checked {
text-shadow: 0 0 5px #ffc000, 0 0 15px #ffc000;
}
.window-frame button.safe:checked {
text-shadow: 0 0 5px #00c000, 0 0 15px #00c000;
}
@@ -212,6 +217,14 @@ button.toggle {
text-shadow: 0 0 5px #005000, 0 0 15px #005000;
}
.window-frame button.input-mute:checked {
text-shadow: 0 0 5px #ff0000, 0 0 15px #c00000;
}
.window-frame button.dsp:checked {
text-shadow: 0 0 5px #00c000, 0 0 15px #00c000;
}
/* Direct Monitor Checked (Solo) */
.window-frame .direct-monitor:checked {
text-shadow: 0 0 5px #00c000, 0 0 15px #00c000;

View File

@@ -756,7 +756,8 @@ static void alsa_scan_cards(void) {
goto next;
if (strncmp(snd_ctl_card_info_get_name(info), "Scarlett", 8) != 0 &&
strncmp(snd_ctl_card_info_get_name(info), "Clarett", 7) != 0)
strncmp(snd_ctl_card_info_get_name(info), "Clarett", 7) != 0 &&
strncmp(snd_ctl_card_info_get_name(info), "Vocaster", 8) != 0)
goto next;
// is there already an entry for this card in alsa_cards?

View File

@@ -15,6 +15,8 @@ struct scarlett2_device scarlett2_supported[] = {
{ 0x8213, "Scarlett 3rd Gen 8i6" },
{ 0x8214, "Scarlett 3rd Gen 18i8" },
{ 0x8215, "Scarlett 3rd Gen 18i20" },
{ 0x8216, "Vocaster One" },
{ 0x8217, "Vocaster Two" },
{ 0x8218, "Scarlett 4th Gen Solo" },
{ 0x8219, "Scarlett 4th Gen 2i2" },
{ 0x821a, "Scarlett 4th Gen 4i4" },

View File

@@ -360,6 +360,48 @@ static void create_input_air_enum_control(
gtk_grid_attach(GTK_GRID(grid), w, column_num, current_row, 1, 1);
}
static void create_input_dsp_switch_control(
struct alsa_elem *elem,
GtkWidget *grid,
int current_row,
int column_num
) {
GtkWidget *w = make_boolean_alsa_elem(elem, "Enhance", NULL);
gtk_widget_add_css_class(w, "dsp");
gtk_widget_set_hexpand(w, TRUE);
// gtk_widget_set_tooltip_text(w, dsp_descr);
gtk_grid_attach(GTK_GRID(grid), w, column_num, current_row, 1, 1);
}
static void create_input_dsp_preset_control(
struct alsa_elem *elem,
GtkWidget *grid,
int current_row,
int column_num
) {
GtkWidget *w = make_drop_down_alsa_elem(elem, NULL);
gtk_widget_add_css_class(w, "dsp-preset");
gtk_widget_set_hexpand(w, TRUE);
// gtk_widget_set_tooltip_text(w, dsp_descr);
gtk_grid_attach(GTK_GRID(grid), w, column_num, current_row, 1, 1);
}
static void create_input_mute_switch_control(
struct alsa_elem *elem,
GtkWidget *grid,
int current_row,
int column_num
) {
GtkWidget *w = make_boolean_alsa_elem(elem, "Mute", NULL);
gtk_widget_add_css_class(w, "input-mute");
gtk_widget_set_hexpand(w, TRUE);
// gtk_widget_set_tooltip_text(w, dsp_descr);
gtk_grid_attach(GTK_GRID(grid), w, column_num, current_row, 1, 1);
}
static void create_input_pad_control(
struct alsa_elem *elem,
GtkWidget *grid,
@@ -514,6 +556,18 @@ static void create_input_controls(
elems, input_grid, &current_row,
"Air Capture Enum", create_input_air_enum_control
);
create_input_controls_by_type(
elems, input_grid, &current_row,
"DSP Capture Switch", create_input_dsp_switch_control
);
create_input_controls_by_type(
elems, input_grid, &current_row,
"DSP Preset Capture Enum", create_input_dsp_preset_control
);
create_input_controls_by_type(
elems, input_grid, &current_row,
"Mute Capture Switch", create_input_mute_switch_control
);
create_input_controls_by_type(
elems, input_grid, &current_row,
"Pad Capture Switch", create_input_pad_control
@@ -749,6 +803,8 @@ static GtkWidget *create_main_window_controls(struct alsa_card *card) {
gtk_widget_add_css_class(top, "scarlett");
} else if (strstr(card->name, "Clarett")) {
gtk_widget_add_css_class(top, "clarett");
} else if (strstr(card->name, "Vocaster")) {
gtk_widget_add_css_class(top, "vocaster");
}
gtk_grid_set_spacing(GTK_GRID(top), 15);

View File

@@ -12,7 +12,7 @@ GtkWidget *create_window_iface_none(GtkApplication *app) {
GtkWidget *picture = gtk_picture_new_for_resource(
"/vu/b4/alsa-scarlett-gui/icons/alsa-scarlett-gui-logo.png"
);
GtkWidget *label = gtk_label_new("No Scarlett/Clarett interface found.");
GtkWidget *label = gtk_label_new("No Scarlett/Clarett/Vocaster interface found.");
gtk_box_append(GTK_BOX(box), picture);
gtk_box_append(GTK_BOX(box), label);