public ChannelLabel[] getLabels() { ChannelBox channelBox = Box.findFirst(this, ChannelBox.class, "chan"); if (channelBox != null) { Label[] labels = ChannelUtils.getLabels(channelBox); if (channelCount == 2) return translate(translationStereo, labels); else return translate(translationSurround, labels); } else { switch (channelCount) { case 1: return new ChannelLabel[] {ChannelLabel.MONO}; case 2: return new ChannelLabel[] {ChannelLabel.STEREO_LEFT, ChannelLabel.STEREO_RIGHT}; case 6: return new ChannelLabel[] { ChannelLabel.FRONT_LEFT, ChannelLabel.FRONT_RIGHT, ChannelLabel.CENTER, ChannelLabel.LFE, ChannelLabel.REAR_LEFT, ChannelLabel.REAR_RIGHT }; default: ChannelLabel[] lbl = new ChannelLabel[channelCount]; Arrays.fill(lbl, ChannelLabel.MONO); return lbl; } } }
public Endian getEndian() { EndianBox endianBox = Box.findFirst(this, EndianBox.class, WaveExtension.fourcc(), EndianBox.fourcc()); if (endianBox == null) { if ("twos".equals(header.getFourcc())) return Endian.BIG_ENDIAN; else if ("lpcm".equals(header.getFourcc())) return (lpcmFlags & kAudioFormatFlagIsBigEndian) != 0 ? Endian.BIG_ENDIAN : Endian.LITTLE_ENDIAN; else if ("sowt".equals(header.getFourcc())) return Endian.LITTLE_ENDIAN; else return Endian.BIG_ENDIAN; } return endianBox.getEndian(); }