/* * myLib - https://github.com/taktod/myLib * Copyright (c) 2014 ttProject. All rights reserved. * * Licensed under The MIT license. */ package com.ttProject.frame.speex.sub; import java.util.ArrayList; import java.util.List; import com.ttProject.unit.extra.Bit; import com.ttProject.unit.extra.BitLoader; import com.ttProject.unit.extra.bit.Bit1; import com.ttProject.unit.extra.bit.Bit2; import com.ttProject.unit.extra.bit.Bit3; import com.ttProject.unit.extra.bit.Bit4; import com.ttProject.unit.extra.bit.Bit5; import com.ttProject.unit.extra.bit.Bit6; import com.ttProject.unit.extra.bit.Bit7; import com.ttProject.unit.extra.bit.Bit8; /** * WideUnit * @author taktod */ public class WideUnit extends SubUnit { public static int[] bitSizeList = {4, 36, 112, 192, 352}; private Bit3 modeId = new Bit3(); private List<Bit> bitList = new ArrayList<Bit>(); private int size = 4; /** * constructor */ public WideUnit() { bitList.add(new Bit1(1)); } @Override public void load(BitLoader loader) throws Exception { // first, load modeId loader.load(modeId); bitList.add(modeId); size = bitSizeList[modeId.get()]; int left = size - 4; while(left > 0) { Bit bit = null; switch(left) { case 1:bit = new Bit1();left -= 1;break; case 2:bit = new Bit2();left -= 2;break; case 3:bit = new Bit3();left -= 3;break; case 4:bit = new Bit4();left -= 4;break; case 5:bit = new Bit5();left -= 5;break; case 6:bit = new Bit6();left -= 6;break; case 7:bit = new Bit7();left -= 7;break; default: bit = new Bit8(); left -= 8; break; } loader.load(bit); bitList.add(bit); } } @Override public int getBitCount() { return size; } @Override public List<Bit> getBitList() { return bitList; } }