\documentclass[aspectratio=43]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{listings}
\title[GNOME Radio]{GNOME Radio}
\author{Ole Aamot \texttt{ole@gnome.org}}
\date{July 24, 2022}

\usetheme{guadec}

\AtBeginSection{\frame{\sectionpage}}

\begin{document}

\begin{frame}
\titlepage
\end{frame}

\section{GNOME Radio 16 on GNOME 42}

\begin{frame}[containsverbatim]
\frametitle{GNOME Radio 16}
\framesubtitle{National Public Radio broadcasts for GNOME 42}

GNOME Radio 16 is available with Hawaii Public Radio (NPR) and 62 British
Broadcasting Corporation (BBC) live audio broadcasts for GNOME 42.

The latest GNOME Radio 16.0.43 release during GUADEC 2022 (between
July 20-25, 2022) features 200 international radio stations and 110 city
map markers around the world, including National Public Radio, 62 BBC radio
stations broadcasting live from United Kingdom and 4 SomaFM radio stations
broadcasting live from San Francisco, California.

GNOME Internet Radio Locator 16 for GNOME 42 is a Free Software program that
allows you to easily locate Free Internet Radio stations by broadcasters on
the Internet with the help of map and text search.

GNOME Radio 16 for GNOME 42 is developed on the GNOME 42 desktop platform
with GNOME Maps, GeoClue, libchamplain and geocode-lib and it requires at
least GTK+ 3.0 and GStreamer 1.0 for audio playback.

\end{frame}

\begin{frame}[containsverbatim]
\frametitle{GNOME Radio 16 for GNOME 42}
\framesubtitle{National Public Radio (NPR) broadcasts on GNOME 42}

GNOME Radio 16 for GNOME 42 is available with National Public Radio
(NPR) live audio broadcasts.

GNOME Radio 16 is the successor to GNOME Internet Radio Locator
built for GNOME 42 with Cairo, Clutter, Champlain, Maps, GStreamer,
and GTK+.

\end{frame}

\begin{frame}
\frametitle{Packaging}

Fedora Core 36 software installation packages of GNOME Radio 16.0.43
for the computer hardware architecture x86\_64 and Source are now
available for download and installation with the package management
and network installation system tools rpm and dhf.

\end{frame}

\begin{frame}
\frametitle{Fedora Core 36 x86\_64 RPM installation}

    \begin{itemize}
        \item sudo dnf install \url{http://people.gnome.org/~ole/fedora/RPMS/x86\_64/gnome-radio-16.0.43-1.fc36.x86\_64.rpm}
    \end{itemize}

\end{frame}

\begin{frame}
\frametitle{Fedora Core 36 Source RPM Installation}

\begin{itemize}
        \item sudo dnf install gnome-common
        \item sudo dnf install intltool libtool gtk-doc geoclue2-devel yelp-tools
        \item sudo dnf install gstreamer1-plugins-bad-free-devel geocode-glib-devel
        \item sudo dnf install libchamplain-devel libchamplain-gtk libchamplain geoclue2
        \item sudo rpm -Uvh \url{http://people.gnome.org/~ole/fedora/SRPMS/gnome-radio-16.0.43-1.fc36.src.rpm}
        \item sudo rpmbuild -ba /root/rpmbuild/SPECS/gnome-radio.spec
        \item sudo rpm -Uvh /root/rpmbuild/RPMS/*/gnome-radio-16.0.43*.rpm
\end{itemize}
    
\end{frame}


\section{Compiling from Source}

\begin{frame}
\frametitle{Compiling GNOME Internet Radio Locator 16 on GNOME 42}
\framesubtitle{gnome-internet-radio-locator 16.0.43}

    \texttt{git clone https://gitlab.gnome.org/ole/gnome-radio.git\\
cd gnome-radio\\
./autogen.sh\\
./configure\\
make\\
sudo make install\\
gnome-internet-radio-locator}
\end{frame}

\begin{frame}[containsverbatim]
\frametitle{GNOME Radio 45}
\framesubtitle{org.gnome.Radio}

GNOME Radio 45 is available with British Broadcasting Corporation (BBC) World
Service live audio broadcasts for GNOME 42.

The latest GNOME Radio 45 release during GUADEC 2022 (between
July 20-25, 2022) features 1 international radio station from
London, United Kingdom.

GNOME Radio 45 is developed on the GNOME 43 desktop platform with
GNOME Maps, GeoClue, libchamplain and geocode-lib and it requires at
least GTK4 and GStreamer 1.0 for audio playback.

\end{frame}

\begin{frame}[containsverbatim]
\frametitle{GNOME Radio 45}
\framesubtitle{org.gnome.Radio.c}

\texttt{#include <gst/player/player.h>
#include <gtk/gtk.h>

static void activate(GtkApplication * app, gpointer user_data)
{
  GtkWidget *window;
  GstPlayer *player;
  window = gtk_application_window_new(app);
  gtk_window_set_application (GTK_WINDOW(window), GTK_APPLICATION(app));
  gtk_window_set_title(GTK_WINDOW(window), "Radio");
  gtk_window_set_default_size(GTK_WINDOW(window), 800, 600);
  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://stream.live.vc.bbcmedia.co.uk/bbc_world_service");
  gst_player_play (GST_PLAYER (player));
}

int main(int argc, char **argv)
{
  GtkApplication *app;
  int status;

  gst_init(&argc, &argv);
  gst_init(NULL, NULL);
	
  app = gtk_application_new("org.gnome.Radio", 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;
}}
\end{frame}

\begin{frame}
\frametitle{Compiling GNOME Radio 45 in GNOME Builder}
\framesubtitle{gnome-radio 45.0}

GNOME Builder is a Graphical Development Tool released by Christian
Hergert who presented it at GUADEC 2015.

See \url{https://wiki.gnome.org/Apps/Builder} for details on how to
install it.  After you have installed GNOME Builder, you can clone
the GNOME Radio 45 for GNOME 42 repository on Gitlab and built it.

\begin{itemize}
        \item git clone https://gitlab.gnome.org/ole/gnome-radio
        \item cd gnome-radio
        \item meson build .
        \item cd build/
        \item sudo ninja install
        \item gnome-radio
\end{itemize}

\end{frame}

\begin{frame}
\frametitle{Running GNOME Radio 45.0 on GNOME 42}
\framesubtitle{gnome-radio 45.0 is available}

Three options for running GNOME Radio 16 on GNOME 42 from GNOME Shell and GNOME Terminal:

1. Click on Activities and select the GNOME Radio icon.

2. Search for ``gnome-radio'' in the search box.

3. Type ``\texttt{gnome-radio}'' and hit Enter in GNOME Terminal if you are unable to find the Radio icon in GNOME 42 and GNOME Shell.

\end{frame}

\end{document}
