package com.csound.wizard.layout;
import java.util.ArrayList;
import java.util.List;
import android.view.View;
import com.csound.wizard.Const;
import com.csound.wizard.layout.SetLayoutParam.LayoutParent;
import com.csound.wizard.layout.param.Param;
import com.csound.wizard.layout.unit.Button;
import com.csound.wizard.layout.unit.Chess;
import com.csound.wizard.layout.unit.Empty;
import com.csound.wizard.layout.unit.Hor;
import com.csound.wizard.layout.unit.HorRadio;
import com.csound.wizard.layout.unit.HorScroll;
import com.csound.wizard.layout.unit.Ints;
import com.csound.wizard.layout.unit.Knob;
import com.csound.wizard.layout.unit.Line;
import com.csound.wizard.layout.unit.Multitouch;
import com.csound.wizard.layout.unit.MultitouchChess;
import com.csound.wizard.layout.unit.MultitouchX;
import com.csound.wizard.layout.unit.MultitouchY;
import com.csound.wizard.layout.unit.Names;
import com.csound.wizard.layout.unit.Options;
import com.csound.wizard.layout.unit.OutKnob;
import com.csound.wizard.layout.unit.OutMeter;
import com.csound.wizard.layout.unit.OutMeterCenter;
import com.csound.wizard.layout.unit.OutMeterDial;
import com.csound.wizard.layout.unit.OutMeterDialCenter;
import com.csound.wizard.layout.unit.OutPlane;
import com.csound.wizard.layout.unit.OutRainbowCircle;
import com.csound.wizard.layout.unit.OutSlider;
import com.csound.wizard.layout.unit.Plane;
import com.csound.wizard.layout.unit.PlaneX;
import com.csound.wizard.layout.unit.PlaneY;
import com.csound.wizard.layout.unit.ShowFloats;
import com.csound.wizard.layout.unit.ShowInts;
import com.csound.wizard.layout.unit.ShowNames;
import com.csound.wizard.layout.unit.Slider;
import com.csound.wizard.layout.unit.SpinnerUnit;
import com.csound.wizard.layout.unit.Table;
import com.csound.wizard.layout.unit.Tabs;
import com.csound.wizard.layout.unit.Tap;
import com.csound.wizard.layout.unit.TapClick;
import com.csound.wizard.layout.unit.TapToggle;
import com.csound.wizard.layout.unit.Toggle;
import com.csound.wizard.layout.unit.Ver;
import com.csound.wizard.layout.unit.VerRadio;
import com.csound.wizard.layout.unit.VerScroll;
import com.csound.wizard.model.TrackState;
public class Units {
public interface Unit {
public String getTag();
public View getView(LayoutContext ctx, Object tagValue, Param currentParams, Param defaultParams,
TrackState trackState, LayoutParent layoutParent);
}
public interface StatefulUnit {
public String getUnitId();
public double[] getUnitState();
}
public static final String[] arrayUnits = {
Const.HOR, Const.VER, Const.HOR_SCROLL, Const.VER_SCROLL, Const.TABLE
};
public static final String[] objectArrayUnits = {
Const.OPTIONS, Const.TABS
};
public static final String[] singletonArrayUnits = {
Const.HOR, Const.VER, Const.HOR_SCROLL, Const.VER_SCROLL
};
public static List<Unit> units;
static {
units = new ArrayList<Unit>();
units.add(new Button());
units.add(new Chess());
units.add(new Knob());
units.add(new Plane());
units.add(new PlaneX());
units.add(new PlaneY());
units.add(new HorRadio());
units.add(new VerRadio());
units.add(new Slider());
units.add(new Multitouch());
units.add(new MultitouchX());
units.add(new MultitouchY());
units.add(new MultitouchChess());
units.add(new Tap());
units.add(new TapClick());
units.add(new TapToggle());
units.add(new Toggle());
units.add(new SpinnerUnit());
units.add(new Ints());
units.add(new Names());
// groups
units.add(new Table());
units.add(new Tabs());
units.add(new Empty());
units.add(new Options());
units.add(new Hor());
units.add(new Ver());
units.add(new HorScroll());
units.add(new VerScroll());
units.add(new Line());
// Outputs
units.add(new OutRainbowCircle());
units.add(new OutMeter());
units.add(new OutMeterCenter());
units.add(new OutMeterDial());
units.add(new OutMeterDialCenter());
units.add(new ShowNames());
units.add(new ShowInts());
units.add(new ShowFloats());
units.add(new OutSlider());
units.add(new OutKnob());
units.add(new OutPlane());
}
}