En este ejemplo de programa HOST se pinta el valor normalizado de volumen captado por el micro. Cuando este valor es mayor que 0.4, se pinta “gritando”.
Fichero displays.xml
<xml> <virtualDisplay width="3840" height="768"> <display id="1" x="0" y="0" width="1280" height="768" /> <display id="2" x="1280" y="0" width="1280" height="768" /> <display id="3" x="2560" y="0" width="1280" height="768" /> </virtualDisplay> </xml>
Fichero TUIML.xml <juguemos> <token name="micro"> <constraint name="todo" type= "1D" list_vertex="0.01,1"> <tac subtoken="1"/> </constraint> <constraint name="gritar" type= "1D" list_vertex="0.5,0.9"> <tac subtoken="1"/> </constraint> <subtoken idG = "1"/> </token> </juguemos>
Codigo Host en Proccessing
int ANCHO=3740; int ALTO=768; boolean status = true; float valorVol = 0; DisplaysHost displaysClient; TACAPI miAPI; void setup() { // Keystone will only work with P3D or OPENGL renderers, // since it relies on texture mapping to deform //fullScreen( P3D); size(300, 200, P3D); frameRate(16); miAPI = new TACAPI(); //virtual screens displaysClient = new DisplaysHost("host"); } void draw() { displaysClient.beginDraw(); background(0); textSize(24); displaysClient.escribir("valorGrito: " + valorVol,1500,200,100,255,100,150,255); if (valorVol>0.4) displaysClient.escribir("GRITANDO",1525,300,100,255,100,150,255); displaysClient.endDraw(); } void eventoTAC(TAC ta) { if(ta.getManipulacion().equals("move") && ta.getSubtokenName().equals("1")) { valorVol = ta.getValores().get(0); } } void mensajeRecibido(OscMessage theOscMessage){ } void keyPressed() { switch(key) { case ESC: displaysClient.disconnect(); super.stop(); break; } }
Retos de aprendizaje
Documentación
- escribir
Este método permite escribir texto de tamaño y color solicitados. Los parámetros que recibe este método son los siguientes:
String texto: texto que se desea escribir en pantalla.
float x: posición de la esquina superior izquierda del texto en el eje X (2D).
float y: posición de la esquina superior izquierda del texto en el eje Y (2D).
int tamagno: tamaño del texto que se escribirá en pantalla.
int r: valor de la componente rojo del color con el que se escribirá el texto. Valores: 0-255.
int g: valor de la componente verde del color con el que se escribirá el texto. Valores: 0-255.
int b: valor de la componente azul del color con el que se escribirá el texto. Valores: 0-255.
int alpha: opacidad del texto a escribir. Valores: 0 (transparente) – 255 (opaco).
- Clase TAC
A continuación se presenta la clase TAC con sus diversas funciones:
ATRIBUTOS
String tokenName: Token al que pertenece el tac. Si el token es un sensor, <tokenName> es el nombre del sensor (tabletop, kinect…). Si el token es un objeto con áreas asociadas, <tokenName> = idG_Objeto + “_” + idS_Objeto
String consName: Nombre del constraint
String manipulación: Valor: “add”
String idG: id general del subtoken
String idS: id de sesión del subtoken
String idSToken: id de sesión del Token. Si el Token es un sensor y no un objeto, su valor es “–”.
ArrayList<Float> valores: 1 valor
MÉTODOS
String getTokenName() // devuelve el nombre del token
String getManipulacion() // devuelve la manipulacion
ArrayList<Float> getValores() //devuelve la lista de valores: 1 valor (0 = remove, 1 = add)
String getConstraintName() // devuelve el nombre del constraint
String getSubtokenName() // devuelve el ID general
String getSubtokenIDS() // devuelve el ID de sesión
String getIDSToken() // devuelve el ID de sesión del Token
void info() // escribe por pantalla la información del TAC