package net.mkonrad.synes.data;

import javax.vecmath.Color3f;
import javax.vecmath.Point3f;
import javax.vecmath.Vector3f;

import net.mkonrad.synes.gui.elements.instruments.InstrumentShape;

public interface Instrument
{ 
  public boolean needsKeyboard();
  
  public int getKey();
  public void setKey(int key);
  
  public String getName();
  
  public Color3f getColor();
  public void setColor(Color3f color);
  
  public String getTexture();
  public void setTexture(String tex);
  
  public String getIcon();
  
  public InstrumentShape createInstrumentShape(SynthObj synthData, Point3f pos);
  
  public String[] getSynthArgs();
  public float[] getAllSynthValues(SynthObj synthData);
  public float getValueForArg(String argName, SynthObj synthData);
  public String[] getModArgs();
}
