Index: configure.in
===================================================================
--- configure.in (revision 4652)
+++ configure.in (working copy)
@@ -681,6 +681,29 @@
AC_SUBST(COMPAT_SUBDIR)
AC_SUBST(COMPAT_OSNAME)
+dnl Decide if desktop and mime files are installed
+AC_ARG_ENABLE(desktop-integration,
+AS_HELP_STRING([--enable-desktop-integration], [add menu entry and file associations]),
+if test "$enableval" = yes; then desktopintegration=yes; else desktopintegration=no; fi,
+desktdesktopintegration=no)
+AC_MSG_CHECKING(whether to install desktop file)
+AC_MSG_RESULT($desktopintegration)
+AM_CONDITIONAL(DESKTOP_INTEGRATION, test "$desktopintegration" = yes)
+AC_CHECK_PROGS(GTK_UPDATE_ICON_CACHE,gtk-update-icon-cache,true)
+
+dnl Where to install the desktop and mime files
+AC_ARG_WITH(desktop-dir,
+AS_HELP_STRING([--with-desktop-dir=DIR], [location of desktop files (default=datadir)]),
+if test "$withval" = no; then desktopdir=no; else desktopdir=yes; fi,
+desktopdir=no)
+if test "$desktopdir" = yes; then
+ DESKTOP_DATADIR=$with_desktop_dir
+else
+ DESKTOP_DATADIR="$datadir"
+fi
+AM_CONDITIONAL(DESKTOP_DATADIR, test "$desktopdir" == yes)
+AC_SUBST(DESKTOP_DATADIR)
+
dnl Do we want the low memory compile?
AC_MSG_CHECKING(whether low memory compile requested)
AC_ARG_ENABLE(smallmem,
@@ -723,6 +746,7 @@
compat/unix/Makefile \
compat/wii/Makefile \
compat/win32/Makefile \
+data/Makefile \
debugger/Makefile \
hacking/Makefile \
lib/Makefile \
Property changes on: data
___________________________________________________________________
Added: svn:ignore
+ Makefile
Makefile.in
Index: data/fuse.xml
===================================================================
--- data/fuse.xml (revision 0)
+++ data/fuse.xml (revision 0)
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
+ <mime-type type="application/x-spectrum-csw">
+ <comment>ZX Spectrum audio file</comment>
+ <magic>
+ <match type="string" offset="0" value="Compressed Square Wave\x1a"/>
+ </magic>
+ <icon name="application-x-spectrum"/>
+ <glob pattern="*.csw"/>
+ </mime-type>
+ <mime-type type="application/x-spectrum-dsk">
+ <comment>ZX Spectrum disk file</comment>
+ <magic>
+ <match type="string" offset="0" value="MV - CPCEMU Disk-File\x0d\x0aDisk-Info\x0d\x0a"/>
+ <match type="string" offset="0" value="EXTENDED CPC DSK File\x0d\x0aDisk-Info\x0d\x0a"/>
+ </magic>
+ <icon name="application-x-spectrum"/>
+ <glob pattern="*.dsk"/>
+ </mime-type>
+ <mime-type type="application/x-spectrum-pzx">
+ <comment>ZX Spectrum tape file</comment>
+ <magic>
+ <match type="string" offset="0" value="PZXT"/>
+ </magic>
+ <icon name="application-x-spectrum"/>
+ <glob pattern="*.pzx"/>
+ </mime-type>
+ <mime-type type="application/x-spectrum-rzx">
+ <comment>ZX Spectrum action replay</comment>
+ <magic>
+ <match type="string" offset="0" value="RZX!"/>
+ </magic>
+ <icon name="application-x-spectrum"/>
+ <glob pattern="*.rzx"/>
+ </mime-type>
+ <mime-type type="application/x-spectrum-sna">
+ <comment>ZX Spectrum snapshot</comment>
+ <icon name="application-x-spectrum"/>
+ <glob pattern="*.sna"/>
+ </mime-type>
+ <mime-type type="application/x-spectrum-compressed-sna">
+ <comment>ZX Spectrum snapshot (compressed)</comment>
+ <icon name="application-x-spectrum"/>
+ <glob pattern="*.sna.gz"/>
+ <glob pattern="*.sna.bz2"/>
+ </mime-type>
+ <mime-type type="application/x-spectrum-slt">
+ <comment>ZX Spectrum snapshot</comment>
+ <icon name="application-x-spectrum"/>
+ <glob pattern="*.slt"/>
+ </mime-type>
+ <mime-type type="application/x-spectrum-compressed-slt">
+ <comment>ZX Spectrum snapshot (compressed)</comment>
+ <icon name="application-x-spectrum"/>
+ <glob pattern="*.slt.gz"/>
+ <glob pattern="*.slt.bz2"/>
+ </mime-type>
+ <mime-type type="application/x-spectrum-szx">
+ <comment>ZX Spectrum snapshot</comment>
+ <magic>
+ <match type="string" offset="0" value="ZXST"/>
+ </magic>
+ <icon name="application-x-spectrum"/>
+ <glob pattern="*.szx"/>
+ <glob pattern="*.zx-state"/>
+ </mime-type>
+ <mime-type type="application/x-spectrum-tap">
+ <comment>ZX Spectrum tape file</comment>
+ <icon name="application-x-spectrum"/>
+ <glob pattern="*.tap"/>
+ </mime-type>
+ <mime-type type="application/x-spectrum-compressed-tap">
+ <comment>ZX Spectrum tape file (compressed)</comment>
+ <icon name="application-x-spectrum"/>
+ <glob pattern="*.tap.gz"/>
+ <glob pattern="*.tap.bz2"/>
+ </mime-type>
+ <mime-type type="application/x-spectrum-tzx">
+ <comment>ZX Spectrum tape file</comment>
+ <magic>
+ <match type="string" offset="0" value="ZXTape!\x1a"/>
+ </magic>
+ <icon name="application-x-spectrum"/>
+ <glob pattern="*.tzx"/>
+ </mime-type>
+ <mime-type type="application/x-spectrum-compressed-tzx">
+ <comment>ZX Spectrum tape file (compressed)</comment>
+ <icon name="application-x-spectrum"/>
+ <glob pattern="*.tzx.gz"/>
+ <glob pattern="*.tzx.bz2"/>
+ </mime-type>
+ <mime-type type="application/x-spectrum-z80">
+ <comment>ZX Spectrum snapshot</comment>
+ <icon name="application-x-spectrum"/>
+ <glob pattern="*.z80"/>
+ </mime-type>
+ <mime-type type="application/x-spectrum-compressed-z80">
+ <comment>ZX Spectrum snapshot (compressed)</comment>
+ <icon name="application-x-spectrum"/>
+ <glob pattern="*.z80.gz"/>
+ <glob pattern="*.z80.bz2"/>
+ </mime-type>
+</mime-info>
Index: data/Makefile.am
===================================================================
--- data/Makefile.am (revision 0)
+++ data/Makefile.am (revision 0)
@@ -0,0 +1,90 @@
+## Process this file with automake to produce Makefile.in
+## Copyright (c) 2011 Philip Kendall
+
+## $Id$
+
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License along
+## with this program; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+##
+## Author contact information:
+##
+## E-mail: philip-fuse@shadowmagic.org.uk
+
+AUTOMAKE_OPTIONS = foreign
+
+if DESKTOP_INTEGRATION
+
+appdatadir = $(DESKTOP_DATADIR)/applications
+dist_appdata_DATA = fuse.desktop
+
+fusemimedir = $(DESKTOP_DATADIR)/mime/packages
+dist_fusemime_DATA = fuse.xml
+
+iconsdatadir = $(DESKTOP_DATADIR)/icons/hicolor
+icons16dir = $(iconsdatadir)/16x16/apps
+icons32dir = $(iconsdatadir)/32x32/apps
+icons48dir = $(iconsdatadir)/48x48/apps
+icons64dir = $(iconsdatadir)/64x64/apps
+icons128dir = $(iconsdatadir)/128x128/apps
+icons256dir = $(iconsdatadir)/256x256/apps
+
+dist_icons16_DATA = icons/16x16/fuse.png
+dist_icons32_DATA = icons/32x32/fuse.png
+dist_icons48_DATA = icons/48x48/fuse.png
+dist_icons64_DATA = icons/64x64/fuse.png
+dist_icons128_DATA = icons/128x128/fuse.png
+dist_icons256_DATA = icons/256x256/fuse.png
+
+mimeicons16dir = $(iconsdatadir)/16x16/mimetypes
+mimeicons32dir = $(iconsdatadir)/32x32/mimetypes
+mimeicons48dir = $(iconsdatadir)/48x48/mimetypes
+mimeicons64dir = $(iconsdatadir)/64x64/mimetypes
+mimeicons128dir = $(iconsdatadir)/128x128/mimetypes
+mimeicons256dir = $(iconsdatadir)/256x256/mimetypes
+
+dist_mimeicons16_DATA = icons/16x16/application-x-spectrum.png
+dist_mimeicons32_DATA = icons/32x32/application-x-spectrum.png
+dist_mimeicons48_DATA = icons/48x48/application-x-spectrum.png
+dist_mimeicons64_DATA = icons/64x64/application-x-spectrum.png
+dist_mimeicons128_DATA = icons/128x128/application-x-spectrum.png
+dist_mimeicons256_DATA = icons/256x256/application-x-spectrum.png
+
+update-database-cache:
+ @-if test -z "$(DESTDIR)"; then \
+ echo "Updating desktop, mime and icon databases."; \
+ update-desktop-database $(DESKTOP_DATADIR)/applications; \
+ update-mime-database $(DESKTOP_DATADIR)/mime; \
+ touch --no-create $(iconsdatadir); \
+ $(GTK_UPDATE_ICON_CACHE) -t ${iconsdatadir}; \
+ else \
+ echo "*** Not updating desktop, mime and icon databases. After install, run:"; \
+ echo "*** update-desktop-database $(DESKTOP_DATADIR)/applications"; \
+ echo "*** update-mime-database $(DESKTOP_DATADIR)/mime"; \
+ echo "*** touch --no-create $(iconsdatadir)"; \
+ echo "*** gtk-update-icon-cache -t ${iconsdatadir}"; \
+ fi
+
+install-data-hook: update-database-cache
+
+uninstall-hook: update-database-cache
+
+endif
+
+validate: fuse.desktop
+ ( dfvalidate=`which desktop-file-validate`; \
+ if test x$$dfvalidate != x && test -x $$dfvalidate; then \
+ $$dfvalidate $< || ( echo "* $< INVALID *"; exit 1 ) \
+ fi )
+
+dist-hook: validate
Index: data/fuse.desktop
===================================================================
--- data/fuse.desktop (revision 0)
+++ data/fuse.desktop (revision 0)
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Categories=Game;Emulator;GNOME;GTK;
+Name=Fuse Spectrum Emulator
+Comment=Emulator of the 1980s ZX Spectrum home computer and its various clones
+MimeType=application/x-spectrum-csw;application/x-spectrum-dsk;application/x-spectrum-pzx;application/x-spectrum-rzx;application/x-spectrum-slt;application/x-spectrum-compressed-slt;application/x-spectrum-sna;application/x-spectrum-compressed-sna;application/x-spectrum-szx;application/x-spectrum-tap;application/x-spectrum-compressed-tap;application/x-spectrum-tzx;application/x-spectrum-compressed-tzx;audio/x-wav;application/x-spectrum-z80;application/x-spectrum-compressed-z80;
+Exec=fuse %f
+Icon=fuse
+
Index: data/icons/48x48/fuse.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: data/icons/48x48/fuse.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: data/icons/48x48/application-x-spectrum.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: data/icons/48x48/application-x-spectrum.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: data/icons/32x32/fuse.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: data/icons/32x32/fuse.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: data/icons/32x32/application-x-spectrum.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: data/icons/32x32/application-x-spectrum.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: data/icons/256x256/fuse.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: data/icons/256x256/fuse.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: data/icons/256x256/application-x-spectrum.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: data/icons/256x256/application-x-spectrum.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: data/icons/16x16/fuse.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: data/icons/16x16/fuse.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: data/icons/16x16/application-x-spectrum.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: data/icons/16x16/application-x-spectrum.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: data/icons/64x64/fuse.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: data/icons/64x64/fuse.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: data/icons/64x64/application-x-spectrum.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: data/icons/64x64/application-x-spectrum.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: data/icons/128x128/fuse.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: data/icons/128x128/fuse.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: data/icons/128x128/application-x-spectrum.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: data/icons/128x128/application-x-spectrum.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: Makefile.am
===================================================================
--- Makefile.am (revision 4652)
+++ Makefile.am (working copy)
@@ -26,6 +26,7 @@
bin_PROGRAMS = fuse
SUBDIRS = @COMPAT_SUBDIR@ \
+ data \
debugger \
hacking \
lib \
@@ -41,7 +42,8 @@
unittests \
z80
-DIST_SUBDIRS = debugger \
+DIST_SUBDIRS = data \
+ debugger \
hacking \
lib \
machines \