summary refs log tree commit diff
path: root/pkgs/games/openttd
diff options
context:
space:
mode:
authorKranium Gikos Mendoza <kranium@gikos.net>2016-08-20 05:43:34 +0800
committerKranium Gikos Mendoza <kranium@gikos.net>2016-08-20 06:57:02 +0800
commit63a2c80bf9e5a7d2784ce6787563fba93720ded4 (patch)
tree5e1a7ff79c1c6c7273845b5af017579f35ccf8a6 /pkgs/games/openttd
parentd7707921979d8f9b0a40ec32d90963510fc3dd16 (diff)
downloadnixpkgs-63a2c80bf9e5a7d2784ce6787563fba93720ded4.tar
nixpkgs-63a2c80bf9e5a7d2784ce6787563fba93720ded4.tar.gz
nixpkgs-63a2c80bf9e5a7d2784ce6787563fba93720ded4.tar.bz2
nixpkgs-63a2c80bf9e5a7d2784ce6787563fba93720ded4.tar.lz
nixpkgs-63a2c80bf9e5a7d2784ce6787563fba93720ded4.tar.xz
nixpkgs-63a2c80bf9e5a7d2784ce6787563fba93720ded4.tar.zst
nixpkgs-63a2c80bf9e5a7d2784ce6787563fba93720ded4.zip
openttd: out of the box midi playback
Diffstat (limited to 'pkgs/games/openttd')
-rw-r--r--pkgs/games/openttd/default.nix18
1 files changed, 16 insertions, 2 deletions
diff --git a/pkgs/games/openttd/default.nix b/pkgs/games/openttd/default.nix
index 2f174f41731..c40337d54f5 100644
--- a/pkgs/games/openttd/default.nix
+++ b/pkgs/games/openttd/default.nix
@@ -1,5 +1,7 @@
 { stdenv, fetchurl, fetchzip, pkgconfig, SDL, libpng, zlib, xz, freetype, fontconfig
 , withOpenGFX ? true, withOpenSFX ? true, withOpenMSX ? true
+, withFluidSynth ? true, audioDriver ? "alsa", fluidsynth, soundfont-fluid, procps
+, writeScriptBin, makeWrapper
 }:
 
 let
@@ -18,6 +20,12 @@ let
     sha256 = "0qnmfzz0v8vxrrvxnm7szphrlrlvhkwn3y92b4iy0b4b6yam0yd4";
   };
 
+  playmidi = writeScriptBin "playmidi" ''
+    #!/bin/sh
+    trap "${procps}/bin/pkill fluidsynth" EXIT
+    ${fluidsynth}/bin/fluidsynth -a ${audioDriver} -i ${soundfont-fluid}/share/soundfonts/FluidR3_GM2-2.sf2 $*
+  '';
+
 in
 stdenv.mkDerivation rec {
   name = "openttd-${version}";
@@ -28,8 +36,9 @@ stdenv.mkDerivation rec {
     sha256 = "1ak32fj5xkk2fvmm3g8i7wzmk4bh2ijsp8fzvvw5wj6365p9j24v";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ SDL libpng xz zlib freetype fontconfig ];
+  nativeBuildInputs = [ pkgconfig makeWrapper ];
+  buildInputs = [ SDL libpng xz zlib freetype fontconfig ]
+    ++ stdenv.lib.optional withFluidSynth [ fluidsynth soundfont-fluid ];
 
   prefixKey = "--prefix-dir=";
 
@@ -58,6 +67,11 @@ stdenv.mkDerivation rec {
       cp ${openmsx}/*.{obm,mid} $out/share/games/openttd/baseset/openmsx
     ''}
 
+    ${stdenv.lib.optionalString withFluidSynth ''
+      wrapProgram $out/bin/openttd \
+        --add-flags -m \
+        --add-flags extmidi:cmd=${playmidi}/bin/playmidi
+    ''}
   '';
 
   meta = {