Initial revision

This commit is contained in:
Geoffrey D. Bennett
2022-03-14 09:24:43 +10:30
commit 17b4d2f055
89 changed files with 40806 additions and 0 deletions

98
src/window-hardware.c Normal file
View File

@@ -0,0 +1,98 @@
// 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_cat hw_cat[] = {
{ "2nd Gen",
gen_2_info
},
{ "Small 3rd Gen",
gen_3_small_info
},
{ "Big 3rd Gen",
gen_3_big_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);
}