Relax circular layout requirement

This commit is contained in:
Chris Robinson
2010-03-20 00:54:44 -07:00
parent 2235a53824
commit eea23a012a
2 changed files with 23 additions and 9 deletions
+21 -5
View File
@@ -188,13 +188,29 @@ static ALvoid SetSpeakerArrangement(const char *name, ALfloat SpeakerAngle[OUTPU
}
}
for(i = 1;i < chans;i++)
for(i = 0;i < chans;i++)
{
if(SpeakerAngle[i] <= SpeakerAngle[i-1])
int min = i;
int i2;
for(i2 = i+1;i2 < chans;i2++)
{
AL_PRINT("Speaker %d of %d does not follow previous: %f > %f\n", i, chans,
SpeakerAngle[i-1] * 180.0f/M_PI, SpeakerAngle[i] * 180.0f/M_PI);
SpeakerAngle[i] = SpeakerAngle[i-1] + 1 * M_PI/180.0f;
if(SpeakerAngle[i2] < SpeakerAngle[min])
min = i2;
}
if(min != i)
{
ALfloat tmpf;
ALint tmpi;
tmpf = SpeakerAngle[i];
SpeakerAngle[i] = SpeakerAngle[min];
SpeakerAngle[min] = tmpf;
tmpi = Speaker2Chan[i];
Speaker2Chan[i] = Speaker2Chan[min];
Speaker2Chan[min] = tmpi;
}
}
}
+2 -4
View File
@@ -132,10 +132,8 @@
## layout_STEREO:
# Sets the speaker layout when using stereo output. Values are specified in
# degrees, where 0 is straight in front, negative goes left, and positive goes
# right. The values must define a circular pattern, starting with the back-
# left at the most negative, around the front to back-center. Unspecified
# speakers will remain at their default position. Available speakers are
# front-left(fl) and front-right(fr).
# right. Unspecified speakers will remain at their default position. Available
# speakers are front-left(fl) and front-right(fr).
#layout_STEREO = fl=-90, fr=90
## laytout_QUAD: