[girl] girl version 0.8.0



commit 55ecb01abfcde0021861a0b3e364c0da99a2665f
Author: Ole Aamot <oka oka no>
Date:   Sat Dec 20 16:18:08 2014 +0100

    girl version 0.8.0

 ChangeLog           |    8 ++++++
 Makefile.am         |    1 +
 Makefile.in         |    1 +
 NEWS                |    8 ++++++
 configure           |   22 +++++++++---------
 configure.ac        |    4 +-
 girl.spec.in        |    4 +++
 man/Makefile        |    6 ++--
 src/Makefile.am     |    4 +-
 src/Makefile.in     |    4 +-
 src/girl-0.7.dtd    |    6 +++-
 src/girl-canvas.c   |   14 +++++-----
 src/girl-gui.c      |   17 +++++++------
 src/girl-gui.h      |    2 +
 src/girl-listener.c |   15 ++++++-----
 src/girl-program.c  |   39 +++++++++++++++----------------
 src/girl-runners.c  |   14 +++++-----
 src/girl-runners.h  |    4 +-
 src/girl-station.c  |   63 +++++++++++++++++++++++---------------------------
 src/girl-streams.c  |   20 +++++++++-------
 src/girl.c          |   28 +++++++++++++++-------
 src/stations.xml    |   19 +++++++++++++-
 22 files changed, 176 insertions(+), 127 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index f900188..7e0d1e9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2014-12-20  Ole Aamot  <oka oka no>
+
+       * NEWS: girl version 0.8.0 "Cinnamon Girl" release
+       * po/de.po: Updated German translation by Wolfgang Stöggl
+       * po/pt_BR.po: Updated Brazilian Portuguese translation by Rafael Ferreira
+       * src/stations.xml: Add Fuse FM (fusefm.co.uk)
+       * src/stations.xml: Add Burst Radio (burstradio.co.uk)
+
 2014-12-14  Ole Aamot  <oka oka no>
 
        * NEWS: girl version 0.7.3 release
diff --git a/Makefile.am b/Makefile.am
index ddadd92..b5da814 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -14,6 +14,7 @@ EXTRA_DIST = config.rpath m4/ChangeLog  \
        NEWS-0.5 \
        NEWS-0.6 \
        NEWS-0.7 \
+       NEWS-0.8 \
        THANKS \
        TODO \
        girl.spec.in
diff --git a/Makefile.in b/Makefile.in
index 8eb39d5..eea96b2 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -329,6 +329,7 @@ EXTRA_DIST = config.rpath m4/ChangeLog  \
        NEWS-0.5 \
        NEWS-0.6 \
        NEWS-0.7 \
+       NEWS-0.8 \
        THANKS \
        TODO \
        girl.spec.in
diff --git a/NEWS b/NEWS
index b2a5f0b..3b6d6f5 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,11 @@
+2014-12-20  Ole Aamot  <oka oka no>
+
+       * NEWS: girl version 0.8.0 "Cinnamon Girl" release
+       * po/de.po: Updated German translation by Wolfgang Stöggl
+       * po/pt_BR.po: Updated Brazilian Portuguese translation by Rafael Ferreira
+       * src/stations.xml: Add Fuse FM (fusefm.co.uk)
+       * src/stations.xml: Add Burst Radio (burstradio.co.uk)
+
 2014-12-14  Ole Aamot  <oka oka no>
 
        * NEWS: girl version 0.7.3 release
diff --git a/configure b/configure
index 7dff109..65331e9 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for girl 0.7.3.
+# Generated by GNU Autoconf 2.69 for girl 0.8.0.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -577,8 +577,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='girl'
 PACKAGE_TARNAME='girl'
