[gnome-internet-radio-locator] Add status bar for stations



commit 962a6e00ee884c5a6b4e208fcd1adfc9d1788147
Author: Ole Aamot <ole gnome org>
Date:   Sun Feb 3 05:12:09 2019 +0100

    Add status bar for stations

 NEWS                                       | 10 ++++--
 src/gnome-internet-radio-locator-gui.c     | 41 ++++++++++++++----------
 src/gnome-internet-radio-locator-markers.c | 27 +++++++++++++---
 src/gnome-internet-radio-locator.c         | 51 ++++++++++++++++++++++++------
 src/gnome-internet-radio-locator.h         |  2 ++
 src/gnome-internet-radio-locator.xml       |  6 ++--
 6 files changed, 101 insertions(+), 36 deletions(-)
---
diff --git a/NEWS b/NEWS
index 789fe19..b1c4c6e 100644
--- a/NEWS
+++ b/NEWS
@@ -4,19 +4,25 @@ Version 1.8.0
 
 GUI
 
+       * src/gnome-internet-radio-locator.c: Add status bar for stations
        * src/gnome-internet-radio-locator.c: Set default center Stockholm
        * src/gnome-internet-radio-locator.c: Set undefined city label color
+       * src/gnome-internet-radio-locator-gui.c: Add status bar for stations
        * src/gnome-internet-radio-locator-markers.c: Add marker for Cambridge
-       * src/gnome-internet-radio-locator-markers.c: Add marker for WMBR-FM
+       * src/gnome-internet-radio-locator-markers.c: Add marker for New Orleans
        * src/gnome-internet-radio-locator-markers.c: Add marker for Tampere
        * src/gnome-internet-radio-locator-markers.c: Add marker for Warsaw
+       * src/gnome-internet-radio-locator-markers.c: Add marker for WHRB-FM
+       * src/gnome-internet-radio-locator-markers.c: Add marker for WMBR-FM
+       * src/gnome-internet-radio-locator-markers.c: Add status bar for stations
 
 Stations
 
        * src/gnome-internet-radio-locator.xml: Add Radio Aktywne (Warsaw)
        * src/gnome-internet-radio-locator.xml: Add Radio Moreeni (Tampere)
-       * src/gnome-internet-radio-locator.xml: Update WTBU (Boston)
        * src/gnome-internet-radio-locator.xml: Update WHRB (Cambridge)
+       * src/gnome-internet-radio-locator.xml: Update WTBU (Boston)
+       * src/gnome-internet-radio-locator.xml: Update WWNO (New Orleans)
 
 Translations
 
diff --git a/src/gnome-internet-radio-locator-gui.c b/src/gnome-internet-radio-locator-gui.c
index dd81e80..ab830cd 100644
--- a/src/gnome-internet-radio-locator-gui.c
+++ b/src/gnome-internet-radio-locator-gui.c
@@ -29,12 +29,14 @@
 #include <config.h>
 #include <gtk/gtk.h>
 #include <gtk/gtkcombobox.h>
+#include <gst/player/player.h>
 #include <glib/gstdio.h>
 #include <glib/gi18n.h>
 #include <gio/gio.h>
 #include "gnome-internet-radio-locator.h"
 #include "gnome-internet-radio-locator-gui.h"
 #include "gnome-internet-radio-locator-keys.h"
+#include "gnome-internet-radio-locator-player.h"
 #include "gnome-internet-radio-locator-program.h"
 #include "gnome-internet-radio-locator-station.h"
 #include "gnome-internet-radio-locator-streams.h"
@@ -43,6 +45,8 @@
 extern GtkWidget *gnome_internet_radio_locator_app;
 extern GtkWidget *search_selector;
 extern GtkWidget *input;
+extern GtkWidget *statusbar;
+extern GstPlayer *player;
 
 GNOMEInternetRadioLocatorStationInfo *stationinfo, *localstation;
 
