1 /* 2 * Copyright 2008 CoreMedia AG, Hamburg 3 * 4 * Licensed under the Apache License, Version 2.0 (the License); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an AS IS BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.coremedia.iso.boxes; 18 19 import com.coremedia.iso.IsoTypeReader; 20 import com.coremedia.iso.IsoTypeWriter; 21 22 import java.nio.ByteBuffer; 23 24 public class SoundMediaHeaderBox extends AbstractMediaHeaderBox { 25 26 public static final String TYPE = "smhd"; 27 private float balance; 28 SoundMediaHeaderBox()29 public SoundMediaHeaderBox() { 30 super(TYPE); 31 } 32 getBalance()33 public float getBalance() { 34 return balance; 35 } 36 getContentSize()37 protected long getContentSize() { 38 return 8; 39 } 40 41 @Override _parseDetails(ByteBuffer content)42 public void _parseDetails(ByteBuffer content) { 43 parseVersionAndFlags(content); 44 balance = IsoTypeReader.readFixedPoint88(content); 45 IsoTypeReader.readUInt16(content); 46 } 47 48 @Override getContent(ByteBuffer byteBuffer)49 protected void getContent(ByteBuffer byteBuffer) { 50 writeVersionAndFlags(byteBuffer); 51 IsoTypeWriter.writeFixedPont88(byteBuffer, balance); 52 IsoTypeWriter.writeUInt16(byteBuffer, 0); 53 } 54 toString()55 public String toString() { 56 return "SoundMediaHeaderBox[balance=" + getBalance() + "]"; 57 } 58 } 59