bueno, ya encontré en el código como hacer eso, pero se puede hacer que solo unos botones, por ejemplo los del shifter 2 sean toggle, y los de los demas bancos sean normales?
Si! Se puede, creo que con alguno de los del TCMIDI#2 lo hicimos, pero no puedo recordar con quien... de todas formas, podemos probar a distancia.
La idea sería, encontrar en qué parte del código se verifica si el es o no un shifter, y cambiar su comportamiento según el shifter.
Eso se encuentra en la función LeerEntradas() (aprox linea 529), donde está el siguiente código:
Este código se encuentra en una zona a la que sólo se accede cuando se suelta un botón, es decir cuando pasa de "presionado" a "no presionado".
Vemos hay un "if" al que se entra sólo si el botón que se soltó es un shifter, esto lo logramos con la función EsShifter(canal). Esa función devuelve 0, si el botón no es un shifter, pero si lo es, devuelve qué número de shifter se presionó (1, 2, 3 o 4). Con el programa así como está, no usamos esa información, ya que solo nos interesa si es o no es un shifter, pero podemos cambiarlo para saber cuál es ese shifter.
Luego, hay una comprobación, por la etiqueta TOGGLE_SHIFTERS, que seguramente es la que descomentaste arriba para lograr que tus shifters se comporten con el modo TOGGLE.
El programa se fija si esa etiqueta no existe, quiere decir que al soltar el shifter, debemos cambiar el banco al original. Recordá que el modo TOGGLE, cambia el banco al presionar nuevamente el botón, mientras que el modo normal, lo cambia al presionar el botón, y al soltarlo, vuelve al banco original.
Por lo tanto, sabiendo que shifter se presionó, podemos verificar para ese shifter (o no) si el modo toggle está activado.
Eso se lograría con el siguiente código, en reemplazo del código anterior borrando lo anterior y poniendo este código en su lugar). Con este código, los shifters 3 y 4 nunca serían TOGGLE, y los shifters 1 y 2, si definís la etiqueta TOGGLE_SHIFTERS, sí lo serían.
Comments