[gnome-video-arcade] properties: Remove music feature



commit 6f58ec3799796c20cb212dcf6e987d194475f281
Author: Matthew Barnes <mbarnes redhat com>
Date:   Mon Jul 27 12:10:17 2015 -0400

    properties: Remove music feature
    
    arcade-history.com no longer (openly) serves these music snippets, so
    the feature is broken.  It was nice while it lasted.  :(
    
    This also drops the GStreamer dependency.

 README                                         |   18 +-
 TODO                                           |    3 +-
 configure.ac                                   |   19 -
 data/gnome-video-arcade.builder                | 1134 +++++++++++-------------
 data/gnome-video-arcade.convert                |    1 -
 data/org.gnome.VideoArcade.gschema.xml.in      |   11 -
 docs/reference/Makefile.am                     |    3 -
 docs/reference/gnome-video-arcade-docs.sgml    |    1 -
 docs/reference/gnome-video-arcade-sections.txt |   34 -
 docs/reference/gnome-video-arcade.types        |    2 -
 docs/reference/tmpl/gva-mame-common.sgml       |   26 -
 docs/reference/tmpl/gva-mame.sgml              |   10 -
 docs/reference/tmpl/gva-preferences.sgml       |   17 -
 docs/reference/tmpl/gva-ui.sgml                |    7 -
 docs/reference/tmpl/gva-util.sgml              |    1 -
 maint/Makefile.am                              |    5 +-
 maint/gva.xml                                  |    2 -
 po/POTFILES.in                                 |    1 -
 src/Makefile.am                                |    6 +-
 src/gva-common.h                               |    5 -
 src/gva-mame-common.c                          |   36 +-
 src/gva-mame-common.h                          |   20 -
 src/gva-mame.h                                 |   13 -
 src/gva-music-button.c                         |  622 -------------
 src/gva-music-button.h                         |   91 --
 src/gva-preferences.c                          |   51 --
 src/gva-preferences.h                          |    2 -
 src/gva-properties.c                           |   58 +--
 src/gva-ui.c                                   |   21 -
 src/gva-ui.h                                   |    9 -
 src/gva-util.c                                 |    1 -
 src/gva-util.h                                 |    5 +-
 src/main.c                                     |    5 -
 33 files changed, 539 insertions(+), 1701 deletions(-)
---
diff --git a/README b/README
index e3051d3..5442273 100644
--- a/README
+++ b/README
@@ -68,20 +68,6 @@ installed prior to compiling the source code:
        distribution, but it should be something similar to libsoup-devel
        (Fedora) or libsoup2.4-dev (Debian/Ubuntu).
 
-   - Header files and base plugins for GStreamer. (optional)
-
-       The GStreamer header files should be available from your
-       GNU/Linux distribution as a "development" package.  The exact
-       package name varies by distribution, but it should be something
-       similar to gstreamer-devel (Fedora) or libgstreamer0.10-dev
-       (Debian/Ubuntu).  The base plugins package name should be
-       similar to gstreamer-plugins-base-devel (Fedora) or
-       libgstreamer-plugins-base0.10-dev (Debian/Ubuntu).
-
-       GNOME Video Arcade uses GStreamer to stream video game music
-       clips in the Properties window.  The music clips are streamed
-       from http://www.arcade-history.com.
-
    - Header files for libwnck version 2.91.6 (or higher). (optional)
 
        The libwnck header files should be available from your GNU/Linux
@@ -176,8 +162,8 @@ developer documentation while building GNOME Video Arcade.  Once
 installed, the documentation can be viewed through Devhelp.
 
 Several "with"/"without" options are available for optional libraries
-including D-Bus, GStreamer and libwnck.  See the previous section for
-details on what these libraries are used for.
+including D-Bus and libwnck.  See the previous section for details on
+what these libraries are used for.
 
 For a complete list of configure options, run:
 
diff --git a/TODO b/TODO
index 9c9f763..741160c 100644
--- a/TODO
+++ b/TODO
@@ -25,8 +25,7 @@ enhancement request at:
 
   I'm unsure of what the user interface should look like.  The simpler the
   better.  Perhaps just an image and a "Next" button.  Other features to
-  consider are zooming and a full-screen slideshow mode (might be neat in
-  combination with the streamed music).
+  consider are zooming and a full-screen slideshow mode.
 
   A GIO-based solution is preferred over adding more library dependencies,
   but that's not a hard requirement.
diff --git a/configure.ac b/configure.ac
index 02966a1..6725573 100644
--- a/configure.ac
+++ b/configure.ac
@@ -71,24 +71,6 @@ AC_SUBST(DEP_CPPFLAGS)
 GDS_MODULES="gsettings-desktop-schemas"
 PKG_CHECK_MODULES(GSETTINGS_DESKTOP_SCHEMAS, $GDS_MODULES)
 
-# --with-gstreamer=[yes|no]
-AC_ARG_WITH([gstreamer],
-        [AC_HELP_STRING([--with-gstreamer],
-        [use GStreamer to stream music [default=yes]])],
-        with_gstreamer="$withval", with_gstreamer="yes")
-if test "$with_gstreamer" = "yes"; then
-GSTREAMER_MODULES="gstreamer-plugins-base-0.10"
-PKG_CHECK_MODULES(GSTREAMER, $GSTREAMER_MODULES)
-AC_DEFINE_UNQUOTED(HAVE_GSTREAMER, 1,
-        [Define to 1 if you are using GStreamer])
-else
-GSTREAMER_CFLAGS=
-GSTREAMER_LIBS=
-fi
-AM_CONDITIONAL(HAVE_GSTREAMER, test $with_gstreamer = yes)
-AC_SUBST(GSTREAMER_CFLAGS)
-AC_SUBST(GSTREAMER_LIBS)
-
 # --with-wnck=[yes|no]
 AC_ARG_WITH([wnck],
         [AC_HELP_STRING([--with-wnck],
@@ -235,6 +217,5 @@ echo "    MAME Program    : $MAME_PROGRAM"
 echo "    Category File   : $with_category"
 echo "    History File    : $with_history"
 echo "    NPlayers File   : $with_nplayers"
-echo "    Use GStreamer   : $with_gstreamer"
 echo "    Use libwnck     : $with_wnck"
 echo
diff --git a/data/gnome-video-arcade.builder b/data/gnome-video-arcade.builder
index e012976..c4c6c63 100644
--- a/data/gnome-video-arcade.builder
+++ b/data/gnome-video-arcade.builder
@@ -652,549 +652,6 @@
       </object>
     </child>
   </object>
-  <object class="GtkImage" id="play-back-button-image">
-    <property name="visible">True</property>
-    <property name="can_focus">False</property>
-    <property name="stock">gtk-media-play</property>
-  </object>
-  <object class="GtkWindow" id="play-back-window">
-    <property name="can_focus">False</property>
-    <property name="title" translatable="yes">Recorded Games</property>
-    <property name="window_position">center-on-parent</property>
-    <property name="default_width">550</property>
-    <property name="default_height">250</property>
-    <property name="destroy_with_parent">True</property>
-    <property name="transient_for">main-window</property>
-    <signal name="delete-event" handler="gtk_widget_hide_on_delete" swapped="no"/>
-    <signal name="hide" handler="gva_play_back_window_hide_cb" swapped="no"/>
-    <child>
-      <object class="GtkVBox" id="play-back-vbox">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="border_width">12</property>
-        <property name="spacing">12</property>
-        <child>
-          <object class="GtkScrolledWindow" id="play-back-scrolled-window">
-            <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <property name="shadow_type">in</property>
-            <child>
-              <object class="GtkTreeView" id="play-back-tree-view">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="reorderable">True</property>
-                <property name="rules_hint">True</property>
-                <property name="show_expanders">False</property>
-                <signal name="row-activated" handler="gva_play_back_row_activated_cb" swapped="no"/>
-                <child internal-child="selection">
-                  <object class="GtkTreeSelection" id="treeview-selection2"/>
-                </child>
-              </object>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">True</property>
-            <property name="fill">True</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkHButtonBox" id="play-back-button-box">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="spacing">12</property>
-            <property name="layout_style">end</property>
-            <child>
-              <object class="GtkButton" id="play-back-close-button">
-                <property name="label">gtk-close</property>
-                <property name="use_action_appearance">False</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="receives_default">False</property>
-                <property name="tooltip_text" translatable="yes">Close this window</property>
-                <property name="use_stock">True</property>
-                <signal name="clicked" handler="gva_play_back_close_clicked_cb" object="play-back-window" 
swapped="yes"/>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkButton" id="play-back-delete-button">
-                <property name="label">gtk-delete</property>
-                <property name="use_action_appearance">False</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="receives_default">False</property>
-                <property name="tooltip_text" translatable="yes">Delete the selected game 
recordings</property>
-                <property name="use_stock">True</property>
-                <signal name="clicked" handler="gva_play_back_delete_clicked_cb" 
object="play-back-tree-view" swapped="yes"/>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkButton" id="play-back-button">
-                <property name="label" translatable="yes">Play _Back</property>
-                <property name="use_action_appearance">False</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="has_focus">True</property>
-                <property name="is_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="has_default">True</property>
-                <property name="receives_default">True</property>
-                <property name="tooltip_text" translatable="yes">Play back the selected game 
recording</property>
-                <property name="image">play-back-button-image</property>
-                <property name="use_underline">True</property>
-                <signal name="clicked" handler="gva_play_back_clicked_cb" swapped="no"/>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">2</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">1</property>
-          </packing>
-        </child>
-      </object>
-    </child>
-  </object>
-  <object class="GtkActionGroup" id="standard-actions">
-    <child>
-      <object class="GtkAction" id="about">
-        <property name="label" translatable="yes">_About</property>
-        <property name="tooltip" translatable="yes">Show information about the application</property>
-        <property name="stock_id">gtk-about</property>
-        <signal name="activate" handler="gva_action_about_cb" swapped="no"/>
-      </object>
-    </child>
-    <child>
-      <object class="GtkAction" id="contents">
-        <property name="label" translatable="yes">_Contents</property>
-        <property name="tooltip" translatable="yes">Open the help documentation</property>
-        <property name="stock_id">gtk-help</property>
-        <signal name="activate" handler="gva_action_contents_cb" swapped="no"/>
-      </object>
-    </child>
-    <child>
-      <object class="GtkAction" id="preferences">
-        <property name="label" translatable="yes">_Preferences</property>
-        <property name="tooltip" translatable="yes">Configure the application</property>
-        <property name="stock_id">gtk-preferences</property>
-        <signal name="activate" handler="gva_action_preferences_cb" swapped="no"/>
-      </object>
-    </child>
-    <child>
-      <object class="GtkAction" id="quit">
-        <property name="label" translatable="yes">_Quit</property>
-        <property name="tooltip" translatable="yes">Quit the application</property>
-        <property name="stock_id">gtk-quit</property>
-        <signal name="activate" handler="gva_action_quit_cb" swapped="no"/>
-      </object>
-    </child>
-    <child>
-      <object class="GtkAction" id="add-column-menu">
-        <property name="label" translatable="yes">_Add Column</property>
-      </object>
-    </child>
-    <child>
-      <object class="GtkAction" id="edit-menu">
-        <property name="label" translatable="yes">_Edit</property>
-      </object>
-    </child>
-    <child>
-      <object class="GtkAction" id="game-menu">
-        <property name="label" translatable="yes">_Game</property>
-      </object>
-    </child>
-    <child>
-      <object class="GtkAction" id="help-menu">
-        <property name="label" translatable="yes">_Help</property>
-      </object>
-    </child>
-    <child>
-      <object class="GtkAction" id="view-menu">
-        <property name="label" translatable="yes">_View</property>
-      </object>
-    </child>
-    <child>
-      <object class="GtkToggleAction" id="auto-play">
-        <property name="label" translatable="yes">Play music _automatically</property>
-        <property name="tooltip" translatable="yes">Automatically play a music clip from the selected 
game</property>
-      </object>
-    </child>
-    <child>
-      <object class="GtkToggleAction" id="auto-save">
-        <property name="label" translatable="yes">_Restore previous state when starting a game</property>
-      </object>
-    </child>
-    <child>
-      <object class="GtkToggleAction" id="full-screen">
-        <property name="label" translatable="yes">Start games in _fullscreen mode</property>
-      </object>
-    </child>
-  </object>
-  <object class="GtkWindow" id="preferences-window">
-    <property name="can_focus">False</property>
-    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | 
GDK_BUTTON_RELEASE_MASK</property>
-    <property name="title" translatable="yes">Preferences</property>
-    <property name="window_position">center-on-parent</property>
-    <property name="destroy_with_parent">True</property>
-    <property name="transient_for">main-window</property>
-    <signal name="delete-event" handler="gtk_widget_hide_on_delete" swapped="no"/>
-    <child>
-      <object class="GtkVBox" id="preferences-vbox">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-        <property name="border_width">12</property>
-        <property name="spacing">12</property>
-        <child>
-          <object class="GtkNotebook" id="preferences-notebook">
-            <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-            <child>
-              <object class="GtkVBox" id="preferences-general-tab-vbox">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="border_width">12</property>
-                <property name="spacing">12</property>
-                <child>
-                  <object class="GtkVBox" id="preferences-general-vbox">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="spacing">6</property>
-                    <child>
-                      <object class="GtkLabel" id="preferences-general-label">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">0</property>
-                        <property name="yalign">0</property>
-                        <property name="label" translatable="yes">&lt;b&gt;General&lt;/b&gt;</property>
-                        <property name="use_markup">True</property>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">True</property>
-                        <property name="position">0</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkAlignment" id="preferences-general-alignment">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="left_padding">12</property>
-                        <child>
-                          <object class="GtkVBox" id="preferences-general-inner-vbox">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="spacing">6</property>
-                            <child>
-                              <object class="GtkCheckButton" id="preferences-full-screen">
-                                <property name="related_action">full-screen</property>
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="receives_default">False</property>
-                                <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                                <property name="use_underline">True</property>
-                                <property name="xalign">0</property>
-                                <property name="draw_indicator">True</property>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">True</property>
-                                <property name="position">0</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkCheckButton" id="preferences-auto-save">
-                                <property name="related_action">auto-save</property>
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="receives_default">False</property>
-                                <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                                <property name="use_underline">True</property>
-                                <property name="xalign">0</property>
-                                <property name="draw_indicator">True</property>
-                              </object>
-                              <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
-                                <property name="position">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkAlignment" id="preferences-auto-save-note-alignment">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                                <property name="left_padding">24</property>
-                                <child>
-                                  <object class="GtkLabel" id="preferences-auto-save-info-label">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                                    <property name="xalign">0</property>
-                                    <property name="yalign">0</property>
-                                    <property name="label" 
translatable="yes">&lt;small&gt;&lt;i&gt;&lt;b&gt;Note:&lt;/b&gt; Setting this will not take effect until the 
second time the game is started. It does not apply to recording or playing back 
games.&lt;/i&gt;&lt;/small&gt;</property>
-                                    <property name="use_markup">True</property>
-                                    <property name="wrap">True</property>
-                                  </object>
-                                </child>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">2</property>
-                              </packing>
-                            </child>
-                          </object>
-                        </child>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="position">1</property>
-                      </packing>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkVBox" id="preferences-game-list-vbox">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="spacing">6</property>
-                    <child>
-                      <object class="GtkLabel" id="preferences-game-list-label">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">0</property>
-                        <property name="label" translatable="yes">&lt;b&gt;Game List&lt;/b&gt;</property>
-                        <property name="use_markup">True</property>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">True</property>
-                        <property name="position">0</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkAlignment" id="preferences-game-list-alignment">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="left_padding">12</property>
-                        <child>
-                          <object class="GtkVBox" id="preferences-game-list-inner-vbox">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="spacing">6</property>
-                            <child>
-                              <object class="GtkCheckButton" id="preferences-show-clones">
-                                <property name="related_action">show-clones</property>
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="receives_default">False</property>
-                                <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                                <property name="xalign">0</property>
-                                <property name="draw_indicator">True</property>
-                              </object>
-                              <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
-                                <property name="position">0</property>
-                              </packing>
-                            </child>
-                          </object>
-                        </child>
-                      </object>
-                      <packing>
-                        <property name="expand">True</property>
-                        <property name="fill">True</property>
-                        <property name="position">1</property>
-                      </packing>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-              </object>
-            </child>
-            <child type="tab">
-              <object class="GtkLabel" id="preferences-general-tab-label">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="label" translatable="yes">General</property>
-              </object>
-              <packing>
-                <property name="tab_fill">False</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkVBox" id="preferences-columns-tab-vbox">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="border_width">12</property>
-                <property name="spacing">6</property>
-                <child>
-                  <object class="GtkLabel" id="preferences-columns-label">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">&lt;b&gt;Columns&lt;/b&gt;</property>
-                    <property name="use_markup">True</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkAlignment" id="preferences-columns-alignment">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="left_padding">12</property>
-                    <child>
-                      <object class="GtkVBox" id="preferences-columns-inner-vbox">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="spacing">6</property>
-                        <child>
-                          <object class="GtkLabel" id="preferences-columns-instructions1">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="xalign">0</property>
-                            <property name="label" translatable="yes">Choose the order of information to 
appear in the game list.</property>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GvaColumnManager" id="preferences-column-manager">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="spacing">6</property>
-                            <property name="managed_view">main-tree-view</property>
-                          </object>
-                          <packing>
-                            <property name="expand">True</property>
-                            <property name="fill">True</property>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">True</property>
-                    <property name="fill">True</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="position">1</property>
-              </packing>
-            </child>
-            <child type="tab">
-              <object class="GtkLabel" id="preferences-columns-tab-label">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="label" translatable="yes">Columns</property>
-              </object>
-              <packing>
-                <property name="position">1</property>
-                <property name="tab_fill">False</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">True</property>
-            <property name="fill">True</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkHButtonBox" id="preferences-button-box">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-            <property name="spacing">12</property>
-            <property name="layout_style">end</property>
-            <child>
-              <object class="GtkButton" id="preferences-close-button">
-                <property name="label">gtk-close</property>
-                <property name="use_action_appearance">False</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="has_focus">True</property>
-                <property name="is_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="has_default">True</property>
-                <property name="receives_default">True</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="tooltip_text" translatable="yes">Close this window</property>
-                <property name="use_stock">True</property>
-                <signal name="clicked" handler="gva_preferences_close_clicked_cb" 
object="preferences-window" swapped="yes"/>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">1</property>
-          </packing>
-        </child>
-      </object>
-    </child>
-  </object>
   <object class="GtkWindow" id="properties-window">
     <property name="can_focus">False</property>
     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | 
GDK_BUTTON_RELEASE_MASK</property>
@@ -2088,122 +1545,589 @@ Manufacturer, Year</property>
             <property name="can_focus">False</property>
             <property name="spacing">12</property>
             <child>
-              <object class="GtkTable" id="properties-music-table">
+              <object class="GtkAlignment" id="properties-button-box-alignment">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="n_rows">2</property>
-                <property name="n_columns">2</property>
-                <property name="column_spacing">6</property>
+                <property name="yalign">1</property>
+                <property name="yscale">0</property>
                 <child>
-                  <object class="GtkAlignment" id="properties-music-alignment">
+                  <object class="GtkHButtonBox" id="properties-button-box">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
-                    <property name="yalign">1</property>
-                    <property name="yscale">0</property>
+                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                    <property name="layout_style">end</property>
                     <child>
-                      <object class="GvaMusicButton" id="properties-music-button">
+                      <object class="GtkButton" id="properties-close-button">
+                        <property name="label">gtk-close</property>
                         <property name="use_action_appearance">False</property>
-                        <property name="width_request">64</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
+                        <property name="can_default">True</property>
+                        <property name="has_default">True</property>
                         <property name="receives_default">True</property>
-                        <property name="tooltip_text" translatable="yes">Play a music clip</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                        <property name="tooltip_text" translatable="yes">Close this window</property>
+                        <property name="use_stock">True</property>
+                        <signal name="clicked" handler="gtk_widget_hide" object="properties-window" 
swapped="yes"/>
                       </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
                     </child>
                   </object>
-                  <packing>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options"/>
-                    <property name="y_options">GTK_FILL</property>
-                  </packing>
                 </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="pack_type">end</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="position">2</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+  <object class="GtkImage" id="play-back-button-image">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="stock">gtk-media-play</property>
+  </object>
+  <object class="GtkWindow" id="play-back-window">
+    <property name="can_focus">False</property>
+    <property name="title" translatable="yes">Recorded Games</property>
+    <property name="window_position">center-on-parent</property>
+    <property name="default_width">550</property>
+    <property name="default_height">250</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="transient_for">main-window</property>
+    <signal name="delete-event" handler="gtk_widget_hide_on_delete" swapped="no"/>
+    <signal name="hide" handler="gva_play_back_window_hide_cb" swapped="no"/>
+    <child>
+      <object class="GtkVBox" id="play-back-vbox">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="border_width">12</property>
+        <property name="spacing">12</property>
+        <child>
+          <object class="GtkScrolledWindow" id="play-back-scrolled-window">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="shadow_type">in</property>
+            <child>
+              <object class="GtkTreeView" id="play-back-tree-view">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="reorderable">True</property>
+                <property name="rules_hint">True</property>
+                <property name="show_expanders">False</property>
+                <signal name="row-activated" handler="gva_play_back_row_activated_cb" swapped="no"/>
+                <child internal-child="selection">
+                  <object class="GtkTreeSelection" id="treeview-selection2"/>
+                </child>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkHButtonBox" id="play-back-button-box">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="spacing">12</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="play-back-close-button">
+                <property name="label">gtk-close</property>
+                <property name="use_action_appearance">False</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">False</property>
+                <property name="tooltip_text" translatable="yes">Close this window</property>
+                <property name="use_stock">True</property>
+                <signal name="clicked" handler="gva_play_back_close_clicked_cb" object="play-back-window" 
swapped="yes"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="play-back-delete-button">
+                <property name="label">gtk-delete</property>
+                <property name="use_action_appearance">False</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">False</property>
+                <property name="tooltip_text" translatable="yes">Delete the selected game 
recordings</property>
+                <property name="use_stock">True</property>
+                <signal name="clicked" handler="gva_play_back_delete_clicked_cb" 
object="play-back-tree-view" swapped="yes"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="play-back-button">
+                <property name="label" translatable="yes">Play _Back</property>
+                <property name="use_action_appearance">False</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="has_focus">True</property>
+                <property name="is_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="has_default">True</property>
+                <property name="receives_default">True</property>
+                <property name="tooltip_text" translatable="yes">Play back the selected game 
recording</property>
+                <property name="image">play-back-button-image</property>
+                <property name="use_underline">True</property>
+                <signal name="clicked" handler="gva_play_back_clicked_cb" swapped="no"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+  <object class="GtkActionGroup" id="standard-actions">
+    <child>
+      <object class="GtkAction" id="about">
+        <property name="label" translatable="yes">_About</property>
+        <property name="tooltip" translatable="yes">Show information about the application</property>
+        <property name="stock_id">gtk-about</property>
+        <signal name="activate" handler="gva_action_about_cb" swapped="no"/>
+      </object>
+    </child>
+    <child>
+      <object class="GtkAction" id="contents">
+        <property name="label" translatable="yes">_Contents</property>
+        <property name="tooltip" translatable="yes">Open the help documentation</property>
+        <property name="stock_id">gtk-help</property>
+        <signal name="activate" handler="gva_action_contents_cb" swapped="no"/>
+      </object>
+    </child>
+    <child>
+      <object class="GtkAction" id="preferences">
+        <property name="label" translatable="yes">_Preferences</property>
+        <property name="tooltip" translatable="yes">Configure the application</property>
+        <property name="stock_id">gtk-preferences</property>
+        <signal name="activate" handler="gva_action_preferences_cb" swapped="no"/>
+      </object>
+    </child>
+    <child>
+      <object class="GtkAction" id="quit">
+        <property name="label" translatable="yes">_Quit</property>
+        <property name="tooltip" translatable="yes">Quit the application</property>
+        <property name="stock_id">gtk-quit</property>
+        <signal name="activate" handler="gva_action_quit_cb" swapped="no"/>
+      </object>
+    </child>
+    <child>
+      <object class="GtkAction" id="add-column-menu">
+        <property name="label" translatable="yes">_Add Column</property>
+      </object>
+    </child>
+    <child>
+      <object class="GtkAction" id="edit-menu">
+        <property name="label" translatable="yes">_Edit</property>
+      </object>
+    </child>
+    <child>
+      <object class="GtkAction" id="game-menu">
+        <property name="label" translatable="yes">_Game</property>
+      </object>
+    </child>
+    <child>
+      <object class="GtkAction" id="help-menu">
+        <property name="label" translatable="yes">_Help</property>
+      </object>
+    </child>
+    <child>
+      <object class="GtkAction" id="view-menu">
+        <property name="label" translatable="yes">_View</property>
+      </object>
+    </child>
+    <child>
+      <object class="GtkToggleAction" id="auto-save">
+        <property name="label" translatable="yes">_Restore previous state when starting a game</property>
+      </object>
+    </child>
+    <child>
+      <object class="GtkToggleAction" id="full-screen">
+        <property name="label" translatable="yes">Start games in _fullscreen mode</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkWindow" id="preferences-window">
+    <property name="can_focus">False</property>
+    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | 
GDK_BUTTON_RELEASE_MASK</property>
+    <property name="title" translatable="yes">Preferences</property>
+    <property name="window_position">center-on-parent</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="transient_for">main-window</property>
+    <signal name="delete-event" handler="gtk_widget_hide_on_delete" swapped="no"/>
+    <child>
+      <object class="GtkVBox" id="preferences-vbox">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+        <property name="border_width">12</property>
+        <property name="spacing">12</property>
+        <child>
+          <object class="GtkNotebook" id="preferences-notebook">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+            <child>
+              <object class="GtkVBox" id="preferences-general-tab-vbox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="border_width">12</property>
+                <property name="spacing">12</property>
                 <child>
-                  <object class="GtkLabel" id="properties-music-status">
+                  <object class="GtkVBox" id="preferences-general-vbox">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">&lt;small&gt;&lt;/small&gt;</property>
-                    <property name="use_markup">True</property>
-                    <property name="ellipsize">end</property>
+                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                    <property name="spacing">6</property>
+                    <child>
+                      <object class="GtkLabel" id="preferences-general-label">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0</property>
+                        <property name="label" translatable="yes">&lt;b&gt;General&lt;/b&gt;</property>
+                        <property name="use_markup">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkAlignment" id="preferences-general-alignment">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                        <property name="left_padding">12</property>
+                        <child>
+                          <object class="GtkVBox" id="preferences-general-inner-vbox">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <object class="GtkCheckButton" id="preferences-full-screen">
+                                <property name="related_action">full-screen</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                <property name="use_underline">True</property>
+                                <property name="xalign">0</property>
+                                <property name="draw_indicator">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkCheckButton" id="preferences-auto-save">
+                                <property name="related_action">auto-save</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                <property name="use_underline">True</property>
+                                <property name="xalign">0</property>
+                                <property name="draw_indicator">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkAlignment" id="preferences-auto-save-note-alignment">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                <property name="left_padding">24</property>
+                                <child>
+                                  <object class="GtkLabel" id="preferences-auto-save-info-label">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                    <property name="xalign">0</property>
+                                    <property name="yalign">0</property>
+                                    <property name="label" 
translatable="yes">&lt;small&gt;&lt;i&gt;&lt;b&gt;Note:&lt;/b&gt; Setting this will not take effect until the 
second time the game is started. It does not apply to recording or playing back 
games.&lt;/i&gt;&lt;/small&gt;</property>
+                                    <property name="use_markup">True</property>
+                                    <property name="wrap">True</property>
+                                  </object>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">2</property>
+                              </packing>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
                   </object>
                   <packing>
-                    <property name="left_attach">1</property>
-                    <property name="right_attach">2</property>
-                    <property name="y_options">GTK_FILL</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkCheckButton" id="properties-music-auto-play">
-                    <property name="related_action">auto-play</property>
+                  <object class="GtkVBox" id="preferences-game-list-vbox">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">False</property>
-                    <property name="use_underline">True</property>
-                    <property name="xalign">0</property>
-                    <property name="draw_indicator">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                    <property name="spacing">6</property>
+                    <child>
+                      <object class="GtkLabel" id="preferences-game-list-label">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">&lt;b&gt;Game List&lt;/b&gt;</property>
+                        <property name="use_markup">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkAlignment" id="preferences-game-list-alignment">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                        <property name="left_padding">12</property>
+                        <child>
+                          <object class="GtkVBox" id="preferences-game-list-inner-vbox">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <object class="GtkCheckButton" id="preferences-show-clones">
+                                <property name="related_action">show-clones</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                <property name="xalign">0</property>
+                                <property name="draw_indicator">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
                   </object>
                   <packing>
-                    <property name="left_attach">1</property>
-                    <property name="right_attach">2</property>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="y_options">GTK_FILL</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">1</property>
                   </packing>
                 </child>
               </object>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="preferences-general-tab-label">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="label" translatable="yes">General</property>
+              </object>
               <packing>
-                <property name="expand">True</property>
-                <property name="fill">True</property>
-                <property name="position">0</property>
+                <property name="tab_fill">False</property>
               </packing>
             </child>
             <child>
-              <object class="GtkAlignment" id="properties-button-box-alignment">
+              <object class="GtkVBox" id="preferences-columns-tab-vbox">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="yalign">1</property>
-                <property name="yscale">0</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="border_width">12</property>
+                <property name="spacing">6</property>
                 <child>
-                  <object class="GtkHButtonBox" id="properties-button-box">
+                  <object class="GtkLabel" id="preferences-columns-label">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="layout_style">end</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">&lt;b&gt;Columns&lt;/b&gt;</property>
+                    <property name="use_markup">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkAlignment" id="preferences-columns-alignment">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                    <property name="left_padding">12</property>
                     <child>
-                      <object class="GtkButton" id="properties-close-button">
-                        <property name="label">gtk-close</property>
-                        <property name="use_action_appearance">False</property>
+                      <object class="GtkVBox" id="preferences-columns-inner-vbox">
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="can_default">True</property>
-                        <property name="has_default">True</property>
-                        <property name="receives_default">True</property>
+                        <property name="can_focus">False</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="tooltip_text" translatable="yes">Close this window</property>
-                        <property name="use_stock">True</property>
-                        <signal name="clicked" handler="gtk_widget_hide" object="properties-window" 
swapped="yes"/>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="GtkLabel" id="preferences-columns-instructions1">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Choose the order of information to 
appear in the game list.</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GvaColumnManager" id="preferences-column-manager">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                            <property name="spacing">6</property>
+                            <property name="managed_view">main-tree-view</property>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
                       </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="position">0</property>
-                      </packing>
                     </child>
                   </object>
+                  <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
                 </child>
               </object>
               <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="preferences-columns-tab-label">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="label" translatable="yes">Columns</property>
+              </object>
+              <packing>
+                <property name="position">1</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkHButtonBox" id="preferences-button-box">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+            <property name="spacing">12</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="preferences-close-button">
+                <property name="label">gtk-close</property>
+                <property name="use_action_appearance">False</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="has_focus">True</property>
+                <property name="is_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="has_default">True</property>
+                <property name="receives_default">True</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="tooltip_text" translatable="yes">Close this window</property>
+                <property name="use_stock">True</property>
+                <signal name="clicked" handler="gva_preferences_close_clicked_cb" 
object="preferences-window" swapped="yes"/>
+              </object>
+              <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
-                <property name="pack_type">end</property>
-                <property name="position">1</property>
+                <property name="position">0</property>
               </packing>
             </child>
           </object>
           <packing>
             <property name="expand">False</property>
-            <property name="fill">False</property>
-            <property name="position">2</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
           </packing>
         </child>
       </object>
diff --git a/data/gnome-video-arcade.convert b/data/gnome-video-arcade.convert
index bc152ec..02541be 100644
--- a/data/gnome-video-arcade.convert
+++ b/data/gnome-video-arcade.convert
@@ -1,6 +1,5 @@
 [org.gnome.VideoArcade]
 all-columns = /apps/gnome-video-arcade/all-columns
-auto-play = /apps/gnome-video-arcade/auto-play
 auto-save = /apps/gnome-video-arcade/auto-save
 columns = /apps/gnome-video-arcade/columns
 favorites = /apps/gnome-video-arcade/favorites
diff --git a/data/org.gnome.VideoArcade.gschema.xml.in b/data/org.gnome.VideoArcade.gschema.xml.in
index 62ff698..e0b9c96 100644
--- a/data/org.gnome.VideoArcade.gschema.xml.in
+++ b/data/org.gnome.VideoArcade.gschema.xml.in
@@ -9,17 +9,6 @@
       to only display a subset of them (see "columns").</_description>
     </key>
 
-    <key name="auto-play" type="b">
-      <default>false</default>
-      <_summary>Auto-play music clip</_summary>
-      <_description>Enable automatic playing of in-game music clips.
-      If true, and a music clip is available for the selected game,
-      the clip will automatically begin playing when the user opens the
-      Properties window or when the user selects a different game while
-      the Properties window is visible.  Music clips are streamed from
-      http://www.arcade-history.com/.</_description>
-    </key>
-
     <key name="auto-save" type="b">
       <default>false</default>
       <_summary>Save and restore state</_summary>
diff --git a/docs/reference/Makefile.am b/docs/reference/Makefile.am
index b3b7802..7c93fa4 100644
--- a/docs/reference/Makefile.am
+++ b/docs/reference/Makefile.am
@@ -76,7 +76,6 @@ INCLUDES=                                                     \
        -I$(top_builddir)/src                                   \
        $(GLIB_CFLAGS)                                          \
        $(GTK_CFLAGS)                                           \
-       $(GSTREAMER_CFLAGS)                                     \
        $(SOUP_CFLAGS)                                          \
        $(SQLITE_CFLAGS)                                        \
        $(WNCK_CFLAGS)
@@ -96,7 +95,6 @@ GTKDOC_LIBS=                                                  \
        $(top_builddir)/src/gva-main.o                          \
        $(top_builddir)/src/gva-mame-common.o                   \
        $(top_builddir)/src/gva-mame-process.o                  \
-       $(top_builddir)/src/gva-music-button.o                  \
        $(top_builddir)/src/gva-mute-button.o                   \
        $(top_builddir)/src/gva-nplayers.o                      \
        $(top_builddir)/src/gva-play-back.o                     \
@@ -113,7 +111,6 @@ GTKDOC_LIBS=                                                        \
        $(GLIB_LIBS)                                            \
        $(GTK_LIBS)                                             \
        $(SOUP_LIBS)                                            \
-       $(GSTREAMER_LIBS)                                       \
        $(SQLITE_LIBS)                                          \
        $(WNCK_LIBS)
 
diff --git a/docs/reference/gnome-video-arcade-docs.sgml b/docs/reference/gnome-video-arcade-docs.sgml
index 3bd7d71..0910a36 100644
--- a/docs/reference/gnome-video-arcade-docs.sgml
+++ b/docs/reference/gnome-video-arcade-docs.sgml
@@ -43,7 +43,6 @@
     <xi:include href="xml/gva-game-store.xml"/>
     <xi:include href="xml/gva-input-file.xml"/>
     <xi:include href="xml/gva-mame-process.xml"/>
-    <xi:include href="xml/gva-music-button.xml"/>
     <xi:include href="xml/gva-mute-button.xml"/>
     <xi:include href="xml/gva-process.xml"/>
     <xi:include href="xml/gva-screen-saver.xml"/>
diff --git a/docs/reference/gnome-video-arcade-sections.txt b/docs/reference/gnome-video-arcade-sections.txt
index dd3ee97..66cd511 100644
--- a/docs/reference/gnome-video-arcade-sections.txt
+++ b/docs/reference/gnome-video-arcade-sections.txt
@@ -193,7 +193,6 @@ gva_main_window_destroy_cb
 
 <SECTION>
 <FILE>gva-mame</FILE>
-GvaMameCallback
 gva_mame_get_path_sep
 gva_mame_get_version
 gva_mame_get_version_int
@@ -225,9 +224,6 @@ gva_mame_supports_window
 
 <SECTION>
 <FILE>gva-mame-common</FILE>
-GvaMameAsyncData
-gva_mame_async_data_new
-gva_mame_async_data_free
 gva_mame_command
 </SECTION>
 
@@ -250,29 +246,6 @@ gva_mame_process_get_type
 </SECTION>
 
 <SECTION>
-<FILE>gva-music-button</FILE>
-<TITLE>GvaMusicButton</TITLE>
-GvaMusicButton
-gva_music_button_new
-gva_music_button_play
-gva_music_button_pause
-gva_music_button_get_game
-gva_music_button_set_game
-gva_music_button_get_status
-<SUBSECTION Standard>
-GVA_MUSIC_BUTTON
-GVA_IS_MUSIC_BUTTON
-GVA_TYPE_MUSIC_BUTTON
-GVA_MUSIC_BUTTON_CLASS
-GVA_IS_MUSIC_BUTTON_CLASS
-GVA_MUSIC_BUTTON_GET_CLASS
-GvaMusicButtonClass
-<SUBSECTION Private>
-GvaMusicButtonPrivate
-gva_music_button_get_type
-</SECTION>
-
-<SECTION>
 <FILE>gva-mute-button</FILE>
 <TITLE>GvaMuteButton</TITLE>
 GvaMuteButton
@@ -313,8 +286,6 @@ gva_play_back_window_hide_cb
 <SECTION>
 <FILE>gva-preferences</FILE>
 gva_preferences_init
-gva_preferences_get_auto_play
-gva_preferences_set_auto_play
 gva_preferences_get_auto_save
 gva_preferences_set_auto_save
 gva_preferences_get_full_screen
@@ -422,7 +393,6 @@ gva_time_get_type
 <SECTION>
 <FILE>gva-ui</FILE>
 GVA_ACTION_ABOUT
-GVA_ACTION_AUTO_PLAY
 GVA_ACTION_AUTO_SAVE
 GVA_ACTION_CONTENTS
 GVA_ACTION_FULL_SCREEN
@@ -492,10 +462,6 @@ GVA_WIDGET_PROPERTIES_HISTORY_TEXT_VIEW
 GVA_WIDGET_PROPERTIES_IMPERFECT_COLOR_LABEL
 GVA_WIDGET_PROPERTIES_IMPERFECT_GRAPHIC_LABEL
 GVA_WIDGET_PROPERTIES_IMPERFECT_SOUND_LABEL
-GVA_WIDGET_PROPERTIES_MUSIC_AUTO_PLAY
-GVA_WIDGET_PROPERTIES_MUSIC_BUTTON
-GVA_WIDGET_PROPERTIES_MUSIC_STATUS
-GVA_WIDGET_PROPERTIES_MUSIC_TABLE
 GVA_WIDGET_PROPERTIES_NOTEBOOK
 GVA_WIDGET_PROPERTIES_ORIGINAL_LINKS
 GVA_WIDGET_PROPERTIES_ORIGINAL_VBOX
diff --git a/docs/reference/gnome-video-arcade.types b/docs/reference/gnome-video-arcade.types
index ea3c307..0c882ea 100644
--- a/docs/reference/gnome-video-arcade.types
+++ b/docs/reference/gnome-video-arcade.types
@@ -3,7 +3,6 @@
 #include <gva-game-store.h>
 #include <gva-input-file.h>
 #include <gva-mame-process.h>
-#include <gva-music-button.h>
 #include <gva-mute-button.h>
 #include <gva-process.h>
 #include <gva-screen-saver.h>
@@ -14,7 +13,6 @@ gva_column_manager_get_type
 gva_game_store_get_type
 gva_input_file_get_type
 gva_mame_process_get_type
-gva_music_button_get_type
 gva_mute_button_get_type
 gva_process_get_type
 gva_screen_saver_get_type
diff --git a/docs/reference/tmpl/gva-mame-common.sgml b/docs/reference/tmpl/gva-mame-common.sgml
index 2f842b1..794f88d 100644
--- a/docs/reference/tmpl/gva-mame-common.sgml
+++ b/docs/reference/tmpl/gva-mame-common.sgml
@@ -20,32 +20,6 @@
 <!-- ##### SECTION Image ##### -->
 
 
-<!-- ##### STRUCT GvaMameAsyncData ##### -->
-<para>
-
-</para>
-
- callback: 
- user_data: 
-
-<!-- ##### FUNCTION gva_mame_async_data_new ##### -->
-<para>
-
-</para>
-
- callback: 
- user_data: 
- Returns: 
-
-
-<!-- ##### FUNCTION gva_mame_async_data_free ##### -->
-<para>
-
-</para>
-
- data: 
-
-
 <!-- ##### FUNCTION gva_mame_command ##### -->
 <para>
 
diff --git a/docs/reference/tmpl/gva-mame.sgml b/docs/reference/tmpl/gva-mame.sgml
index 98d71b3..b9b7c71 100644
--- a/docs/reference/tmpl/gva-mame.sgml
+++ b/docs/reference/tmpl/gva-mame.sgml
@@ -20,16 +20,6 @@
 <!-- ##### SECTION Image ##### -->
 
 
-<!-- ##### USER_FUNCTION GvaMameCallback ##### -->
-<para>
-
-</para>
-
- name: 
- game_data: 
- user_data: 
-
-
 <!-- ##### FUNCTION gva_mame_get_path_sep ##### -->
 <para>
 
diff --git a/docs/reference/tmpl/gva-preferences.sgml b/docs/reference/tmpl/gva-preferences.sgml
index 624482b..0688452 100644
--- a/docs/reference/tmpl/gva-preferences.sgml
+++ b/docs/reference/tmpl/gva-preferences.sgml
@@ -28,23 +28,6 @@
 @void: 
 
 
-<!-- ##### FUNCTION gva_preferences_get_auto_play ##### -->
-<para>
-
-</para>
-
- void: 
- Returns: 
-
-
-<!-- ##### FUNCTION gva_preferences_set_auto_play ##### -->
-<para>
-
-</para>
-
- auto_play: 
-
-
 <!-- ##### FUNCTION gva_preferences_get_auto_save ##### -->
 <para>
 
diff --git a/docs/reference/tmpl/gva-ui.sgml b/docs/reference/tmpl/gva-ui.sgml
index d4862ce..df25092 100644
--- a/docs/reference/tmpl/gva-ui.sgml
+++ b/docs/reference/tmpl/gva-ui.sgml
@@ -27,13 +27,6 @@
 
 
 
-<!-- ##### MACRO GVA_ACTION_AUTO_PLAY ##### -->
-<para>
-
-</para>
-
-
-
 <!-- ##### MACRO GVA_ACTION_AUTO_SAVE ##### -->
 <para>
 
diff --git a/docs/reference/tmpl/gva-util.sgml b/docs/reference/tmpl/gva-util.sgml
index 822a791..4953e31 100644
--- a/docs/reference/tmpl/gva-util.sgml
+++ b/docs/reference/tmpl/gva-util.sgml
@@ -57,7 +57,6 @@
 @GVA_DEBUG_SQL: 
 @GVA_DEBUG_IO: 
 @GVA_DEBUG_INP: 
- GVA_DEBUG_GST: 
 @GVA_DEBUG_HTTP: 
 
 <!-- ##### FUNCTION gva_get_last_version ##### -->
diff --git a/maint/Makefile.am b/maint/Makefile.am
index 55113c1..0601cb6 100644
--- a/maint/Makefile.am
+++ b/maint/Makefile.am
@@ -14,18 +14,17 @@ gladegvadir = `$(PKG_CONFIG) --variable=moduledir gladeui-2.0`
 libgladegva_la_CPPFLAGS = $(DEP_CPPFLAGS)
 
 libgladegva_la_CFLAGS = \
-       @GLIB_CFLAGS@ @GTK_CFLAGS@ @GSTREAMER_CFLAGS@ @SOUP_CFLAGS@
+       @GLIB_CFLAGS@ @GTK_CFLAGS@ @SOUP_CFLAGS@
 
 libgladegva_la_SOURCES = \
        $(top_srcdir)/src/gva-column-manager.c \
-       $(top_srcdir)/src/gva-music-button.c \
        $(top_srcdir)/src/gva-mute-button.c
 
 libgladegva_la_LDFLAGS = \
        -module -avoid-version
 
 libgladegva_la_LIBADD = \
-       @GLIB_LIBS@ @GTK_LIBS@ @GSTREAMER_LIBS@ @SOUP_LIBS@
+       @GLIB_LIBS@ @GTK_LIBS@ @SOUP_LIBS@
 
 EXTRA_DIST = \
        $(gladecatalog_DATA) \
diff --git a/maint/gva.xml b/maint/gva.xml
index 5b2114d..15706d6 100644
--- a/maint/gva.xml
+++ b/maint/gva.xml
@@ -2,13 +2,11 @@
 
   <glade-widget-classes>
     <glade-widget-class name="GvaColumnManager" generic-name="column-manager" title="Column Manager"/>
-    <glade-widget-class name="GvaMusicButton" generic-name="music-button" title="Music Button"/>
     <glade-widget-class name="GvaMuteButton" generic-name="mute-button" title="Mute Button"/>
   </glade-widget-classes>
 
   <glade-widget-group name="gva-widgets" title="GNOME Video Arcade">
     <glade-widget-class-ref name="GvaColumnManager"/>
-    <glade-widget-class-ref name="GvaMusicButton"/>
     <glade-widget-class-ref name="GvaMuteButton"/>
   </glade-widget-group>
 
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 8c03930..a7730f5 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -13,7 +13,6 @@ src/gva-mame-common.c
 src/gva-mame-process.c
 src/gva-mame-sdlmame.c
 src/gva-mame-xmame.c
-src/gva-music-button.c
 src/gva-mute-button.c
 src/gva-nplayers.c
 src/gva-play-back.c
diff --git a/src/Makefile.am b/src/Makefile.am
index e283e2c..b6182ec 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -4,7 +4,7 @@ bin_PROGRAMS = gnome-video-arcade
 
 AM_CFLAGS = \
        -Wall \
-       @GLIB_CFLAGS@ @GTK_CFLAGS@ @GSTREAMER_CFLAGS@ \
+       @GLIB_CFLAGS@ @GTK_CFLAGS@ \
        @SOUP_CFLAGS@ @SQLITE_CFLAGS@ @WNCK_CFLAGS@
 
 AM_CPPFLAGS = \
@@ -47,8 +47,6 @@ gnome_video_arcade_SOURCES = \
        gva-mame-process.c              \
        gva-mame-process.h              \
        gva-mame.h                      \
-       gva-music-button.c              \
-       gva-music-button.h              \
        gva-mute-button.c               \
        gva-mute-button.h               \
        gva-nplayers.c                  \
@@ -81,7 +79,7 @@ EXTRA_gnome_video_arcade_SOURCES = \
 
 gnome_video_arcade_LDADD = \
        @GLIB_LIBS@ @GTK_LIBS@ \
-       @GSTREAMER_LIBS@ @MAME_BACKEND@ \
+       @MAME_BACKEND@ \
        @SOUP_LIBS@ @SQLITE_LIBS@ @WNCK_LIBS@
 
 gnome_video_arcade_DEPENDENCIES = \
diff --git a/src/gva-common.h b/src/gva-common.h
index 7555b27..967b70f 100644
--- a/src/gva-common.h
+++ b/src/gva-common.h
@@ -34,15 +34,10 @@
 #include <glib/gi18n.h>
 #include <glib/gstdio.h>
 
-#if HAVE_GSTREAMER
-#include <gst/gst.h>
-#endif
-
 #include <sqlite3.h>
 #include <libsoup/soup.h>
 
 #define GVA_SETTING_ALL_COLUMNS                 "all-columns"
-#define GVA_SETTING_AUTO_PLAY                   "auto-play"
 #define GVA_SETTING_AUTO_SAVE                   "auto-save"
 #define GVA_SETTING_COLUMNS                     "columns"
 #define GVA_SETTING_FAVORITES                   "favorites"
diff --git a/src/gva-mame-common.c b/src/gva-mame-common.c
index 5b9d992..e0f2b83 100644
--- a/src/gva-mame-common.c
+++ b/src/gva-mame-common.c
@@ -19,6 +19,7 @@
 #include "gva-mame-common.h"
 
 #include <errno.h>
+#include <stdlib.h>
 #include <string.h>
 #include <sys/wait.h>
 
@@ -38,41 +39,6 @@
  *****************************************************************************/
 
 /**
- * gva_mame_async_data_new:
- * @callback: callback function
- * @user_data: user data to pass to the callback function
- *
- * Creates a new #GvaMameAsyncData structure and populates it with @callback
- * and @user_data.  Call gva_mame_async_data_free() to free it.
- *
- * Returns: a new #GvaMameAsyncData
- **/
-GvaMameAsyncData *
-gva_mame_async_data_new (GvaMameCallback callback,
-                         gpointer user_data)
-{
-        GvaMameAsyncData *data;
-
-        data = g_slice_new (GvaMameAsyncData);
-        data->callback = callback;
-        data->user_data = user_data;
-
-        return data;
-}
-
-/**
- * gva_mame_async_data_free:
- * @data: a #GvaMameAsyncData
- *
- * Frees @data.
- **/
-void
-gva_mame_async_data_free (GvaMameAsyncData *data)
-{
-        g_slice_free (GvaMameAsyncData, data);
-}
-
-/**
  * gva_mame_command:
  * @arguments: command line arguments
  * @stdout_lines: return location for stdout lines, or %NULL
diff --git a/src/gva-mame-common.h b/src/gva-mame-common.h
index 3e158ed..92a2013 100644
--- a/src/gva-mame-common.h
+++ b/src/gva-mame-common.h
@@ -31,26 +31,6 @@
 
 G_BEGIN_DECLS
 
-typedef struct _GvaMameAsyncData GvaMameAsyncData;
-
-/**
- * GvaMameAsyncData:
- * @callback: callback function
- * @user_data: user data to pass to the callback function
- *
- * This structure is used to pass callback information to asynchronous
- * operations.
- **/
-struct _GvaMameAsyncData
-{
-        GvaMameCallback callback;
-        gpointer user_data;
-};
-
-GvaMameAsyncData * gva_mame_async_data_new      (GvaMameCallback callback,
-                                                 gpointer user_data);
-void               gva_mame_async_data_free     (GvaMameAsyncData *data);
-
 gint               gva_mame_command             (const gchar *arguments,
                                                  gchar ***stdout_lines,
                                                  gchar ***stderr_lines,
diff --git a/src/gva-mame.h b/src/gva-mame.h
index adeb051..c264f0b 100644
--- a/src/gva-mame.h
+++ b/src/gva-mame.h
@@ -34,19 +34,6 @@
 
 G_BEGIN_DECLS
 
-/**
- * GvaMameCallback:
- * @name: a unique identifier, usually the game name
- * @game_data: data for @name
- * @user_data: user-provided data
- *
- * Specifies the type of function for passing results of an asynchronous
- * operation to the user.
- **/
-typedef void    (*GvaMameCallback)              (const gchar *name,
-                                                 const gchar *game_data,
-                                                 gpointer user_data);
-
 const gchar *   gva_mame_get_path_sep           (void);
 gchar *         gva_mame_get_version            (GError **error);
 guint           gva_mame_get_version_int        (void);
diff --git a/src/gva-preferences.c b/src/gva-preferences.c
index a0d134e..3b11d4b 100644
--- a/src/gva-preferences.c
+++ b/src/gva-preferences.c
@@ -38,16 +38,6 @@ gva_preferences_init (void)
 
         settings = gva_get_settings ();
 
-        /* Auto Play */
-
-        /* This actually appears in the Properties window,
-         * but it's still a preference so we manage it here. */
-
-        g_settings_bind (
-                settings, GVA_SETTING_AUTO_PLAY,
-                GVA_ACTION_AUTO_PLAY, "active",
-                G_SETTINGS_BIND_DEFAULT);
-
         /* Auto Save */
 
         gtk_action_set_sensitive (
@@ -82,47 +72,6 @@ gva_preferences_init (void)
 }
 
 /**
- * gva_preferences_get_auto_play:
- *
- * Returns the user's preference for whether to automatically
- * play a music clip of the selected game when the user opens
- * the Properties window or when the user selects a different
- * game while the Properties window is visible.
- *
- * Returns: %TRUE to automatically play music clips
- **/
-gboolean
-gva_preferences_get_auto_play (void)
-{
-        GtkToggleAction *toggle_action;
-
-        toggle_action = GTK_TOGGLE_ACTION (GVA_ACTION_AUTO_PLAY);
-
-        return gtk_toggle_action_get_active (toggle_action);
-}
-
-/**
- * gva_preferences_set_auto_play:
- * @auto_play: the user's preference
- *
- * Accepts the user's preference for whether to automatically
- * play a music clip of the selected game when the user opens
- * the Properties window or when the user selects a different
- * game while the Properties window is visible.
- *
- * The preference is stored in GSettings key <filename>auto-play</filename>.
- **/
-void
-gva_preferences_set_auto_play (gboolean auto_play)
-{
-        GtkToggleAction *toggle_action;
-
-        toggle_action = GTK_TOGGLE_ACTION (GVA_ACTION_AUTO_PLAY);
-
-        gtk_toggle_action_set_active (toggle_action, auto_play);
-}
-
-/**
  * gva_preferences_get_auto_save:
  *
  * Returns the user's preference for whether to restore the emulated
diff --git a/src/gva-preferences.h b/src/gva-preferences.h
index 849e70b..4d703d8 100644
--- a/src/gva-preferences.h
+++ b/src/gva-preferences.h
@@ -31,8 +31,6 @@
 G_BEGIN_DECLS
 
 void           gva_preferences_init             (void);
-gboolean       gva_preferences_get_auto_play    (void);
-void           gva_preferences_set_auto_play    (gboolean auto_play);
 gboolean       gva_preferences_get_auto_save    (void);
 void           gva_preferences_set_auto_save    (gboolean auto_save);
 gboolean       gva_preferences_get_full_screen  (void);
diff --git a/src/gva-properties.c b/src/gva-properties.c
index a9b3252..965141a 100644
--- a/src/gva-properties.c
+++ b/src/gva-properties.c
@@ -25,7 +25,6 @@
 #include "gva-error.h"
 #include "gva-game-store.h"
 #include "gva-history.h"
-#include "gva-music-button.h"
 #include "gva-preferences.h"
 #include "gva-tree-view.h"
 #include "gva-ui.h"
@@ -471,19 +470,6 @@ properties_update_history (GtkTreeModel *model,
 }
 
 static void
-properties_update_music (const gchar *name)
-{
-        GvaMusicButton *music_button;
-
-        music_button = GVA_MUSIC_BUTTON (GVA_WIDGET_PROPERTIES_MUSIC_BUTTON);
-        gva_music_button_set_game (music_button, name);
-
-        if (gtk_widget_get_visible (GVA_WIDGET_PROPERTIES_WINDOW)
-                && gva_preferences_get_auto_play ())
-                gva_music_button_play (music_button);
-}
-
-static void
 properties_update_sound (const gchar *name)
 {
         GtkWidget *label;
@@ -735,25 +721,6 @@ properties_selection_changed_cb (GtkTreeSelection *selection)
                 properties_update_timeout_cb, NULL);
 }
 
-static void
-properties_notify_music_status_cb (GvaMusicButton *music_button)
-{
-        GtkWidget *label;
-        const gchar *status;
-        gchar *markup;
-
-        label = GVA_WIDGET_PROPERTIES_MUSIC_STATUS;
-        status = gva_music_button_get_status (music_button);
-
-        /* Use whitespace to keep the widget height stable. */
-        if (status == NULL)
-                status = " ";
-
-        markup = g_markup_printf_escaped ("<small>%s</small>", status);
-        gtk_label_set_markup (GTK_LABEL (label), markup);
-        g_free (markup);
-}
-
 /**
  * gva_properties_init:
  *
@@ -790,10 +757,6 @@ gva_properties_init (void)
                 gtk_tree_view_get_selection (view), "changed",
                 G_CALLBACK (properties_selection_changed_cb), NULL);
 
-        g_signal_connect (
-                GVA_WIDGET_PROPERTIES_MUSIC_BUTTON, "notify::status",
-                G_CALLBACK (properties_notify_music_status_cb), NULL);
-
         gtk_window_resize (
                 GTK_WINDOW (GVA_WIDGET_PROPERTIES_WINDOW),
                 g_settings_get_int (settings, "properties-width"),
@@ -815,10 +778,6 @@ gva_properties_init (void)
         context = gtk_widget_get_style_context (widget);
         gtk_style_context_add_class (context, GTK_STYLE_CLASS_WARNING);
 
-#ifndef HAVE_GSTREAMER
-        gtk_widget_hide (GVA_WIDGET_PROPERTIES_MUSIC_TABLE);
-#endif
-
 #ifndef HISTORY_FILE
         /* Hide the history page if we have no history file. */
         notebook = GTK_NOTEBOOK (GVA_WIDGET_PROPERTIES_NOTEBOOK);
@@ -870,7 +829,6 @@ gva_properties_show_game (const gchar *game)
                 properties_update_cpu (game);
                 properties_update_header (model, &iter);
                 properties_update_history (model, &iter);
-                properties_update_music (game);
                 properties_update_sound (game);
                 properties_update_status (model, &iter);
                 properties_update_video (game);
@@ -885,16 +843,10 @@ gva_properties_show_game (const gchar *game)
  * @button: the "Close" button
  *
  * Handler for #GtkWidget::show signals to the "Properties" window.
- *
- * Stops in-game music clip.
  **/
 void
 gva_properties_hide_cb (GtkWindow *window)
 {
-        GvaMusicButton *music_button;
-
-        music_button = GVA_MUSIC_BUTTON (GVA_WIDGET_PROPERTIES_MUSIC_BUTTON);
-        gva_music_button_pause (music_button);
 }
 
 /**
@@ -903,19 +855,11 @@ gva_properties_hide_cb (GtkWindow *window)
  *
  * Handler for #GtkWidget::show signals to the "Properties" window.
  *
- * Resets all scrolled windows to the top, and starts in-game music clip
- * if the "auto-play" preference is enabled.
+ * Resets all scrolled windows to the top.
  **/
 void
 gva_properties_show_cb (GtkWindow *window)
 {
-        GvaMusicButton *music_button;
-
-        music_button = GVA_MUSIC_BUTTON (GVA_WIDGET_PROPERTIES_MUSIC_BUTTON);
-
-        if (gva_preferences_get_auto_play ())
-                gva_music_button_play (music_button);
-
         properties_scroll_to_top ();
 }
 
diff --git a/src/gva-ui.c b/src/gva-ui.c
index c80e131..d226748 100644
--- a/src/gva-ui.c
+++ b/src/gva-ui.c
@@ -26,7 +26,6 @@
 #include "gva-game-store.h"
 #include "gva-main.h"
 #include "gva-mame.h"
-#include "gva-music-button.h"
 #include "gva-mute-button.h"
 #include "gva-play-back.h"
 #include "gva-preferences.h"
@@ -79,14 +78,6 @@ N_("GNOME Video Arcade is free software; you can redistribute it "
  **/
 
 /**
- * GVA_ACTION_AUTO_PLAY:
- *
- * This toggle action tracks the user's preference for whether to
- * automatically start playing a music clip from the selected game
- * (if available) when the Properties window is open.
- **/
-
-/**
  * GVA_ACTION_AUTO_SAVE:
  *
  * This toggle action tracks the user's preference for whether to
@@ -411,7 +402,6 @@ gva_action_next_game_cb (GtkAction *action)
 void
 gva_action_play_back_cb (GtkAction *action)
 {
-        GtkWidget *widget;
         GvaProcess *process;
         GtkTreeModel *model;
         GtkTreeView *view;
@@ -440,9 +430,6 @@ gva_action_play_back_cb (GtkAction *action)
         inpname = g_strdelimit (g_path_get_basename (inpfile), ".", '\0');
         g_free (inpfile);
 
-        widget = GVA_WIDGET_PROPERTIES_MUSIC_BUTTON;
-        gva_music_button_pause (GVA_MUSIC_BUTTON (widget));
-
         process = gva_mame_playback_game (name, inpname, &error);
         gva_error_handle (&error);
 
@@ -532,7 +519,6 @@ gva_action_quit_cb (GtkAction *action)
 void
 gva_action_record_cb (GtkAction *action)
 {
-        GtkWidget *widget;
         GvaProcess *process;
         const gchar *name;
         gchar *inpname;
@@ -543,9 +529,6 @@ gva_action_record_cb (GtkAction *action)
 
         inpname = gva_choose_inpname (name);
 
-        widget = GVA_WIDGET_PROPERTIES_MUSIC_BUTTON;
-        gva_music_button_pause (GVA_MUSIC_BUTTON (widget));
-
         process = gva_mame_record_game (name, inpname, &error);
         gva_error_handle (&error);
 
@@ -676,7 +659,6 @@ gva_action_show_play_back_cb (GtkAction *action)
 void
 gva_action_start_cb (GtkAction *action)
 {
-        GtkWidget *widget;
         GvaProcess *process;
         const gchar *name;
         GError *error = NULL;
@@ -687,9 +669,6 @@ gva_action_start_cb (GtkAction *action)
         if (!gva_preferences_get_auto_save ())
                 gva_mame_delete_save_state (name);
 
-        widget = GVA_WIDGET_PROPERTIES_MUSIC_BUTTON;
-        gva_music_button_pause (GVA_MUSIC_BUTTON (widget));
-
         process = gva_mame_run_game (name, &error);
         gva_error_handle (&error);
 
diff --git a/src/gva-ui.h b/src/gva-ui.h
index 5189c2c..095f67c 100644
--- a/src/gva-ui.h
+++ b/src/gva-ui.h
@@ -31,7 +31,6 @@
 
 /* Actions */
 #define GVA_ACTION_ABOUT                (gva_ui_get_action ("about"))
-#define GVA_ACTION_AUTO_PLAY            (gva_ui_get_action ("auto-play"))
 #define GVA_ACTION_AUTO_SAVE            (gva_ui_get_action ("auto-save"))
 #define GVA_ACTION_CONTENTS             (gva_ui_get_action ("contents"))
 #define GVA_ACTION_FULL_SCREEN          (gva_ui_get_action ("full-screen"))
@@ -143,14 +142,6 @@
         (gva_ui_get_widget ("properties-imperfect-graphic-label"))
 #define GVA_WIDGET_PROPERTIES_IMPERFECT_SOUND_LABEL \
         (gva_ui_get_widget ("properties-imperfect-sound-label"))
-#define GVA_WIDGET_PROPERTIES_MUSIC_AUTO_PLAY \
-        (gva_ui_get_widget ("properties-music-auto-play"))
-#define GVA_WIDGET_PROPERTIES_MUSIC_BUTTON \
-        (gva_ui_get_widget ("properties-music-button"))
-#define GVA_WIDGET_PROPERTIES_MUSIC_STATUS \
-        (gva_ui_get_widget ("properties-music-status"))
-#define GVA_WIDGET_PROPERTIES_MUSIC_TABLE \
-        (gva_ui_get_widget ("properties-music-table"))
 #define GVA_WIDGET_PROPERTIES_NOTEBOOK \
         (gva_ui_get_widget ("properties-notebook"))
 #define GVA_WIDGET_PROPERTIES_ORIGINAL_LINKS \
diff --git a/src/gva-util.c b/src/gva-util.c
index 3439586..0d252e6 100644
--- a/src/gva-util.c
+++ b/src/gva-util.c
@@ -176,7 +176,6 @@ gva_get_debug_flags (void)
                         { "sql",   GVA_DEBUG_SQL },
                         { "io",    GVA_DEBUG_IO },
                         { "inp",   GVA_DEBUG_INP },
-                        { "gst",   GVA_DEBUG_GST },
                         { "http",  GVA_DEBUG_HTTP }
                 };
 
diff --git a/src/gva-util.h b/src/gva-util.h
index d24e6d8..1244ac0 100644
--- a/src/gva-util.h
+++ b/src/gva-util.h
@@ -43,8 +43,6 @@ G_BEGIN_DECLS
  *      Print all communication between GVA and MAME.
  * @GVA_DEBUG_INP:
  *      Print information about input files.
- * @GVA_DEBUG_GST:
- *      Print GStreamer activity.
  * @GVA_DEBUG_HTTP:
  *      Print HTTP communication.
  *
@@ -60,8 +58,7 @@ typedef enum
         GVA_DEBUG_SQL   = 1 << (G_LOG_LEVEL_USER_SHIFT + 1),
         GVA_DEBUG_IO    = 1 << (G_LOG_LEVEL_USER_SHIFT + 2),
         GVA_DEBUG_INP   = 1 << (G_LOG_LEVEL_USER_SHIFT + 3),
-        GVA_DEBUG_GST   = 1 << (G_LOG_LEVEL_USER_SHIFT + 4),
-        GVA_DEBUG_HTTP  = 1 << (G_LOG_LEVEL_USER_SHIFT + 5)
+        GVA_DEBUG_HTTP  = 1 << (G_LOG_LEVEL_USER_SHIFT + 4)
 } GvaDebugFlags;
 
 gchar *         gva_choose_inpname              (const gchar *game);
diff --git a/src/main.c b/src/main.c
index bedac58..c6c88a5 100644
--- a/src/main.c
+++ b/src/main.c
@@ -322,11 +322,6 @@ main (gint argc, gchar **argv)
         if (error != NULL)
                 g_error ("%s", error->message);
 
-#ifdef HAVE_GSTREAMER
-        if (!gst_init_check (&argc, &argv, &error))
-                g_error ("%s", error->message);
-#endif
-
         /* This installs handlers for our custom debug log levels. */
         gva_get_debug_flags ();
 


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