public static Label[] getLabelsFromSampleEntry(AudioSampleEntry se) {
ChannelBox channel = NodeBox.findFirst(se, ChannelBox.class, "chan");
if (channel != null)
return getLabelsFromChan(channel);
else {
short channelCount = se.getChannelCount();
switch (channelCount) {
case 1:
return new Label[] { Label.Mono };
case 2:
return new Label[] { Label.Left, Label.Right };
case 3:
return new Label[] { Label.Left, Label.Right, Label.Center };
case 4:
return new Label[] { Label.Left, Label.Right, Label.LeftSurround, Label.RightSurround };
case 5:
return new Label[] { Label.Left, Label.Right, Label.Center, Label.LeftSurround, Label.RightSurround };
case 6:
return new Label[] { Label.Left, Label.Right, Label.Center, Label.LFEScreen, Label.LeftSurround,
Label.RightSurround };
default:
Label[] res = new Label[channelCount];
Arrays.fill(res, Label.Mono);
return res;
}
}
}