Micro

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