-PACKAGE_VERSION='0.7.3'
-PACKAGE_STRING='girl 0.7.3'
+PACKAGE_VERSION='0.8.0'
+PACKAGE_STRING='girl 0.8.0'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1329,7 +1329,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures girl 0.7.3 to adapt to many kinds of systems.
+\`configure' configures girl 0.8.0 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1395,7 +1395,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of girl 0.7.3:";;
+     short | recursive ) echo "Configuration of girl 0.8.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1499,7 +1499,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-girl configure 0.7.3
+girl configure 0.8.0
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1864,7 +1864,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by girl $as_me 0.7.3, which was
+It was created by girl $as_me 0.8.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2727,7 +2727,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='girl'
- VERSION='0.7.3'
+ VERSION='0.8.0'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4091,7 +4091,7 @@ $as_echo "#define HAVE_GIRL_RECORD 1" >>confdefs.h
 
 $as_echo "#define HAVE_GIRL_RECORD 0" >>confdefs.h
 
-          record_msg="no"
+          record_msg="no (http://streamripper.sf.net/)"
           girl_record=false
         fi
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $record_msg" >&5
@@ -6707,7 +6707,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by girl $as_me 0.7.3, which was
+This file was extended by girl $as_me 0.8.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -6773,7 +6773,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-girl config.status 0.7.3
+girl config.status 0.8.0
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index cd3e4a6..f417110 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.59)
-AC_INIT(girl, 0.7.3)
+AC_INIT(girl, 0.8.0)
 AM_INIT_AUTOMAKE([no-dist-gzip dist-xz])
 AC_CONFIG_SRCDIR([src/girl.c])
 AC_CONFIG_HEADER([config.h])
@@ -37,7 +37,7 @@ if $try_record; then
           girl_record=true
        else
           AC_DEFINE([HAVE_GIRL_RECORD],0,[don't have record])
-          record_msg="no"
+          record_msg="no (http://streamripper.sf.net/)"
           girl_record=false
         fi
        AC_MSG_RESULT([$record_msg])
diff --git a/girl.spec.in b/girl.spec.in
index 928c61f..d739f37 100644
--- a/girl.spec.in
+++ b/girl.spec.in
@@ -52,6 +52,7 @@ make DESTDIR=%{buildroot} install
 %{_datadir}/girl/girl-0.5.dtd
 %{_datadir}/girl/girl-0.6.dtd
 %{_datadir}/girl/girl-0.7.dtd
+%{_datadir}/girl/girl-0.8.dtd
 %{_datadir}/girl/girl-logo.png
 %{_datadir}/girl/girl.png
 %{_datadir}/girl/listener-1.0.dtd
@@ -73,6 +74,9 @@ make DESTDIR=%{buildroot} install
 %{_mandir}/man1/girl.1.gz
 
 %changelog
+* Sat Dec 20 2014 Ole Aamot - 0.8.0-1
+- Girl 0.8.0 build on Fedora Linux 21
+
 * Sun Dec 14 2014 Ole Aamot - 0.7.3-1
 - Girl 0.7.3 build on Fedora Linux 21
 
diff --git a/man/Makefile b/man/Makefile
index 22338b7..5fca21d 100644
--- a/man/Makefile
+++ b/man/Makefile
@@ -201,10 +201,10 @@ OBJEXT = o
 PACKAGE = girl
 PACKAGE_BUGREPORT = 
 PACKAGE_NAME = girl
-PACKAGE_STRING = girl 0.7.3
+PACKAGE_STRING = girl 0.8.0
 PACKAGE_TARNAME = girl
 PACKAGE_URL = 
-PACKAGE_VERSION = 0.7.3
+PACKAGE_VERSION = 0.8.0
 PATH_SEPARATOR = :
 PKG_CONFIG = /usr/bin/pkg-config
 PKG_CONFIG_LIBDIR = 
@@ -217,7 +217,7 @@ SET_MAKE =
 SHELL = /bin/sh
 STRIP = 
 USE_NLS = yes
-VERSION = 0.7.3
+VERSION = 0.8.0
 XGETTEXT = /usr/bin/xgettext
 abs_builddir = /home/oka/git/gnome/girl/man
 abs_srcdir = /home/oka/git/gnome/girl/man
diff --git a/src/Makefile.am b/src/Makefile.am
index b43fe5f..d056c65 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -8,6 +8,6 @@ bin_PROGRAMS = girl
 girl_SOURCES = girl.c girl-gui.c girl-listener.c girl-program.c girl-runners.c girl-station.c girl-streams.c 
girl-canvas.c
 
 girldir = $(datadir)/girl
-girl_DATA = listeners.xml programs.xml stations.xml streams.xml girl-0.1.dtd girl-0.2.dtd girl-0.3.dtd 
girl-0.4.dtd girl-0.5.dtd girl-0.6.dtd girl-0.7.dtd listener-1.0.dtd listener-1.1.dtd programs-0.1.dtd 
girl-logo.png girl.png
+girl_DATA = listeners.xml programs.xml stations.xml streams.xml girl-0.1.dtd girl-0.2.dtd girl-0.3.dtd 
girl-0.4.dtd girl-0.5.dtd girl-0.6.dtd girl-0.7.dtd girl-0.8.dtd listener-1.0.dtd listener-1.1.dtd 
programs-0.1.dtd girl-logo.png girl.png
 
-EXTRA_DIST = girl.h girl-gui.h girl-listener.h girl-program.h girl-runners.h girl-station.h girl-streams.h 
girl-canvas.h listeners.xml programs.xml stations.xml streams.xml girl-0.1.dtd girl-0.2.dtd girl-0.3.dtd 
girl-0.4.dtd girl-0.5.dtd girl-0.6.dtd girl-0.7.dtd listener-1.0.dtd listener-1.1.dtd programs-0.1.dtd 
girl-logo.png girl.png
+EXTRA_DIST = girl.h girl-gui.h girl-listener.h girl-program.h girl-runners.h girl-station.h girl-streams.h 
girl-canvas.h listeners.xml programs.xml stations.xml streams.xml girl-0.1.dtd girl-0.2.dtd girl-0.3.dtd 
girl-0.4.dtd girl-0.5.dtd girl-0.6.dtd girl-0.7.dtd girl-0.8.dtd listener-1.0.dtd listener-1.1.dtd 
programs-0.1.dtd girl-logo.png girl.png
diff --git a/src/Makefile.in b/src/Makefile.in
index 4daf367..abe59e2 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -312,8 +312,8 @@ AM_CFLAGS = $(GOAL_CFLAGS)
 AM_LDFLAGS = $(GOAL_LIBS)
 girl_SOURCES = girl.c girl-gui.c girl-listener.c girl-program.c girl-runners.c girl-station.c girl-streams.c 
girl-canvas.c
 girldir = $(datadir)/girl
-girl_DATA = listeners.xml programs.xml stations.xml streams.xml girl-0.1.dtd girl-0.2.dtd girl-0.3.dtd 
girl-0.4.dtd girl-0.5.dtd girl-0.6.dtd girl-0.7.dtd listener-1.0.dtd listener-1.1.dtd programs-0.1.dtd 
girl-logo.png girl.png
-EXTRA_DIST = girl.h girl-gui.h girl-listener.h girl-program.h girl-runners.h girl-station.h girl-streams.h 
girl-canvas.h listeners.xml programs.xml stations.xml streams.xml girl-0.1.dtd girl-0.2.dtd girl-0.3.dtd 
girl-0.4.dtd girl-0.5.dtd girl-0.6.dtd girl-0.7.dtd listener-1.0.dtd listener-1.1.dtd programs-0.1.dtd 
girl-logo.png girl.png
+girl_DATA = listeners.xml programs.xml stations.xml streams.xml girl-0.1.dtd girl-0.2.dtd girl-0.3.dtd 
girl-0.4.dtd girl-0.5.dtd girl-0.6.dtd girl-0.7.dtd girl-0.8.dtd listener-1.0.dtd listener-1.1.dtd 
programs-0.1.dtd girl-logo.png girl.png
+EXTRA_DIST = girl.h girl-gui.h girl-listener.h girl-program.h girl-runners.h girl-station.h girl-streams.h 
girl-canvas.h listeners.xml programs.xml stations.xml streams.xml girl-0.1.dtd girl-0.2.dtd girl-0.3.dtd 
girl-0.4.dtd girl-0.5.dtd girl-0.6.dtd girl-0.7.dtd girl-0.8.dtd listener-1.0.dtd listener-1.1.dtd 
programs-0.1.dtd girl-logo.png girl.png
 all: all-am
 
 .SUFFIXES:
diff --git a/src/girl-0.7.dtd b/src/girl-0.7.dtd
index eb678a9..38c6dbb 100644
--- a/src/girl-0.7.dtd
+++ b/src/girl-0.7.dtd
@@ -4,13 +4,16 @@
 <!ELEMENT location ( lat | lon )* >
 <!ELEMENT girl ( station+ ) >
 <!ATTLIST girl version NMTOKEN #REQUIRED >
-<!ELEMENT station ( description | frequency | location | stream | uri | rank | type | release | lang)* >
+<!ELEMENT station ( description | frequency | location |  uri | rank | type | release | lang | stream)* >
 <!ATTLIST station id NMTOKEN #REQUIRED >
 <!ATTLIST station name CDATA #REQUIRED >
+<!ATTLIST station location CDATA #REQUIRED >
+<!ATTLIST station uri CDATA #REQUIRED >
 <!ATTLIST station rank CDATA #REQUIRED >
 <!ATTLIST station type CDATA #REQUIRED >
 <!ATTLIST station release CDATA #REQUIRED >
 <!ATTLIST station lang CDATA #REQUIRED >
+<!ELEMENT uri ( #PCDATA ) >
 <!ELEMENT stream EMPTY >
 <!ATTLIST stream bitrate NMTOKEN #REQUIRED >
 <!ATTLIST stream channels NMTOKEN #IMPLIED >
@@ -18,4 +21,3 @@
 <!ATTLIST stream samplerate NMTOKEN #REQUIRED >
 <!ATTLIST stream uri CDATA #REQUIRED >
 <!ATTLIST stream codec CDATA #REQUIRED >
-<!ELEMENT uri ( #PCDATA ) >
diff --git a/src/girl-canvas.c b/src/girl-canvas.c
index 9d0116e..1b1a49e 100644
--- a/src/girl-canvas.c
+++ b/src/girl-canvas.c
@@ -29,17 +29,17 @@
 
 GnomeCanvasGroup *girl_canvas_root = NULL;
 GtkWidget *girl_canvas = NULL;
+#if 0
 static GnomeCanvasItem *girl_canvas_item;
+#endif
 
 GtkWidget *
 girl_canvas_create(char *image, guint x1, guint x2, guint y1, guint y2, gpointer data) {
        GnomeCanvas *canvas;
-       GnomeCanvasItem *images;
-       GnomeCanvasItem *item;
-       GError **err = NULL;
-
+       /* GnomeCanvasItem *images; */
+       /* GnomeCanvasItem *item; */
+       /* GError **err = NULL; */
        canvas = GNOME_CANVAS(data);
-       images = GDK_PIXBUF(gdk_pixbuf_new_from_file("girl-logo.png", err));
-
-       return canvas;
+       /* images = GDK_PIXBUF(gdk_pixbuf_new_from_file("girl-logo.png", err)); */
+       return (GTK_WIDGET(canvas));
 }
diff --git a/src/girl-gui.c b/src/girl-gui.c
index 35b456b..05e0bf2 100644
--- a/src/girl-gui.c
+++ b/src/girl-gui.c
@@ -188,6 +188,7 @@ GtkWidget *create_listeners_selector(char *selected_listener_uri,
                listener_name = g_strdup(listenerinfo->name);
                listener_location = g_strdup(listenerinfo->location);
                listener_description = g_strdup(listenerinfo->description);
+               listener_release = g_strdup(listenerinfo->release);
 
                /* girl_listeners = g_list_append(girl_listeners,(GirlListenerInfo *)listenerinfo); */
 
@@ -238,11 +239,11 @@ GtkWidget *create_listeners_selector(char *selected_listener_uri,
 
        drop_down = gtk_option_menu_new();
        gtk_widget_show(drop_down);
-       gtk_option_menu_set_menu(drop_down, menu);
+       gtk_option_menu_set_menu(GTK_OPTION_MENU(drop_down), menu);
        gtk_container_add(GTK_CONTAINER(align), drop_down);
 
        if (selection != -1)
-               gtk_option_menu_set_history(drop_down, selection);
+               gtk_option_menu_set_history(GTK_OPTION_MENU(drop_down), selection);
 
        g_signal_connect(G_OBJECT(listeners_selector), "response",
                         G_CALLBACK(gtk_widget_hide),
@@ -370,11 +371,11 @@ GtkWidget *create_programs_selector(char *selected_program_uri,
 
        drop_down = gtk_option_menu_new();
        gtk_widget_show(drop_down);
-       gtk_option_menu_set_menu(drop_down, menu);
+       gtk_option_menu_set_menu(GTK_OPTION_MENU(drop_down), menu);
        gtk_container_add(GTK_CONTAINER(align), drop_down);
 
        if (selection != -1)
-               gtk_option_menu_set_history(drop_down, selection);
+               gtk_option_menu_set_history(GTK_OPTION_MENU(drop_down), selection);
 
        g_signal_connect(G_OBJECT(programs_selector), "response",
                         G_CALLBACK(gtk_widget_hide),
@@ -502,11 +503,11 @@ GtkWidget *create_stations_selector(char *selected_station_uri,
 
        drop_down = gtk_option_menu_new();
        gtk_widget_show(drop_down);
-       gtk_option_menu_set_menu(drop_down, menu);
+       gtk_option_menu_set_menu(GTK_OPTION_MENU(drop_down), menu);
        gtk_container_add(GTK_CONTAINER(align), drop_down);
 
        if (selection != -1)
-               gtk_option_menu_set_history(drop_down, selection);
+               gtk_option_menu_set_history(GTK_OPTION_MENU(drop_down), selection);
 
        g_signal_connect(G_OBJECT(stations_selector), "response",
                         G_CALLBACK(gtk_widget_hide),
@@ -638,11 +639,11 @@ GtkWidget *create_streams_selector(char *selected_streams_uri,
 
        drop_down = gtk_option_menu_new();
        gtk_widget_show(drop_down);
-       gtk_option_menu_set_menu(drop_down, menu);
+       gtk_option_menu_set_menu(GTK_OPTION_MENU(drop_down), menu);
        gtk_container_add(GTK_CONTAINER(align), drop_down);
 
        if (selection != -1)
-               gtk_option_menu_set_history(drop_down, selection);
+               gtk_option_menu_set_history(GTK_OPTION_MENU(drop_down), selection);
 
        g_signal_connect(G_OBJECT(streams_selector), "response",
                         G_CALLBACK(gtk_widget_hide),
diff --git a/src/girl-gui.h b/src/girl-gui.h
index 6f522d8..2a44422 100644
--- a/src/girl-gui.h
+++ b/src/girl-gui.h
@@ -10,5 +10,7 @@ GtkWidget *create_listeners_selector(char *selected_listener_uri,
                                     char *filename);
 GtkWidget *create_stations_selector(char *selected_station_uri,
                                    char *filename);
+GtkWidget *create_streams_selector(char *selected_streams_uri,
+                                  char *filename);
 
 #endif                         /* GIRL_GUI_H */
diff --git a/src/girl-listener.c b/src/girl-listener.c
index 8d0a6f7..47cc3c8 100644
--- a/src/girl-listener.c
+++ b/src/girl-listener.c
@@ -42,21 +42,22 @@ static void
 girl_listener_parser(GirlListenerInfo * listener, xmlDocPtr doc,
                     xmlNodePtr cur)
 {
+#if 0
        xmlNodePtr sub;
-
+#endif
        g_return_if_fail(listener != NULL);
        g_return_if_fail(doc != NULL);
        g_return_if_fail(cur != NULL);
 
-       listener->name = xmlGetProp(cur, "name");
+       listener->name = (gchar *)xmlGetProp(cur, (const xmlChar *)"name");
        MSG("listener->name = %s\n", listener->name);
-       listener->location = xmlGetProp(cur, "location");
+       listener->location = (gchar *)xmlGetProp(cur, (const xmlChar *)"location");
        MSG("listener->location = %s\n", listener->location);
-       listener->uri = xmlGetProp(cur, "uri");
+       listener->uri = (gchar *)xmlGetProp(cur, (const xmlChar *)"uri");
        MSG("listener->uri = %s\n", listener->uri);
-       listener->release = xmlGetProp(cur, "release");
+       listener->release = (gchar *)xmlGetProp(cur, (const xmlChar *)"release");
        MSG("listener->release = %s\n", listener->release);
-       listener->description = xmlGetProp(cur, "description");
+       listener->description = (gchar *)xmlGetProp(cur, (const xmlChar *)"description");
        MSG("listener->description = %s\n", listener->description);
 
 #if 0
@@ -156,7 +157,7 @@ GirlListenerInfo *girl_listener_load_from_file(GirlListenerInfo * head,
                return NULL;
        }
 
-       version = xmlGetProp(cur, "version");
+       version = (gchar *)xmlGetProp(cur, (const xmlChar *) "version");
 
        MSG("Valid Girl Listener %s XML document... Parsing listeners...\n", version);
 
diff --git a/src/girl-program.c b/src/girl-program.c
index 4abedb4..2dac509 100644
--- a/src/girl-program.c
+++ b/src/girl-program.c
@@ -52,15 +52,15 @@ girl_program_parser(GirlProgramInfo * program, xmlDocPtr doc,
        g_return_if_fail(doc != NULL);
        g_return_if_fail(cur != NULL);
 
-       program->id = xmlGetProp(cur, "id");
+       program->id = (gchar *)xmlGetProp(cur, (const xmlChar *)"id");
        MSG("program->id = %s\n", program->id);
-       program->name = xmlGetProp(cur, "name");
+       program->name = (gchar *)xmlGetProp(cur, (const xmlChar *)"name");
        MSG("program->name = %s\n", program->name);
-       program->rank = xmlGetProp(cur, "rank");
+       program->rank = (gchar *)xmlGetProp(cur, (const xmlChar *)"rank");
        MSG("program->rank = %s\n", program->rank);
-       program->type = xmlGetProp(cur, "type");
+       program->type = (gchar *)xmlGetProp(cur, (const xmlChar *)"type");
        MSG("program->type = %s\n", program->type);
-       program->release = xmlGetProp(cur, "release");
+       program->release = (gchar *)xmlGetProp(cur, (const xmlChar *)"release");
        MSG("program->release = %s\n", program->release);
 
        sub = cur->xmlChildrenNode;
@@ -68,7 +68,7 @@ girl_program_parser(GirlProgramInfo * program, xmlDocPtr doc,
        while (sub != NULL) {
 
                if ((!xmlStrcmp(sub->name, (const xmlChar *) "frequency"))) {
-                       program->frequency =
+                       program->frequency = (gchar *)
                            xmlNodeListGetString(doc, sub->xmlChildrenNode,
                                                 1);
                        MSG("program->frequency = %s\n",
@@ -76,7 +76,7 @@ girl_program_parser(GirlProgramInfo * program, xmlDocPtr doc,
                }
 
                if ((!xmlStrcmp(sub->name, (const xmlChar *) "location"))) {
-                       program->location =
+                       program->location = (gchar *)
                            xmlNodeListGetString(doc, sub->xmlChildrenNode,
                                                 1);
                        MSG("program->location = %s\n", program->location);
@@ -85,14 +85,14 @@ girl_program_parser(GirlProgramInfo * program, xmlDocPtr doc,
 
                if ((!xmlStrcmp
                     (sub->name, (const xmlChar *) "description"))) {
-                       program->description =
+                       program->description = (gchar *)
                            xmlNodeListGetString(doc, sub->xmlChildrenNode,
                                                 1);
                        MSG("program->description = %s\n", program->description);
                }
 
                if ((!xmlStrcmp(sub->name, (const xmlChar *) "uri"))) {
-                       program->uri =
+                       program->uri = (gchar *)
                            xmlNodeListGetString(doc, sub->xmlChildrenNode,
                                                 1);
                        MSG("program->uri = %s\n", program->uri);
@@ -103,29 +103,28 @@ girl_program_parser(GirlProgramInfo * program, xmlDocPtr doc,
                        GirlArchiveInfo *archive = g_new0(GirlArchiveInfo, 1);
                        program->archive = archive;
 
-                       program->archive->mimetype =
-                           xmlGetProp(sub, "mime");
+                       program->archive->mimetype = (gchar *)xmlGetProp(sub, (const xmlChar *)"mime");
                        MSG("program->archive->mimetype = %s\n",
                            program->archive->mimetype);
-                       if (xmlGetProp(sub, "bitrate") != NULL) {
-                               program->archive->bitrate =
-                                   atol(xmlGetProp(sub, "bitrate"));
+                       if (xmlGetProp(sub, (const xmlChar *)"bitrate") != NULL) {
+                               program->archive->bitrate = (glong)
+                                       atol((const char *)xmlGetProp(sub, (const xmlChar *)"bitrate"));
                                MSG("program->archive->bitrate = %li\n",
                                    program->archive->bitrate);
                        }
 
-                       if (xmlGetProp(sub, "samplerate") != NULL) {
-                               program->archive->samplerate =
-                                   atol(xmlGetProp(sub, "samplerate"));
+                       if (xmlGetProp(sub, (const xmlChar *)"samplerate") != NULL) {
+                               program->archive->samplerate = (glong) 
+                                       atol((const char *)xmlGetProp(sub, (const xmlChar *)"samplerate"));
                        }
 
                        MSG("program->archive->samplerate = %li\n",
                            program->archive->samplerate);
-                       program->archive->uri = xmlGetProp(sub, "uri");
+                       program->archive->uri = (gchar *)xmlGetProp(sub, (const xmlChar *)"uri");
                        MSG("program->archive->uri = %s\n",
                            program->archive->uri);
 
-                       chans = xmlGetProp(sub, "channels");
+                       chans = (gchar *)xmlGetProp(sub, (const xmlChar *)"channels");
 
                        if (chans != NULL) {
                                if (strcmp(chans, "stereo") == 0) {
@@ -194,7 +193,7 @@ GirlProgramInfo *girl_program_load_from_file(GirlProgramInfo * head,
                return NULL;
        }
 
-       version = xmlGetProp(cur, "version");
+       version = (gchar *)xmlGetProp(cur, (const xmlChar *)"version");
 
        MSG("Valid Girl %s XML document... Parsing programs...\n",
            version);
diff --git a/src/girl-runners.c b/src/girl-runners.c
index ca28b08..01bfb89 100644
--- a/src/girl-runners.c
+++ b/src/girl-runners.c
@@ -24,7 +24,7 @@
 #include "girl.h"
 #include "girl-runners.h"
 
-GirlRunnersInfo *girl_runners_new (GPid *pid,
+GirlRunnersInfo *girl_runners_new (pid_t pid,
                                   gchar *name,
                                   gchar *date,
                                   gchar *time,
@@ -52,12 +52,12 @@ void girl_runners_mutex_unlock(GirlRunnersInfo *info);
 
 void girl_runners_run(GirlRunnersInfo *info)
 {
-       GThread *thread;
-       gboolean thread_ready;
-       gint recording_lock;
+       /* GThread *thread; */
+       /* gboolean thread_ready; */
+       /* gint recording_lock; */
        /* g_assert (g_mutex_trylock (girl_mutex)); */
        /* g_assert (G_TRYLOCK (mutex)); */
-       thread_ready = GIRL_RECORDING_FALSE;
+       /* thread_ready = GIRL_RECORDING_FALSE; */
        /* thread = g_thread_create (thread, girl_helper_run, command, NULL); */
        /* while (!thread_ready) { */
        /*      g_usleep(G_USEC_PER_SEC / 5); */
@@ -66,7 +66,7 @@ void girl_runners_run(GirlRunnersInfo *info)
        /* g_mutex_unlock (mutex); */
        /* g_mutex_free (mutex); */
        girl_runners_mutex_get(info);
-       recording_lock = GIRL_RECORDING_TRUE;
+       /* recording_lock = GIRL_RECORDING_TRUE; */
        girl_runners_mutex_release(info);
-       return (0);
+       return;
 }
diff --git a/src/girl-runners.h b/src/girl-runners.h
index 47de281..e455379 100644
--- a/src/girl-runners.h
+++ b/src/girl-runners.h
@@ -29,7 +29,7 @@ typedef struct _GirlRunnersInfo GirlRunnersInfo;
 struct _GirlRunnersInfo {
        GtkWidget *widget;
        GMutex *mutex;
-       GPid *pid;
+       pid_t pid;
        gchar *name;
        gchar *date;
        gchar *time;
@@ -37,7 +37,7 @@ struct _GirlRunnersInfo {
        gchar *command;
 };
 
-GirlRunnersInfo *girl_runners_new (GPid *pid,
+GirlRunnersInfo *girl_runners_new (pid_t pid,
                                   gchar *name,
                                   gchar *date,
                                   gchar *time,
diff --git a/src/girl-station.c b/src/girl-station.c
index a4c6087..7ce9dc0 100644
--- a/src/girl-station.c
+++ b/src/girl-station.c
@@ -127,12 +127,13 @@ void girl_helper_run(char *url, char *name, GirlStreamType type, GirlHelperType
        GError *err = NULL;
        GTimeVal mtime;
 
-       const char *mime_info;
+       /* const char *mime_info = NULL; */
        /* GnomeVFSMimeApplication *app; */
-       char *app, *command, *msg, *archive;
+       char *app = NULL, *command = NULL, *msg = NULL;
+        /* char *archive; */
        char **argv = NULL;
        gint argc;
-       gint status;
+       /* gint status; */
 
        GPid        pid;
        gint        out, error;
@@ -142,12 +143,12 @@ void girl_helper_run(char *url, char *name, GirlStreamType type, GirlHelperType
        g_return_if_fail(url != NULL);
        MSG("%s", url);
 
-       mime_info = gnome_vfs_get_mime_type(url);
+       /* mime_info = gnome_vfs_get_mime_type(url); */
 
        g_get_current_time(&mtime);
 
-       /* app = gnome_vfs_mime_get_default_application (mime_info); */
-
+       /* app = (gchar *)gnome_vfs_mime_get_default_application (mime_info); */
+       
        if (helper == GIRL_STREAM_PLAYER) {
                app = g_strdup(GIRL_HELPER_PLAYER);
        }
@@ -260,10 +261,10 @@ void girl_helper_run(char *url, char *name, GirlStreamType type, GirlHelperType
                /* Create channels that will be used to read girl from pipes. */
 #ifdef G_OS_WIN32
                out_ch = g_io_channel_win32_new_fd( out );
-               err_ch = g_io_channel_win32_new_fd( err );
+               err_ch = g_io_channel_win32_new_fd( error );
 #else
                out_ch = g_io_channel_unix_new( out );
-               err_ch = g_io_channel_unix_new( err );
+               err_ch = g_io_channel_unix_new( error );
 #endif
                /* Add watches to channels */
                g_io_add_watch( out_ch, G_IO_IN | G_IO_HUP, (GIOFunc)cb_out_watch, girl );
@@ -320,15 +321,15 @@ girl_station_parser(GirlStationInfo * station, xmlDocPtr doc,
        g_return_if_fail(doc != NULL);
        g_return_if_fail(cur != NULL);
 
-       station->id = xmlGetProp(cur, "id");
+       station->id = (gchar *)xmlGetProp(cur, (const xmlChar *)"id");
        MSG("station->id = %s\n", station->id);
-       station->name = xmlGetProp(cur, "name");
+       station->name = (gchar *)xmlGetProp(cur, (const xmlChar *)"name");
        MSG("station->name = %s\n", station->name);
-       station->rank = xmlGetProp(cur, "rank");
+       station->rank = (gchar *)xmlGetProp(cur, (const xmlChar *)"rank");
        MSG("station->rank = %s\n", station->rank);
-       station->type = xmlGetProp(cur, "type");
+       station->type = (gchar *)xmlGetProp(cur, (const xmlChar *)"type");
        MSG("station->type = %s\n", station->type);
-       station->release = xmlGetProp(cur, "release");
+       station->release = (gchar *)xmlGetProp(cur, (const xmlChar *)"release");
        MSG("station->release = %s\n", station->release);
 
        sub = cur->xmlChildrenNode;
@@ -336,7 +337,7 @@ girl_station_parser(GirlStationInfo * station, xmlDocPtr doc,
        while (sub != NULL) {
 
                if ((!xmlStrcmp(sub->name, (const xmlChar *) "frequency"))) {
-                       station->frequency =
+                       station->frequency = (gchar *)
                            xmlNodeListGetString(doc, sub->xmlChildrenNode,
                                                 1);
                        MSG("station->frequency = %s\n",
@@ -344,7 +345,7 @@ girl_station_parser(GirlStationInfo * station, xmlDocPtr doc,
                }
 
                if ((!xmlStrcmp(sub->name, (const xmlChar *) "location"))) {
-                       station->location =
+                       station->location = (gchar *)
                            xmlNodeListGetString(doc, sub->xmlChildrenNode,
                                                 1);
                        MSG("station->location = %s\n", station->location);
@@ -353,18 +354,18 @@ girl_station_parser(GirlStationInfo * station, xmlDocPtr doc,
 
                if ((!xmlStrcmp
                     (sub->name, (const xmlChar *) "description"))) {
-                       station->description =
+                       station->description = (gchar *)
                            xmlNodeListGetString(doc, sub->xmlChildrenNode,
                                                 1);
                        MSG("station->description = %s\n", station->description);
                }
 
                if ((!xmlStrcmp(sub->name, (const xmlChar *) "uri"))) {
-                       station->uri =
+                       station->uri = (gchar *)
                            xmlNodeListGetString(doc, sub->xmlChildrenNode,
                                                 1);
                        MSG("station->uri = %s\n", station->uri);
-                       /* fprintf(stdout, "%s (%s)\n%s\n\n", station->name, station->location, 
station->uri); */
+                       fprintf(stdout, "%s (%s)\n%s\n\n", station->name, station->location, station->uri);
                }
 
                if ((!xmlStrcmp(sub->name, (const xmlChar *) "stream"))) {
@@ -372,31 +373,31 @@ girl_station_parser(GirlStationInfo * station, xmlDocPtr doc,
                        GirlStreamInfo *stream = g_new0(GirlStreamInfo, 1);
                        station->stream = stream;
 
-                       station->stream->mimetype =
-                           xmlGetProp(sub, "mime");
+                       station->stream->mimetype = (gchar *)
+                               xmlGetProp(sub, (const xmlChar *)"mime");
                        MSG("station->stream->mimetype = %s\n",
                            station->stream->mimetype);
-                       if (xmlGetProp(sub, "bitrate") != NULL) {
+                       if (xmlGetProp(sub, (const xmlChar *)"bitrate") != NULL) {
                                station->stream->bitrate =
-                                   atol(xmlGetProp(sub, "bitrate"));
+                                       (glong)atol((char *)xmlGetProp(sub, (const xmlChar *)"bitrate"));
                                MSG("station->stream->bitrate = %li\n",
                                    station->stream->bitrate);
                        }
 
-                       if (xmlGetProp(sub, "samplerate") != NULL) {
-                               station->stream->samplerate =
-                                   atol(xmlGetProp(sub, "samplerate"));
+                       if (xmlGetProp(sub, (const xmlChar *)"samplerate") != NULL) {
+                               station->stream->samplerate = (glong) 
+                                       atol((char *)xmlGetProp(sub, (const xmlChar *)"samplerate"));
                        }
 
                        MSG("station->stream->samplerate = %li\n",
                            station->stream->samplerate);
-                       station->stream->uri = xmlGetProp(sub, "uri");
+                       station->stream->uri = (gchar *)xmlGetProp(sub, (const xmlChar *)"uri");
                        MSG("station->stream->uri = %s\n",
                            station->stream->uri);
 
                        /* fprintf(stdout, "%s (%s)\n%s\n\n, ", station->name, station->location, 
station->stream->uri); */
                        
-                       chans = xmlGetProp(sub, "channels");
+                       chans = (gchar *)xmlGetProp(sub, (const xmlChar *)"channels");
 
                        if (chans != NULL) {
                                if (strcmp(chans, "stereo") == 0) {
@@ -423,12 +424,6 @@ girl_station_parser(GirlStationInfo * station, xmlDocPtr doc,
        return;
 }
 
-GirlStationInfo *girl_station_load_from_yp(char *uri)
-{
-       GirlStationInfo *gstation;
-       return gstation;
-}
-
 GirlStationInfo *girl_station_load_from_http(GirlStationInfo * head,
                                             gpointer data)
 {
@@ -471,7 +466,7 @@ GirlStationInfo *girl_station_load_from_file(GirlStationInfo * head,
                return NULL;
        }
 
-       version = xmlGetProp(cur, "version");
+       version = (gchar *)xmlGetProp(cur, (const xmlChar *)"version");
 
        MSG("Valid Girl %s XML document... Parsing stations...\n",
            version);
diff --git a/src/girl-streams.c b/src/girl-streams.c
index b8c799d..738df32 100644
--- a/src/girl-streams.c
+++ b/src/girl-streams.c
@@ -42,6 +42,7 @@ extern GList *girl_streams;
 
 extern GtkWidget *girl_app;
 
+#if 0
 GirlStreamsInfo *girl_streams_new (GirlStreamsInfo * head,
                                   gchar *mime,
                                   gchar *uri,
@@ -50,29 +51,30 @@ GirlStreamsInfo *girl_streams_new (GirlStreamsInfo * head,
                                   gchar *channels,
                                   gchar *bitrate) {
 }
+#endif
 
 static void
 girl_streams_parser(GirlStreamsInfo *streams, xmlDocPtr doc,
                    xmlNodePtr cur)
 {
-       xmlNodePtr sub;
-       char *chans;
+       /* xmlNodePtr sub; */
+       /* char *chans; */
 
        g_return_if_fail(streams != NULL);
        g_return_if_fail(doc != NULL);
        g_return_if_fail(cur != NULL);
 
-       streams->mime = xmlGetProp(cur, "mime");
+       streams->mime = (gchar *)xmlGetProp(cur, (const xmlChar *)"mime");
        MSG("streams->mime = %s\n", streams->mime);
-       streams->uri = xmlGetProp(cur, "uri");
+       streams->uri = (gchar *)xmlGetProp(cur, (const xmlChar *)"uri");
        MSG("streams->uri = %s\n", streams->uri);
-       streams->samplerate = xmlGetProp(cur, "samplerate");
+       streams->samplerate = (gchar *)xmlGetProp(cur, (const xmlChar *)"samplerate");
        MSG("streams->samplerate = %s\n", streams->samplerate);
-       streams->codec = xmlGetProp(cur, "codec");
+       streams->codec = (gchar *)xmlGetProp(cur, (const xmlChar *)"codec");
        MSG("streams->codec = %s\n", streams->codec);
-       streams->bitrate = xmlGetProp(cur, "bitrate");
+       streams->bitrate = (gchar *)xmlGetProp(cur, (const xmlChar *)"bitrate");
        MSG("streams->bitrate = %s\n", streams->bitrate);
-       streams->channels = xmlGetProp(cur, "channels");
+       streams->channels = (gchar *)xmlGetProp(cur, (const xmlChar *)"channels");
        MSG("streams->channels = %s\n", streams->channels);
 
 #if 0
@@ -208,7 +210,7 @@ GirlStreamsInfo *girl_streams_load_from_file(GirlStreamsInfo * head,
                return NULL;
        }
 
-       version = xmlGetProp(cur, "version");
+       version = (gchar *)xmlGetProp(cur, (const xmlChar *)"version");
 
        MSG("Valid Girl %s XML document... Parsing streams...\n",
            version);
diff --git a/src/girl.c b/src/girl.c
index 2be1ccb..9c87453 100644
--- a/src/girl.c
+++ b/src/girl.c
@@ -26,6 +26,7 @@
 #include <gnome.h>
 #include <libgnomevfs/gnome-vfs.h>
 #include <libgnomevfs/gnome-vfs-application-registry.h>
+#include <gio/gcredentials.h>
 
 #include <stdlib.h>
 #include <string.h>
@@ -75,7 +76,7 @@ int main(int argc, char *argv[])
                           GNOME_PARAM_APP_DATADIR, DATADIR, NULL);
 
 #if defined(G_THREADS_ENABLED) && ! defined(G_THREADS_IMPL_NONE)
-       g_thread_init (NULL);
+       /* g_thread_init (NULL); */
 #endif
 
        girl_app = create_girl_app();
@@ -130,7 +131,11 @@ int main(int argc, char *argv[])
 void
 toggle_in_area (double x1, double y1, double x2, double y2)
 {
-       double nx1,nx2,ny1,ny2;
+       /* double nx1,nx2,ny1,ny2; */
+       /* nx1 = x1; */
+       /* nx2 = x2; */
+       /* ny1 = y1; */
+       /* ny2 = y2; */
        
 }
 
@@ -542,7 +547,7 @@ void about_app(GtkWidget * a, gpointer user_data)
 void about_listener(GtkWidget * a, gpointer user_data)
 {
        static GtkWidget *about_listener = NULL;
-       const gchar *translator_credits = _("translator_credits");
+       /* const gchar *translator_credits = _("translator_credits"); */
        const gchar *authors[] = {
                girl->selected_listener_name,
                NULL,
@@ -572,7 +577,7 @@ void about_listener(GtkWidget * a, gpointer user_data)
 void about_program(GtkWidget * a, gpointer user_data)
 {
        static GtkWidget *about_program = NULL;
-       const gchar *translator_credits = _("translator_credits");
+       /* const gchar *translator_credits = _("translator_credits"); */
        const gchar *authors[] = {
                girl->selected_program_name,
                NULL,
@@ -605,7 +610,7 @@ void about_program(GtkWidget * a, gpointer user_data)
 void about_station(GtkWidget * a, gpointer user_data)
 {
        static GtkWidget *about_station = NULL;
-       const gchar *translator_credits = _("translator_credits");
+       /* const gchar *translator_credits = _("translator_credits"); */
        const gchar *authors[] = {
                girl->selected_station_name,
                NULL,
@@ -636,7 +641,7 @@ void about_station(GtkWidget * a, gpointer user_data)
 void about_streams(GtkWidget * a, gpointer user_data)
 {
        static GtkWidget *about_streams = NULL;
-       const gchar *translator_credits = _("translator_credits");
+       /* const gchar *translator_credits = _("translator_credits"); */
        const gchar *authors[] = {
                girl->selected_streams_uri,
                NULL,
@@ -688,8 +693,11 @@ void on_listen_button_clicked(GtkWidget *a, gpointer user_data)
 void on_record_button_clicked(GtkWidget *a, gpointer user_data)
 {
        GtkWidget *dialog;
-       GPid *pid;
+       GCredentials *credentials;
+       GError **err = NULL;
 
+       credentials = g_credentials_new ();
+       
        if (girl->selected_station_name != NULL) {
                appbar_send_msg(_("Recording from %s in %s: %s "),
                                girl->selected_station_name,
@@ -700,7 +708,7 @@ void on_record_button_clicked(GtkWidget *a, gpointer user_data)
                                girl->selected_station_name,
                                GIRL_STREAM_SHOUTCAST,
                                GIRL_STREAM_RECORD);
-               girl->selected_runners = girl_runners_new(getpid(),
+               girl->selected_runners = girl_runners_new(g_credentials_get_unix_pid(credentials, err),
                                                          girl->selected_station_name,
                                                          "date",
                                                          "time",
@@ -709,7 +717,9 @@ void on_record_button_clicked(GtkWidget *a, gpointer user_data)
                dialog = gtk_message_dialog_new(GTK_WINDOW(girl_app),
                                                GTK_DIALOG_MODAL,
                                                GTK_MESSAGE_ERROR,
-                                               GTK_BUTTONS_CLOSE, "Could not record!", NULL);
+                                               GTK_BUTTONS_CLOSE,
+                                               "Could not record %s!",
+                                               "girl.wav");
                gtk_dialog_run(GTK_DIALOG(dialog));
                gtk_widget_destroy(dialog);
        }
diff --git a/src/stations.xml b/src/stations.xml
index 10486b5..7aad104 100644
--- a/src/stations.xml
+++ b/src/stations.xml
@@ -1,6 +1,21 @@
 <?xml version="1.0"?>
-<!DOCTYPE girl SYSTEM "girl-0.7.dtd">
-<girl version="0.7">
+<!DOCTYPE girl SYSTEM "girl-0.8.dtd">
+<girl version="0.8">
+  <station id="burstradio" name="Burst Radio" rank="1.0" type="edu" release="" lang="en">
+    <frequency uri="http://www.burstradio.co.uk/";></frequency>
+    <location>Brighton, United Kingdom</location>
+    <description>Burst aims to capture the essential essence of student life at Brighton University; distil 
it and broadcast this elixir to you.</description>
+    <stream mime="audio/mpeg" uri="http://burst.brighton.ac.uk:8000/burst.mp3"; codec="MPEG 1 Audio, Layer 3 
(MP3)" samplerate="44100 Hz" channels="Stereo" bitrate="128 kbps" />
+  </station>
+  <station id="fusefm" name="Fuse FM" rank="1.0" type="edu" release="" lang="en">
+    <frequency uri="http://fusefm.co.uk/";></frequency>
+    <location>Manchester, United Kingdom</location>
+    <description>Fuse FM is Manchester University's student radio station. We first went on air back in 
2001, and 13 years later we now broadcast from a brand new, professional quality studio from within the 
Students' Union. We broadcast online throughout the academic year and you can listen to live shows and 
podcasts on our website. We love our new home, but we need your help to sound great on air. If you want to 
get in on the action, you'd be more than welcome! We are constantly on the look out for new talent, so if you 
fancy yourself as a music journalist, producer, DJ, news reader, or think you have what it takes to host your 
own show, Fuse FM is certainly the place for you! Not only is Fuse FM a fun organisation to be part of, but 
we can help you if you are interested in getting into the radio industry. Past Fuse FM members have gone on 
to find work at the BBC and commercial radio stations.</description>
+    <stream mime="audio/mpeg" uri="http://studio.fusefm.co.uk:8000/livehi"; codec="MPEG 1 Audio, Layer 3 
(MP3)" samplerate="44100 Hz" channels="Stereo" bitrate="320 kbps" />
+    <stream mime="audio/ogg" uri="http://studio.fusefm.co.uk:8000/livehi";  codec="Ogg Vorbis" 
samplerate="44100 Hz" channels="Stereo" bitrate="320 kbps" />
+    <stream mime="audio/mpeg" uri="http://studio.fusefm.co.uk:8000/live"; codec="MPEG 1 Audio, Layer 3 (MP3)" 
samplerate="44100 Hz" channels="Stereo" bitrate="128 kbps" />
+    <stream mime="audio/ogg" uri="http://studio.fusefm.co.uk:8000/live";  codec="Ogg Vorbis" 
samplerate="44100 Hz" channels="Stereo" bitrate="128 kbps" />
+  </station>
   <station id="cjsw" name="CJSW" rank="1.0" type="edu" release="90.9" lang="en">
     <frequency uri="http://cjsw.com/";></frequency>
     <location>Calgary, Canada</location>



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