git clone http://gitlab.stud.idi.ntnu.no/olekaam/goodbye.git cd goodbye/ ./configure --prefix=/opt make install
/opt/bin/goodbye
$ cat fm.goodbye.cpp #include <gtk/gtk.h> #include <gst/player/player.h> static void activate(GtkApplication * app, gpointer user_data) { GtkWidget *grid; GstPlayer *player; GtkWidget *window; window = gtk_application_window_new(app); grid = gtk_grid_new(); gtk_window_set_application(GTK_WINDOW(window), GTK_APPLICATION(app)); gtk_window_set_title(GTK_WINDOW(window), "GoodBye"); gtk_window_set_default_size(GTK_WINDOW(window), 800, 600); gtk_container_add(GTK_CONTAINER(window), grid); gtk_widget_show(window); player = gst_player_new(NULL, gst_player_g_main_context_signal_dispatcher_new(NULL)); gst_player_set_uri(GST_PLAYER(player), "http://www.goodbye.fm:8000/192.ogg"); gst_player_play(GST_PLAYER(player)); } int main(int argc, char **argv) { GtkApplication *app; int status; gst_init(&argc, &argv); app = gtk_application_new("fm.GoodBye", G_APPLICATION_FLAGS_NONE); g_signal_connect(app, "activate", G_CALLBACK(activate), NULL); status = g_application_run(G_APPLICATION(app), argc, argv); g_object_unref(app); return status; } $ c++ fm.goodbye.cpp -o goodbye $(pkg-config --cflags gstreamer-player-1.0 gtk4 --libs) $ ./goodbye
Programming with gtkmm 4 ("Mixing C and C++ APIs") [developer-old.gnome.org, 2022-12-22]
Delivered by GoodBye.fm DBA Aamot Broadcast with exclusive broadcasting license from TONO.