@@ -219,15 +223,20 @@ void
 save_cb (GtkWidget *widget, gpointer data) {
 
        /* g_print("%s\n", data); */
-
-       char *nameentry, *locationentry, *urientry, *websiteentry, *descriptionentry;
-
+        gint context_id;
+        char *nameentry, *locationentry, *urientry, *websiteentry, *descriptionentry, *statusmsg;
        nameentry = g_object_get_data(G_OBJECT(widget), "station_name");
        locationentry = g_object_get_data(G_OBJECT(widget), "station_location");
        urientry = g_object_get_data(G_OBJECT(widget), "station_uri");
        websiteentry = g_object_get_data(G_OBJECT(widget), "station_website");
        descriptionentry = g_object_get_data(G_OBJECT(widget), "station_description");
-
+       player = gst_player_new (NULL, gst_player_g_main_context_signal_dispatcher_new(NULL));
+       gnome_internet_radio_locator_player_new(GST_PLAYER(player), urientry);
+       context_id = gtk_statusbar_get_context_id (GTK_STATUSBAR (statusbar), "Station Name");
+       statusmsg = g_strconcat("Added ", nameentry, " in ", locationentry, NULL);
+       gtk_statusbar_push (GTK_STATUSBAR (statusbar), GPOINTER_TO_INT (context_id), statusmsg);
+       gst_player_stop(player);
+       gst_player_play(player);
        GNOME_INTERNET_RADIO_LOCATOR_DEBUG_MSG("%s\n", nameentry);
        GNOME_INTERNET_RADIO_LOCATOR_DEBUG_MSG("%s\n", locationentry);
        GNOME_INTERNET_RADIO_LOCATOR_DEBUG_MSG("%s\n", urientry);
@@ -269,7 +278,7 @@ GtkWidget *create_new_station_selector(gchar *location) {
                                                       NULL);
        content_area = gtk_dialog_get_content_area (GTK_DIALOG (station_selector));
 
-       g_signal_connect(G_OBJECT(station_selector), "response", G_CALLBACK(save_cb), NULL);
+       g_signal_connect(G_OBJECT(station_selector), "response", G_CALLBACK(save_cb), 
G_OBJECT(station_selector));
        /* gtk_container_set_border_width */
        /*      (GTK_CONTAINER(GTK_DIALOG(station_selector)->vbox), 6);  */
 
@@ -344,26 +353,26 @@ GtkWidget *create_new_station_selector(gchar *location) {
          /*             G_CALLBACK(on_new_station_selector_changed), */
          /*             NULL); */
          g_object_set_data(G_OBJECT(station_selector), "station_name",
-                           (gpointer) gtk_entry_get_text(GTK_ENTRY(nameentry)));
+                           (gchar *) gtk_entry_get_text(GTK_ENTRY(nameentry)));
          g_object_set_data(G_OBJECT(station_selector), "station_band",
-                           (gpointer) gtk_entry_get_text(GTK_ENTRY(bandentry)));
+                           (gchar *) gtk_entry_get_text(GTK_ENTRY(bandentry)));
          g_object_set_data(G_OBJECT(station_selector), "station_location",
-                           (gpointer) gtk_entry_get_text(GTK_ENTRY(locationentry)));
-         GNOME_INTERNET_RADIO_LOCATOR_DEBUG_MSG("LOCATIONENTRY: %s\n", (gpointer) 
gtk_entry_get_text(GTK_ENTRY(locationentry)));
+                           (gchar *) gtk_entry_get_text(GTK_ENTRY(locationentry)));
+         GNOME_INTERNET_RADIO_LOCATOR_DEBUG_MSG("LOCATIONENTRY: %s\n", (gchar *) 
gtk_entry_get_text(GTK_ENTRY(locationentry)));
          g_object_set_data(G_OBJECT(station_selector), "station_uri",
-                           (gpointer) gtk_entry_get_text(GTK_ENTRY(urientry)));
-         GNOME_INTERNET_RADIO_LOCATOR_DEBUG_MSG("URIENTRY: %s\n", (gpointer) 
gtk_entry_get_text(GTK_ENTRY(urientry)));
+                           (gchar *) gtk_entry_get_text(GTK_ENTRY(urientry)));
+         GNOME_INTERNET_RADIO_LOCATOR_DEBUG_MSG("URIENTRY: %s\n", (gchar *) 
gtk_entry_get_text(GTK_ENTRY(urientry)));
          g_object_set_data(G_OBJECT(station_selector), "station_description",
-                           (gpointer) gtk_entry_get_text(GTK_ENTRY(descriptionentry)));
+                           (gchar *) gtk_entry_get_text(GTK_ENTRY(descriptionentry)));
          g_object_set_data(G_OBJECT(station_selector), "station_website",
-                           (gpointer) gtk_entry_get_text(GTK_ENTRY(websiteentry)));
-         GNOME_INTERNET_RADIO_LOCATOR_DEBUG_MSG("WEBSITEENTRY: %s\n", (gpointer) 
gtk_entry_get_text(GTK_ENTRY(websiteentry)));
+                           (gchar *) gtk_entry_get_text(GTK_ENTRY(websiteentry)));
+         GNOME_INTERNET_RADIO_LOCATOR_DEBUG_MSG("WEBSITEENTRY: %s\n", (ghar *) 
gtk_entry_get_text(GTK_ENTRY(websiteentry)));
 
 #if 0 /* FIXME: Add input fields */
          g_object_set_data(G_OBJECT(station_selector), "station_description",
-                           (gpointer) station_description);
+                           (gchar *) station_description);
          g_object_set_data(G_OBJECT(station_selector), "station_website",
-                           (gpointer) station_website);
+                           (gchar *) station_website);
 #endif
          // gtk_widget_show(station_selector);
          // g_free(label);
