Browse Source

Also test source pitch is positive and clarify error (resolves #1474)

According to the OpenAL 1.1 specification AL_PITCH, values must be in the range (0.0f, any]. Though I guess any does not include infinity.
Bart van Strien 6 years ago
parent
commit
00e7d640c7
1 changed files with 4 additions and 3 deletions
  1. 4 3
      src/modules/audio/wrap_Source.cpp

+ 4 - 3
src/modules/audio/wrap_Source.cpp

@@ -71,10 +71,11 @@ int w_Source_setPitch(lua_State *L)
 {
 	Source *t = luax_checksource(L, 1);
 	float p = (float)luaL_checknumber(L, 2);
+	if (p != p)
+		return luaL_error(L, "Pitch cannot be NaN.");
 	if (p > std::numeric_limits<lua_Number>::max() ||
-			p < std::numeric_limits<lua_Number>::min() ||
-			p != p)
-		return luaL_error(L, "Pitch has to be finite and not NaN.");
+			p <= 0.0f)
+		return luaL_error(L, "Pitch has to be non-zero, positive, finite number.");
 	t->setPitch(p);
 	return 0;
 }