]> Pileus Git - ~andy/sunrise/commitdiff
games-fps/gzdoom: Fix compilation with current fmod versions
authorMike MacDonald (crazymykl) <crazymykl@gmail.com>
Fri, 16 Dec 2011 06:59:02 +0000 (06:59 +0000)
committerMike MacDonald (crazymykl) <crazymykl@gmail.com>
Fri, 16 Dec 2011 06:59:02 +0000 (06:59 +0000)
svn path=/sunrise/; revision=12574

games-fps/gzdoom/ChangeLog
games-fps/gzdoom/Manifest
games-fps/gzdoom/files/gzdoom-1.5.5-fix-new-fmod.patch [new file with mode: 0644]
games-fps/gzdoom/files/gzdoom-9999-fix-new-fmod.patch [new file with mode: 0644]
games-fps/gzdoom/gzdoom-1.5.5.ebuild
games-fps/gzdoom/gzdoom-9999.ebuild

index 6a2060c2cd22117fe3b543658fb76ff64579f03b..34353cb5ad9cc875765b8ebf85c1dd6ffb234322 100644 (file)
@@ -2,6 +2,11 @@
 # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
 # $Header: $
 
+  16 Dec 2011; Mike MacDonald (crazymykl) <crazymykl@gmail.com>
+  gzdoom-1.5.5.ebuild, +files/gzdoom-1.5.5-fix-new-fmod.patch,
+  gzdoom-9999.ebuild, +files/gzdoom-9999-fix-new-fmod.patch:
+  Fix compilation with current fmod versions
+
   29 Jun 2011; Nathan Phillip Brink <binki@gentoo.org> Manifest:
   Run `repoman manifest' for crazymykl.
 
index 2ac6d7a7f127dd284617faea1041f539e4768f87..ac9ca8a631f6cfd4c62b58125aa64a3e5e452744 100644 (file)
@@ -1,6 +1,8 @@
+AUX gzdoom-1.5.5-fix-new-fmod.patch 4755 RMD160 1c134cc67a76b4429de9fd4af5787fb4680ffb37 SHA1 b681ccab370c3e60f3e8ac31629bfd87c85b6c1f SHA256 3f5934cc3841fd21a00a27d3c4ff5dfd8edf5b44aa981c00c6969138d47aa0b7
+AUX gzdoom-9999-fix-new-fmod.patch 4019 RMD160 3f3e43edff91dbb506ae10ac06d203dfd1ea8b93 SHA1 3091ac26e43d07827d8dc1e86e2ca6bfac151bb2 SHA256 b50b933ff655f2fdbb23ee8c905307c0783eddbd499d0963d204c97143603a4b
 AUX gzdoom-respect-fluidsynth-useflag.patch 1543 RMD160 b104bca99792102fbfd4b67bbd35dc5a876c6f4b SHA1 da5bea93a8542672687c37f1fa4b3f7d39d7846b SHA256 d8ac175c57bd673e0fe1ea7c9b592c74f27b0457cfcc84cb711c819528a3469c
 DIST gzdoom-1.5.5.tar.bz2 3679401 RMD160 ed361d9e49ad96e621b7aac8d6cf286d19f70ef4 SHA1 177ba109850f076ef49d792ae02480aea2b50b12 SHA256 a28afe74fa0a99714159884d3ec88db3b752cb6ba34db2e41f8a40ed64cdac4f
-EBUILD gzdoom-1.5.5.ebuild 1807 RMD160 d3866420143824fecac33407fbf5a7ced9fbca06 SHA1 abd2a4c1e70b31c3e9714b5c913ef55b23dbe6dd SHA256 646c0aff92a2eedbc02a38c3764c31cb6534bf06a43b8aa0d9c1b8b63c8e5ea6
-EBUILD gzdoom-9999.ebuild 1908 RMD160 ffff2c766717025a62977999b0d93910a027bbf4 SHA1 7d85f4d13f9838e6e97154069849bfdee76568eb SHA256 8214e3b70812215f167748978920d44ccf9cc51e5a0eca4ecf61453e71614e6a
-MISC ChangeLog 2411 RMD160 149d14092db010201e738f466a895f756bb2ff13 SHA1 7f44d47df332d645bfcbac6ddce94dc389a961df SHA256 7b4bbc4f4caa8de82349e5b2f903f3a26f625b22acbafdc6ac0c4b9544a065e9
+EBUILD gzdoom-1.5.5.ebuild 1853 RMD160 f35342260dd79f9539295abd8d4283f072fea067 SHA1 844f747f21f2d7571d37ca0f0016fd546d846ef1 SHA256 51ab0264a79a9e02077a704bc539c4405960d1c96d1865a828aa13f00b0ac65b
+EBUILD gzdoom-9999.ebuild 1954 RMD160 fbf579592841c5111f4d19ace242830bd6280969 SHA1 38cbb9c4c69bdfc6750943a45304f7f0f074797d SHA256 1c1e88c9744f6b85c1eab8519b90d70244ccd22c72ee2fbbc34d21fdc62dc128
+MISC ChangeLog 2645 RMD160 46dd39e18bc59461649b8c442f2c87ae5f5c1b5e SHA1 4728b4fe634633d699b4432fe1019c8a956c3631 SHA256 f73386289de49362faed7f8226c4c2db6c93939bb5d50805a3fcf2fff07ea9a7
 MISC metadata.xml 293 RMD160 93f2f41306368e2ecaf009304527702be3e8dfa7 SHA1 2acf22407b99accddad16d864fa8660334dbc302 SHA256 2fe2749f64960afa7a1e8473fe7c10661c49ba7b047bb931e528bb94ddf757e0
diff --git a/games-fps/gzdoom/files/gzdoom-1.5.5-fix-new-fmod.patch b/games-fps/gzdoom/files/gzdoom-1.5.5-fix-new-fmod.patch
new file mode 100644 (file)
index 0000000..8d8305f
--- /dev/null
@@ -0,0 +1,134 @@
+--- src/sound/fmodsound.cpp    2010-11-17 10:13:29.000000000 -0500
++++ fmodsound.cpp.new  2011-12-16 01:48:55.361040907 -0500
+@@ -75,6 +75,14 @@
\r
+ #define SPECTRUM_SIZE                         256\r
\r
++#if FMOD_VERSION < 0x43400\r
++#define FMOD_OPENSTATE_PLAYING FMOD_OPENSTATE_STREAMING\r
++#endif\r
++\r
++#if FMOD_VERSION < 0x43702\r
++#define FMOD_INIT_HRTF_LOWPASS FMOD_INIT_SOFTWARE_HRTF\r
++#endif\r
++\r
+ // TYPES -------------------------------------------------------------------\r
\r
+ struct FEnumList\r
+@@ -157,7 +165,7 @@
+       { "Windows Multimedia",         FMOD_OUTPUTTYPE_WINMM },\r
+       { "WinMM",                                      FMOD_OUTPUTTYPE_WINMM },\r
+       { "WaveOut",                            FMOD_OUTPUTTYPE_WINMM },\r
+-      { "OpenAL",                                     FMOD_OUTPUTTYPE_OPENAL },\r
++//    { "OpenAL",                                     FMOD_OUTPUTTYPE_OPENAL },\r
+       { "WASAPI",                                     FMOD_OUTPUTTYPE_WASAPI },\r
+       { "ASIO",                                       FMOD_OUTPUTTYPE_ASIO },\r
\r
+@@ -387,13 +395,13 @@
+       {\r
+               bool is;\r
+               FMOD_OPENSTATE openstate = FMOD_OPENSTATE_MAX;\r
+-              bool starving;\r
++              bool starving, diskbusy;\r
\r
+               if (Stream == NULL)\r
+               {\r
+                       return true;\r
+               }\r
+-              if (FMOD_OK != Stream->getOpenState(&openstate, NULL, &starving))\r
++              if (FMOD_OK != Stream->getOpenState(&openstate, NULL, &starving, &diskbusy))\r
+               {\r
+                       openstate = FMOD_OPENSTATE_ERROR;\r
+               }\r
+@@ -436,7 +444,7 @@
+                       Owner->Sys->setStreamBufferSize(16*1024, FMOD_TIMEUNIT_RAWBYTES);\r
+                       return result != FMOD_OK;\r
+               }\r
+-              if (JustStarted && openstate == FMOD_OPENSTATE_STREAMING)\r
++              if (JustStarted && openstate == FMOD_OPENSTATE_PLAYING)\r
+               {\r
+                       JustStarted = false;\r
+               }\r
+@@ -479,15 +487,15 @@
+               FMOD_OPENSTATE openstate;\r
+               unsigned int percentbuffered;\r
+               unsigned int position;\r
+-              bool starving;\r
++              bool starving, diskbusy;\r
+               float volume;\r
+               float frequency;\r
+               bool paused;\r
+               bool isplaying;\r
\r
+-              if (FMOD_OK == Stream->getOpenState(&openstate, &percentbuffered, &starving))\r
++              if (FMOD_OK == Stream->getOpenState(&openstate, &percentbuffered, &starving, &diskbusy))\r
+               {\r
+-                      stats = (openstate <= FMOD_OPENSTATE_STREAMING ? OpenStateNames[openstate] : "Unknown state");\r
++                      stats = (openstate <= FMOD_OPENSTATE_PLAYING ? OpenStateNames[openstate] : "Unknown state");\r
+                       stats.AppendFormat(",%3d%% buffered, %s", percentbuffered, starving ? "Starving" : "Well-fed");\r
+               }\r
+               if (Channel == NULL)\r
+@@ -819,7 +827,7 @@
+               result = Sys->setDriver(driver);\r
+       }\r
+       result = Sys->getDriver(&driver);\r
+-      result = Sys->getDriverCaps(driver, &Driver_Caps, &Driver_MinFrequency, &Driver_MaxFrequency, &speakermode);\r
++      result = Sys->getDriverCaps(driver, &Driver_Caps, &Driver_MaxFrequency, &speakermode);\r
+       if (result != FMOD_OK)\r
+       {\r
+               Printf(TEXTCOLOR_BLUE"Could not ascertain driver capabilities. Some things may be weird. (Error %d)\n", result);\r
+@@ -899,7 +907,7 @@
+       initflags = FMOD_INIT_NORMAL;\r
+       if (snd_hrtf)\r
+       {\r
+-              initflags |= FMOD_INIT_SOFTWARE_HRTF;\r
++              initflags |= FMOD_INIT_HRTF_LOWPASS;\r
+       }\r
+       if (snd_profile)\r
+       {\r
+@@ -991,7 +999,7 @@
+       }\r
+       else\r
+       {\r
+-              result = Sys->createDSPByType(FMOD_DSP_TYPE_REVERB, &WaterReverb);\r
++              result = Sys->createDSPByType(FMOD_DSP_TYPE_SFXREVERB, &WaterReverb);\r
+               if (result != FMOD_OK)\r
+               {\r
+                       Printf(TEXTCOLOR_BLUE"  Could not create underwater reverb unit. (Error %d)\n", result);\r
+@@ -1058,8 +1066,8 @@
+                                                               result = sfx_head->addInput(WaterReverb, NULL);\r
+                                                               if (result == FMOD_OK)\r
+                                                               {\r
+-                                                                      WaterReverb->setParameter(FMOD_DSP_REVERB_ROOMSIZE, 0.001f);\r
+-                                                                      WaterReverb->setParameter(FMOD_DSP_REVERB_DAMP, 0.2f);\r
++                                                                      //WaterReverb->setParameter(FMOD_DSP_REVERB_ROOMSIZE, 0.001f);\r
++                                                                      //WaterReverb->setParameter(FMOD_DSP_REVERB_DAMP, 0.2f);\r
+                                                                       WaterReverb->setActive(false);\r
+                                                               }\r
+                                                       }\r
+@@ -1210,7 +1218,7 @@
+               Printf ("Driver: "TEXTCOLOR_GREEN"%d"TEXTCOLOR_NORMAL" ("TEXTCOLOR_ORANGE"%s"TEXTCOLOR_NORMAL")\n", driver, name);\r
+               DumpDriverCaps(Driver_Caps, Driver_MinFrequency, Driver_MaxFrequency);\r
+       }\r
+-      if (FMOD_OK == Sys->getHardwareChannels(&num2d, &num3d, &total))\r
++      if (FMOD_OK == Sys->getHardwareChannels(&total))\r
+       {\r
+               Printf (TEXTCOLOR_YELLOW "Hardware 2D channels: "TEXTCOLOR_GREEN"%d\n", num2d);\r
+               Printf (TEXTCOLOR_YELLOW "Hardware 3D channels: "TEXTCOLOR_GREEN"%d\n", num3d);\r
+@@ -1253,6 +1261,7 @@
+       {\r
+               Printf("\n");\r
+       }\r
++      /*\r
+       if (caps & FMOD_CAPS_REVERB_EAX2)                               Printf(TEXTCOLOR_OLIVE "   EAX2");\r
+       if (caps & FMOD_CAPS_REVERB_EAX3)                               Printf(TEXTCOLOR_OLIVE "   EAX3");\r
+       if (caps & FMOD_CAPS_REVERB_EAX4)                               Printf(TEXTCOLOR_OLIVE "   EAX4");\r
+@@ -1261,7 +1270,7 @@
+       if (caps & (FMOD_CAPS_REVERB_EAX2 | FMOD_CAPS_REVERB_EAX3 | FMOD_CAPS_REVERB_EAX4 | FMOD_CAPS_REVERB_EAX5 | FMOD_CAPS_REVERB_I3DL2))\r
+       {\r
+               Printf("\n");\r
+-      }\r
++      }*/\r
+       if (caps & FMOD_CAPS_REVERB_LIMITED)                    Printf("TEXTCOLOR_OLIVE    Limited reverb\n");\r
+ }\r
\r
diff --git a/games-fps/gzdoom/files/gzdoom-9999-fix-new-fmod.patch b/games-fps/gzdoom/files/gzdoom-9999-fix-new-fmod.patch
new file mode 100644 (file)
index 0000000..813a281
--- /dev/null
@@ -0,0 +1,106 @@
+Index: src/sound/fmodsound.cpp
+===================================================================
+--- src/sound/fmodsound.cpp    (revision 1280)
++++ src/sound/fmodsound.cpp    (working copy)
+@@ -79,6 +79,10 @@
+ #define FMOD_OPENSTATE_PLAYING FMOD_OPENSTATE_STREAMING\r
+ #endif\r
\r
++#if FMOD_VERSION < 0x43702\r
++#define FMOD_INIT_HRTF_LOWPASS FMOD_INIT_SOFTWARE_HRTF\r
++#endif\r
++\r
+ // TYPES -------------------------------------------------------------------\r
\r
+ struct FEnumList\r
+@@ -348,7 +352,7 @@
+               Channel->setSpeakerMix(1, 1, 1, 1, 1, 1, 1, 1);\r
+               Channel->setVolume(volume);\r
+               // Ensure reverb is disabled.\r
+-              FMOD_REVERB_CHANNELPROPERTIES reverb = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };\r
++              FMOD_REVERB_CHANNELPROPERTIES reverb = { 0, 0, 0, NULL};\r
+               if (FMOD_OK == Channel->getReverbProperties(&reverb))\r
+               {\r
+                       reverb.Room = -10000;\r
+@@ -842,7 +846,7 @@
+               result = Sys->setDriver(driver);\r
+       }\r
+       result = Sys->getDriver(&driver);\r
+-      result = Sys->getDriverCaps(driver, &Driver_Caps, &Driver_MinFrequency, &Driver_MaxFrequency, &speakermode);\r
++      result = Sys->getDriverCaps(driver, &Driver_Caps, &Driver_MaxFrequency, &speakermode);\r
+       if (result != FMOD_OK)\r
+       {\r
+               Printf(TEXTCOLOR_BLUE"Could not ascertain driver capabilities. Some things may be weird. (Error %d)\n", result);\r
+@@ -922,7 +926,7 @@
+       initflags = FMOD_INIT_NORMAL;\r
+       if (snd_hrtf)\r
+       {\r
+-              initflags |= FMOD_INIT_SOFTWARE_HRTF;\r
++              initflags |= FMOD_INIT_HRTF_LOWPASS;\r
+       }\r
+       if (snd_profile)\r
+       {\r
+@@ -1014,7 +1018,7 @@
+       }\r
+       else\r
+       {\r
+-              result = Sys->createDSPByType(FMOD_DSP_TYPE_REVERB, &WaterReverb);\r
++              result = Sys->createDSPByType(FMOD_DSP_TYPE_SFXREVERB, &WaterReverb);\r
+               if (result != FMOD_OK)\r
+               {\r
+                       Printf(TEXTCOLOR_BLUE"  Could not create underwater reverb unit. (Error %d)\n", result);\r
+@@ -1081,8 +1085,8 @@
+                                                               result = sfx_head->addInput(WaterReverb, NULL);\r
+                                                               if (result == FMOD_OK)\r
+                                                               {\r
+-                                                                      WaterReverb->setParameter(FMOD_DSP_REVERB_ROOMSIZE, 0.001f);\r
+-                                                                      WaterReverb->setParameter(FMOD_DSP_REVERB_DAMP, 0.2f);\r
++                                                                      //WaterReverb->setParameter(FMOD_DSP_REVERB_ROOMSIZE, 0.001f);\r
++                                                                      //WaterReverb->setParameter(FMOD_DSP_REVERB_DAMP, 0.2f);\r
+                                                                       WaterReverb->setActive(false);\r
+                                                               }\r
+                                                       }\r
+@@ -1233,7 +1237,7 @@
+               Printf ("Driver: "TEXTCOLOR_GREEN"%d"TEXTCOLOR_NORMAL" ("TEXTCOLOR_ORANGE"%s"TEXTCOLOR_NORMAL")\n", driver, name);\r
+               DumpDriverCaps(Driver_Caps, Driver_MinFrequency, Driver_MaxFrequency);\r
+       }\r
+-      if (FMOD_OK == Sys->getHardwareChannels(&num2d, &num3d, &total))\r
++      if (FMOD_OK == Sys->getHardwareChannels(&total))\r
+       {\r
+               Printf (TEXTCOLOR_YELLOW "Hardware 2D channels: "TEXTCOLOR_GREEN"%d\n", num2d);\r
+               Printf (TEXTCOLOR_YELLOW "Hardware 3D channels: "TEXTCOLOR_GREEN"%d\n", num3d);\r
+@@ -1276,6 +1280,7 @@
+       {\r
+               Printf("\n");\r
+       }\r
++      /*\r
+       if (caps & FMOD_CAPS_REVERB_EAX2)                               Printf(TEXTCOLOR_OLIVE "   EAX2");\r
+       if (caps & FMOD_CAPS_REVERB_EAX3)                               Printf(TEXTCOLOR_OLIVE "   EAX3");\r
+       if (caps & FMOD_CAPS_REVERB_EAX4)                               Printf(TEXTCOLOR_OLIVE "   EAX4");\r
+@@ -1284,7 +1289,7 @@
+       if (caps & (FMOD_CAPS_REVERB_EAX2 | FMOD_CAPS_REVERB_EAX3 | FMOD_CAPS_REVERB_EAX4 | FMOD_CAPS_REVERB_EAX5 | FMOD_CAPS_REVERB_I3DL2))\r
+       {\r
+               Printf("\n");\r
+-      }\r
++      }*/\r
+       if (caps & FMOD_CAPS_REVERB_LIMITED)                    Printf("TEXTCOLOR_OLIVE    Limited reverb\n");\r
+ }\r
\r
+@@ -1689,7 +1694,7 @@
+               }\r
+               if (flags & SNDF_NOREVERB)\r
+               {\r
+-                      FMOD_REVERB_CHANNELPROPERTIES reverb = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };\r
++                      FMOD_REVERB_CHANNELPROPERTIES reverb = { 0, 0, 0, NULL };\r
+                       if (FMOD_OK == chan->getReverbProperties(&reverb))\r
+                       {\r
+                               reverb.Room = -10000;\r
+@@ -1809,7 +1814,7 @@
+               }\r
+               if (flags & SNDF_NOREVERB)\r
+               {\r
+-                      FMOD_REVERB_CHANNELPROPERTIES reverb = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };\r
++                      FMOD_REVERB_CHANNELPROPERTIES reverb = { 0, 0, 0, NULL };\r
+                       if (FMOD_OK == chan->getReverbProperties(&reverb))\r
+                       {\r
+                               reverb.Room = -10000;\r
index 7f05d446b671bde9e4eecf7bdefe010170cfe1ea..3bacdfa10463d28b34ad445a31778ca4ea26b0bc 100644 (file)
@@ -33,6 +33,7 @@ src_prepare() {
                -e "s:/usr/local/share/:${GAMES_DATADIR}/doom-data/:" \
                src/sdl/i_system.h || die
        epatch "${FILESDIR}/${PN}-respect-fluidsynth-useflag.patch"
+       epatch "${FILESDIR}/${P}-fix-new-fmod.patch"
 }
 
 src_configure() {
index 6e28673c7551b49d3f9c400706af0b2c73b59f80..02816d6b15b780546d94cc700c1d1e0a1ffda803 100644 (file)
@@ -34,6 +34,7 @@ src_prepare() {
                -e "s:/usr/local/share/:${GAMES_DATADIR}/doom-data/:" \
                src/sdl/i_system.h || die
        epatch "${FILESDIR}/${PN}-respect-fluidsynth-useflag.patch"
+       epatch "${FILESDIR}/${P}-fix-new-fmod.patch"
 }
 
 src_configure() {