1 /* 2 * Copyright 2012 Sebastian Annies, 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 package com.coremedia.iso; 17 18 import java.io.IOException; 19 import java.nio.ByteBuffer; 20 21 public final class IsoTypeWriterVariable { 22 write(long v, ByteBuffer bb, int bytes)23 public static void write(long v, ByteBuffer bb, int bytes) { 24 switch (bytes) { 25 case 1: 26 IsoTypeWriter.writeUInt8(bb, (int) (v & 0xff)); 27 break; 28 case 2: 29 IsoTypeWriter.writeUInt16(bb, (int) (v & 0xffff)); 30 break; 31 case 3: 32 IsoTypeWriter.writeUInt24(bb, (int) (v & 0xffffff)); 33 break; 34 case 4: 35 IsoTypeWriter.writeUInt32(bb, v); 36 break; 37 case 8: 38 IsoTypeWriter.writeUInt64(bb, v); 39 break; 40 default: 41 throw new RuntimeException("I don't know how to read " + bytes + " bytes"); 42 } 43 44 } 45 } 46