119 lines
2.3 KiB
C
119 lines
2.3 KiB
C
// SPDX-FileCopyrightText: 2022 Geoffrey D. Bennett <g@b4.vu>
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
#include "window-hardware.h"
|
|
|
|
GtkWidget *window_hardware;
|
|
|
|
struct hw_info {
|
|
char *name;
|
|
};
|
|
|
|
struct hw_cat {
|
|
char *name;
|
|
struct hw_info *info;
|
|
};
|
|
|
|
struct hw_info gen_2_info[] = {
|
|
{ "Scarlett 6i6 2nd Gen" },
|
|
{ "Scarlett 18i8 2nd Gen" },
|
|
{ "Scarlett 18i20 2nd Gen" },
|
|
{ }
|
|
};
|
|
|
|
struct hw_info gen_3_small_info[] = {
|
|
{ "Scarlett Solo 3rd Gen" },
|
|
{ "Scarlett 2i2 3rd Gen" },
|
|
{ }
|
|
};
|
|
|
|
struct hw_info gen_3_big_info[] = {
|
|
{ "Scarlett 4i4 3rd Gen" },
|
|
{ "Scarlett 8i6 3rd Gen" },
|
|
{ "Scarlett 18i8 3rd Gen" },
|
|
{ "Scarlett 18i20 3rd Gen" },
|
|
{ }
|
|
};
|
|
|
|
struct hw_info clarett_usb_info[] = {
|
|
{ "Clarett 2Pre USB" },
|
|
{ "Clarett 4Pre USB" },
|
|
{ "Clarett 8Pre USB" },
|
|
{ }
|
|
};
|
|
|
|
struct hw_info clarett_plus_info[] = {
|
|
{ "Clarett+ 2Pre" },
|
|
{ "Clarett+ 4Pre" },
|
|
{ "Clarett+ 8Pre" },
|
|
{ }
|
|
};
|
|
|
|
struct hw_cat hw_cat[] = {
|
|
{ "2nd Gen",
|
|
gen_2_info
|
|
},
|
|
{ "Small 3rd Gen",
|
|
gen_3_small_info
|
|
},
|
|
{ "Big 3rd Gen",
|
|
gen_3_big_info
|
|
},
|
|
{ "Clarett USB",
|
|
clarett_usb_info
|
|
},
|
|
{ "Clarett+",
|
|
clarett_plus_info
|
|
},
|
|
{ }
|
|
};
|
|
|
|
gboolean window_hardware_close_request(
|
|
GtkWindow *w,
|
|
gpointer data
|
|
) {
|
|
GtkApplication *app = data;
|
|
|
|
g_action_group_activate_action(
|
|
G_ACTION_GROUP(app), "hardware", NULL
|
|
);
|
|
return true;
|
|
}
|
|
|
|
GtkWidget *make_notebook_page(struct hw_cat *cat) {
|
|
GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
|
|
for (struct hw_info *info = cat->info; info->name; info++) {
|
|
GtkWidget *label = gtk_label_new(info->name);
|
|
gtk_box_append(GTK_BOX(box), label);
|
|
}
|
|
return box;
|
|
}
|
|
|
|
void add_notebook_pages(GtkWidget *notebook) {
|
|
for (struct hw_cat *cat = hw_cat; cat->name; cat++) {
|
|
GtkWidget *page = make_notebook_page(cat);
|
|
GtkWidget *label = gtk_label_new(cat->name);
|
|
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), page, label);
|
|
}
|
|
}
|
|
|
|
void create_hardware_window(GtkApplication *app) {
|
|
window_hardware = gtk_window_new();
|
|
g_signal_connect(
|
|
window_hardware,
|
|
"close_request",
|
|
G_CALLBACK(window_hardware_close_request),
|
|
app
|
|
);
|
|
|
|
gtk_window_set_title(
|
|
GTK_WINDOW(window_hardware),
|
|
"ALSA Scarlett Supported Hardware"
|
|
);
|
|
|
|
GtkWidget *notebook = gtk_notebook_new();
|
|
gtk_window_set_child(GTK_WINDOW(window_hardware), notebook);
|
|
|
|
add_notebook_pages(notebook);
|
|
}
|