diff --git a/src/gnome-internet-radio-locator-markers.c b/src/gnome-internet-radio-locator-markers.c
index b3c5b1e..a6afda0 100644
--- a/src/gnome-internet-radio-locator-markers.c
+++ b/src/gnome-internet-radio-locator-markers.c
@@ -46,6 +46,7 @@
 #include "gnome-internet-radio-locator-markers.h"
 #include "gnome-internet-radio-locator-player.h"
 
+extern GtkWidget *statusbar;
 extern GtkWidget *input;
 extern GtkEntryCompletion *completion;
 extern GNOMEInternetRadioLocatorStationInfo *stationinfo, *localstation;
@@ -79,6 +80,8 @@ marker_function (ChamplainMarker *self,
 {
         gchar *station, *station_link;
        gchar *markup;
+       gint context_id;
+
        station = (gchar *)champlain_label_get_text (CHAMPLAIN_LABEL (self));
        station_link = strtok(station, "\n");
        gtk_entry_set_text(GTK_ENTRY(input),(gchar *)station_link);
@@ -86,9 +89,12 @@ marker_function (ChamplainMarker *self,
        player = gst_player_new (NULL, gst_player_g_main_context_signal_dispatcher_new(NULL));
        stationinfo = gnome_internet_radio_locator_station_load_from_file(localstation, 
world_station_xml_filename);
        while (stationinfo != NULL) {
-               if (strcasecmp(stationinfo->location, station_link)==0) {
+                if (strcasecmp(stationinfo->location, station_link)==0) {
+                       gchar *statusmsg = g_strconcat(stationinfo->name, " in ", stationinfo->location, " 
(", stationinfo->band, ", ", g_strdup_printf("%li", stationinfo->stream->samplerate), " Hz, ", 
g_strdup_printf("%li", stationinfo->stream->bitrate), " kbps)", NULL);
                        gst_player_stop(player);
                        gnome_internet_radio_locator_player_new(GST_PLAYER(player), stationinfo->stream->uri);
+                       context_id = gtk_statusbar_get_context_id (GTK_STATUSBAR (statusbar), "Station Name");
+                       gtk_statusbar_push (GTK_STATUSBAR (statusbar), GPOINTER_TO_INT (context_id), 
statusmsg);
                        gst_player_play(player);
                }
                stationinfo = stationinfo->next;
@@ -166,7 +172,7 @@ create_marker_layer (G_GNUC_UNUSED ChamplainView *view, ChamplainPathLayer **pat
   /* champlain_path_layer_add_node (*path, CHAMPLAIN_LOCATION (marker)); */
   g_signal_connect(CHAMPLAIN_LOCATION(marker), "button-press", G_CALLBACK(marker_function), station);
   marker = champlain_label_new_from_file ("icons/emblem-generic.png", NULL);
-  station = g_strdup("Boston, Massachusetts\n<span size=\"small\">WTBU</span>");
+  station = g_strdup("WTBU, Boston, Massachusetts\n<span size=\"small\">http://www.wtburadio.org/</span>");
   champlain_label_set_text (CHAMPLAIN_LABEL (marker), station);
   champlain_label_set_use_markup (CHAMPLAIN_LABEL (marker), TRUE);
   champlain_label_set_color (CHAMPLAIN_LABEL (marker), &city_color);
@@ -199,18 +205,18 @@ create_marker_layer (G_GNUC_UNUSED ChamplainView *view, ChamplainPathLayer **pat
   /* champlain_path_layer_add_node (*path, CHAMPLAIN_LOCATION (marker)); */
   g_signal_connect(CHAMPLAIN_LOCATION(marker), "button-press", G_CALLBACK(marker_function), station);
   marker = champlain_label_new_from_file ("icons/emblem-generic.png", NULL);
-  station = g_strdup("Cambridge, Massachusetts\n<span size=\"small\">WHRB</span>");
+  station = g_strdup("WHRB-FM, Cambridge, Massachusetts\n<span size=\"small\">http://www.whrb.org/</span>");
   champlain_label_set_text (CHAMPLAIN_LABEL (marker), station);
   champlain_label_set_use_markup (CHAMPLAIN_LABEL (marker), TRUE);
   champlain_label_set_color (CHAMPLAIN_LABEL (marker), &city_color);
   champlain_label_set_text_color (CHAMPLAIN_LABEL (marker), &text_color);
-  champlain_location_set_location (CHAMPLAIN_LOCATION (marker), 42.3750997, -71.1056157);
+  champlain_location_set_location (CHAMPLAIN_LOCATION (marker), 42.3723191, -71.1186638);
   champlain_marker_layer_add_marker (layer, CHAMPLAIN_MARKER (marker));
   champlain_marker_animate_in(CHAMPLAIN_MARKER (marker));
   /* champlain_path_layer_add_node (*path, CHAMPLAIN_LOCATION (marker)); */
   g_signal_connect(CHAMPLAIN_LOCATION(marker), "button-press", G_CALLBACK(marker_function), station);
   marker = champlain_label_new_from_file ("icons/emblem-generic.png", NULL);
-  station = g_strdup("WMBR-FM, Cambridge, Massachusetts\n<span size=\"small\">WHRB</span>");
+  station = g_strdup("WMBR-FM, Cambridge, Massachusetts\n<span size=\"small\">http://www.wmbr.org/</span>");
   champlain_label_set_text (CHAMPLAIN_LABEL (marker), station);
   champlain_label_set_use_markup (CHAMPLAIN_LABEL (marker), TRUE);
   champlain_label_set_color (CHAMPLAIN_LABEL (marker), &city_color);
@@ -388,6 +394,17 @@ create_marker_layer (G_GNUC_UNUSED ChamplainView *view, ChamplainPathLayer **pat
   /* champlain_path_layer_add_node (*path, CHAMPLAIN_LOCATION (marker)); */
   g_signal_connect(CHAMPLAIN_LOCATION(marker), "button-press", G_CALLBACK(marker_function), station);
   marker = champlain_label_new_from_file ("icons/emblem-generic.png", NULL);
+  station = g_strdup("New Orleans, Louisiana\n<span size=\"small\">WWNO</span>");
+  champlain_label_set_text (CHAMPLAIN_LABEL (marker), station);
+  champlain_label_set_use_markup (CHAMPLAIN_LABEL (marker), TRUE);
+  champlain_label_set_color (CHAMPLAIN_LABEL (marker), &city_color);
+  champlain_label_set_text_color (CHAMPLAIN_LABEL (marker), &text_color);
+  champlain_location_set_location (CHAMPLAIN_LOCATION (marker), 29.9499323, -90.0701156);
+  champlain_marker_layer_add_marker (layer, CHAMPLAIN_MARKER (marker));
+  champlain_marker_animate_in(CHAMPLAIN_MARKER (marker));
+  /* champlain_path_layer_add_node (*path, CHAMPLAIN_LOCATION (marker)); */
+  g_signal_connect(CHAMPLAIN_LOCATION(marker), "button-press", G_CALLBACK(marker_function), station);
+  marker = champlain_label_new_from_file ("icons/emblem-generic.png", NULL);
   station = g_strdup("New York City, New York\n<span size=\"small\">WKCR</span>");
   champlain_label_set_text (CHAMPLAIN_LABEL (marker), station);
   champlain_label_set_use_markup (CHAMPLAIN_LABEL (marker), TRUE);
diff --git a/src/gnome-internet-radio-locator.c b/src/gnome-internet-radio-locator.c
index ab09292..55fc957 100644
--- a/src/gnome-internet-radio-locator.c
+++ b/src/gnome-internet-radio-locator.c
@@ -47,6 +47,7 @@ static ChamplainView *champlain_view;
 GApplication *app;
 GtkWidget *search_selector;
 GtkWidget *window;
+GtkWidget *statusbar;
 GNOMEInternetRadioLocatorData *gnome_internet_radio_locator;
 
 GtkWidget *input;
@@ -83,6 +84,24 @@ GStatBuf stats;
 
 ChamplainView *view;
 
+gchar *
+str_channels (GNOMEInternetRadioLocatorChannels type) {
+  gchar *channels;
+  if (type == GNOME_INTERNET_RADIO_LOCATOR_CHANNELS_MONO) {
+    channels = g_strdup("Mono");
+  }
+  if (type == GNOME_INTERNET_RADIO_LOCATOR_CHANNELS_STEREO) {
+    channels = g_strdup("Stereo");
+  }
+  if (type == GNOME_INTERNET_RADIO_LOCATOR_CHANNELS_5_1) {
+    channels = g_strdup("Surround");
+  }
+  if (type == GNOME_INTERNET_RADIO_LOCATOR_CHANNELS_NONE) {
+    channels = g_strdup("None");
+  }
+  return channels;
+}
+
 /*
  * Terminate the main loop.
  */
@@ -589,13 +608,13 @@ gnome_internet_radio_locator_window_cb (GtkApplication *app,
        gtk_grid_attach (GTK_GRID(grid), GTK_WIDGET(toolbar), 0, 0, 1, 1);
        gtk_grid_attach (GTK_GRID(grid), GTK_WIDGET(widget), 0, 1, 1, 1);
         champlain_view = gtk_champlain_embed_get_view (GTK_CHAMPLAIN_EMBED(widget));
-        gtk_widget_set_size_request(GTK_WIDGET(widget), 1440, 720);
+        gtk_widget_set_size_request(GTK_WIDGET(widget), 740, 580);
        gtk_container_add (GTK_CONTAINER(window), GTK_WIDGET(grid));
        g_signal_connect (window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
 #endif
        gtk_window_set_title (GTK_WINDOW(window), _("GNOME Internet Radio Locator"));
-       gtk_window_set_default_size (GTK_WINDOW(window), 1440, 720);
-
+       gtk_window_set_default_size (GTK_WINDOW(window), 740, 580);
+       gtk_window_maximize (GTK_WINDOW (window));
        gnome_internet_radio_locator_app = create_gnome_internet_radio_locator_app();
        gtk_widget_show(gnome_internet_radio_locator_app);
 
@@ -691,6 +710,7 @@ on_search_matches(GtkEntryCompletion *widget,
        gchar *country;
        gchar *state;
        GError **err;
+       gint context_id;
 
        gtk_tree_model_get_value(model, iter, STATION_LOCATION, &city);
        gtk_tree_model_get_value(model, iter, STATION_URI, &value);
@@ -742,7 +762,16 @@ on_search_matches(GtkEntryCompletion *widget,
        player = gst_player_new (NULL, gst_player_g_main_context_signal_dispatcher_new(NULL));
        /* g_object_set_data(G_OBJECT(widget), "station_uri", g_value_get_string(&value)); */
        gnome_internet_radio_locator_player_new(player, g_value_get_string(&value));
-       gst_player_play(player);
+       stationinfo = gnome_internet_radio_locator_station_load_from_file(localstation, 
world_station_xml_filename);
+       while (stationinfo != NULL) {
+               if (strcasecmp(stationinfo->stream->uri, g_value_get_string(&value))==0) {
+                       gchar *statusmsg = g_strconcat(stationinfo->name, " in ", stationinfo->location, " 
(", stationinfo->band, ", ", g_strdup_printf("%li", stationinfo->stream->samplerate), " Hz, ", 
g_strdup_printf("%li", stationinfo->stream->bitrate), " kbps)", NULL);
+                       context_id = gtk_statusbar_get_context_id (GTK_STATUSBAR (statusbar), "Station Name");
+                       gtk_statusbar_push (GTK_STATUSBAR (statusbar), GPOINTER_TO_INT (context_id), 
statusmsg);
+                       gst_player_play(player);
+               }
+               stationinfo = stationinfo->next;
+       }
        return FALSE;
 }
 
@@ -780,7 +809,7 @@ main (int argc,
 
        g_object_set (G_OBJECT (view),
                      "kinetic-mode", TRUE,
-                     "zoom-level", 4,
+                     "zoom-level", 3,
                      NULL);
 
        g_object_set_data (G_OBJECT (view), "window", window);
@@ -799,7 +828,7 @@ main (int argc,
 
        license_actor = champlain_view_get_license_actor (view);
        champlain_license_set_extra_text (license_actor, "Free Internet Radio");
-       champlain_view_center_on (CHAMPLAIN_VIEW (view), 59.3251172, 18.0710935);
+       champlain_view_center_on (CHAMPLAIN_VIEW (view), 29.9499323, -90.0701156);
        layer = create_marker_layer (view, &path);
        champlain_view_add_layer (view, CHAMPLAIN_LAYER (path));
        champlain_view_add_layer (view, CHAMPLAIN_LAYER (layer));
@@ -817,7 +846,7 @@ main (int argc,
        append_point (path_layer, 45.4151, -73.1218);
        champlain_view_add_layer (view, CHAMPLAIN_LAYER (path_layer));
 
-       gtk_widget_set_size_request (widget, 640, 481);
+       gtk_widget_set_size_request (widget, 640, 520);
 
        bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10);
 
@@ -830,13 +859,14 @@ main (int argc,
        gtk_container_add (GTK_CONTAINER (bbox), button);
 #endif
 
+#if 0
        button = gtk_button_new();
        image = gtk_image_new_from_icon_name("media-playback-start", GTK_ICON_SIZE_BUTTON);
        gtk_button_set_image (GTK_BUTTON (button), image);
        gtk_button_set_label (GTK_BUTTON (button), "New");
        g_signal_connect(button, "clicked", G_CALLBACK (on_new_station_clicked), view);
        gtk_container_add (GTK_CONTAINER (bbox), button);
-
+#endif
        memset(&stats, 0, sizeof(stats));
 
        input = gtk_entry_new();
@@ -982,11 +1012,12 @@ main (int argc,
        g_signal_connect (view, "notify::state", G_CALLBACK (view_state_changed),
                          button);
        gtk_box_pack_end (GTK_BOX (bbox), button, FALSE, FALSE, 0);
-
        viewport = gtk_frame_new (NULL);
        gtk_container_add (GTK_CONTAINER (viewport), widget);
-
        gtk_box_pack_start (GTK_BOX (vbox), bbox, FALSE, FALSE, 0);
+       statusbar = gtk_statusbar_new ();
+       gtk_box_pack_end (GTK_BOX (vbox), statusbar, TRUE, TRUE, 0);
+       gtk_widget_show (statusbar);
        gtk_container_add (GTK_CONTAINER (vbox), viewport);
 
        /* and insert it into the main window  */
diff --git a/src/gnome-internet-radio-locator.h b/src/gnome-internet-radio-locator.h
index 2d93171..a8f5e5b 100644
--- a/src/gnome-internet-radio-locator.h
+++ b/src/gnome-internet-radio-locator.h
@@ -62,6 +62,8 @@ typedef enum {
 #define GNOME_INTERNET_RADIO_LOCATOR_PLAYER_TRUE 1
 #define GNOME_INTERNET_RADIO_LOCATOR_PLAYER_FALSE 0
 
+gchar *str_channels (GNOMEInternetRadioLocatorChannels type);
+
 void show_error(gchar * msg);
 void statusbar_send_msg(const char *a, ...);
 
diff --git a/src/gnome-internet-radio-locator.xml b/src/gnome-internet-radio-locator.xml
index 5defa58..63a8d15 100644
--- a/src/gnome-internet-radio-locator.xml
+++ b/src/gnome-internet-radio-locator.xml
@@ -363,7 +363,7 @@ Bergen Student Radio strives to be an alternative to commercial and state-run ra
     <stream mime="audio/mpeg" uri="http://www.cr944.at:8000/cr944-high"; codec="MPEG 1 Audio, Layer 3 (MP3)" 
samplerate="44100 Hz" channels="Stereo" bitrate="192 kbps" />
     <uri>http://www.campusradio.at/</uri>
   </station>
-  <station band="" id="radiouniversidad" lang="en" name="Radio Universidad" rank="1.0" type="edu">
+  <station band="ONLINE" id="radiouniversidad" lang="en" name="Radio Universidad" rank="1.0" type="edu">
     <frequency uri="http://radiou.usac.edu.gt/";>92.1 FM in Guatemala City, Guatemala</frequency>
     <location>Guatemala City, Guatemala</location>
     <description lang="es">
@@ -1008,7 +1008,7 @@ Behind the scenes we rely on our fantastic technical, musical and promotional te
   </station>
   <station band="95.3FM" id="whrb" lang="en" name="WHRB" rank="1.0" type="edu">
     <frequency uri="http://www.whrb.org/";>95.3 FM in Cambridge, Massachusetts</frequency>
-    <location>Cambridge, Massachusetts</location>
+    <location>WHRB-FM, Cambridge, Massachusetts</location>
     <description lang="en">For seventy years, 95.3FM has been Boston's first source for exciting, 
entertaining, and enlightening music broadcasts. Harvard Radio's daily broadcast of Classical music, Jazz, 
and underground Rock explore a great repertoire of music left largely untouched by other commercial 
stations.</description>
     <stream mime="audio/mpeg" uri="http://stream.whrb.org:8000/whrb-mp3"; codec="MPEG 1 Audio, Layer 3 (MP3)" 
samplerate="44100 Hz" channels="Stereo" bitrate="95 kbps" />
     <stream mime="audio/mpeg" uri="http://stream.whrb.org:8000/whrb-he-aac"; codec="MPEG-4 AAC" 
samplerate="44100 Hz" channels="Stereo" bitrate="62 kbps" />
@@ -1025,7 +1025,7 @@ Behind the scenes we rely on our fantastic technical, musical and promotional te
     <frequency uri="http://wwno.org/";>89.9 FM in New Orleans, Louisiana</frequency>
     <location>New Orleans, Louisiana</location>
     <description lang="en">WWNO is the NPR member station for New Orleans and the 13 parishes of southeast 
Louisiana, broadcasting on 89.9 FM — and on KTLN 90.5 FM in the Houma-Thibodaux area — as a public service of 
the University of New Orleans.</description>
-    <stream mime="audio/mpeg" uri="http://pubint.ic.llnwd.net/stream/pubint_wwno_128"; codec="MPEG 1 Audio, 
Layer 3 (MP3)" samplerate="44100 Hz" channels="Stereo" bitrate="128 kbps" />
+    <stream mime="audio/mpeg" uri="https://tektite.streamguys1.com:5145/wwnolive"; codec="MPEG 1 Audio, Layer 
3 (MP3)" samplerate="44100 Hz" channels="Stereo" bitrate="126 kbps" />
     <uri>http://wwno.org/</uri>
   </station>
   <station band="99.1FM" id="ktru" lang="en" name="KTRU" rank="1.0" type="edu">


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]