summaryrefslogtreecommitdiff
blob: 813a2811157663a44195f4d0dd6f4a8682b9d217 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
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
 #endif
 
+#if FMOD_VERSION < 0x43702
+#define FMOD_INIT_HRTF_LOWPASS FMOD_INIT_SOFTWARE_HRTF
+#endif
+
 // TYPES -------------------------------------------------------------------
 
 struct FEnumList
@@ -348,7 +352,7 @@
 		Channel->setSpeakerMix(1, 1, 1, 1, 1, 1, 1, 1);
 		Channel->setVolume(volume);
 		// Ensure reverb is disabled.
-		FMOD_REVERB_CHANNELPROPERTIES reverb = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
+		FMOD_REVERB_CHANNELPROPERTIES reverb = { 0, 0, 0, NULL};
 		if (FMOD_OK == Channel->getReverbProperties(&reverb))
 		{
 			reverb.Room = -10000;
@@ -842,7 +846,7 @@
 		result = Sys->setDriver(driver);
 	}
 	result = Sys->getDriver(&driver);
-	result = Sys->getDriverCaps(driver, &Driver_Caps, &Driver_MinFrequency, &Driver_MaxFrequency, &speakermode);
+	result = Sys->getDriverCaps(driver, &Driver_Caps, &Driver_MaxFrequency, &speakermode);
 	if (result != FMOD_OK)
 	{
 		Printf(TEXTCOLOR_BLUE"Could not ascertain driver capabilities. Some things may be weird. (Error %d)\n", result);
@@ -922,7 +926,7 @@
 	initflags = FMOD_INIT_NORMAL;
 	if (snd_hrtf)
 	{
-		initflags |= FMOD_INIT_SOFTWARE_HRTF;
+		initflags |= FMOD_INIT_HRTF_LOWPASS;
 	}
 	if (snd_profile)
 	{
@@ -1014,7 +1018,7 @@
 	}
 	else
 	{
-		result = Sys->createDSPByType(FMOD_DSP_TYPE_REVERB, &WaterReverb);
+		result = Sys->createDSPByType(FMOD_DSP_TYPE_SFXREVERB, &WaterReverb);
 		if (result != FMOD_OK)
 		{
 			Printf(TEXTCOLOR_BLUE"  Could not create underwater reverb unit. (Error %d)\n", result);
@@ -1081,8 +1085,8 @@
 								result = sfx_head->addInput(WaterReverb, NULL);
 								if (result == FMOD_OK)
 								{
-									WaterReverb->setParameter(FMOD_DSP_REVERB_ROOMSIZE, 0.001f);
-									WaterReverb->setParameter(FMOD_DSP_REVERB_DAMP, 0.2f);
+									//WaterReverb->setParameter(FMOD_DSP_REVERB_ROOMSIZE, 0.001f);
+									//WaterReverb->setParameter(FMOD_DSP_REVERB_DAMP, 0.2f);
 									WaterReverb->setActive(false);
 								}
 							}
@@ -1233,7 +1237,7 @@
 		Printf ("Driver: "TEXTCOLOR_GREEN"%d"TEXTCOLOR_NORMAL" ("TEXTCOLOR_ORANGE"%s"TEXTCOLOR_NORMAL")\n", driver, name);
 		DumpDriverCaps(Driver_Caps, Driver_MinFrequency, Driver_MaxFrequency);
 	}
-	if (FMOD_OK == Sys->getHardwareChannels(&num2d, &num3d, &total))
+	if (FMOD_OK == Sys->getHardwareChannels(&total))
 	{
 		Printf (TEXTCOLOR_YELLOW "Hardware 2D channels: "TEXTCOLOR_GREEN"%d\n", num2d);
 		Printf (TEXTCOLOR_YELLOW "Hardware 3D channels: "TEXTCOLOR_GREEN"%d\n", num3d);
@@ -1276,6 +1280,7 @@
 	{
 		Printf("\n");
 	}
+	/*
 	if (caps & FMOD_CAPS_REVERB_EAX2)				Printf(TEXTCOLOR_OLIVE "   EAX2");
 	if (caps & FMOD_CAPS_REVERB_EAX3)				Printf(TEXTCOLOR_OLIVE "   EAX3");
 	if (caps & FMOD_CAPS_REVERB_EAX4)				Printf(TEXTCOLOR_OLIVE "   EAX4");
@@ -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))
 	{
 		Printf("\n");
-	}
+	}*/
 	if (caps & FMOD_CAPS_REVERB_LIMITED)			Printf("TEXTCOLOR_OLIVE    Limited reverb\n");
 }
 
@@ -1689,7 +1694,7 @@
 		}
 		if (flags & SNDF_NOREVERB)
 		{
-			FMOD_REVERB_CHANNELPROPERTIES reverb = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
+			FMOD_REVERB_CHANNELPROPERTIES reverb = { 0, 0, 0, NULL };
 			if (FMOD_OK == chan->getReverbProperties(&reverb))
 			{
 				reverb.Room = -10000;
@@ -1809,7 +1814,7 @@
 		}
 		if (flags & SNDF_NOREVERB)
 		{
-			FMOD_REVERB_CHANNELPROPERTIES reverb = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
+			FMOD_REVERB_CHANNELPROPERTIES reverb = { 0, 0, 0, NULL };
 			if (FMOD_OK == chan->getReverbProperties(&reverb))
 			{
 				reverb.Room = -10000;