예제 #1
0
 public void AddMessage(string receiverName, float value)
 {
     Hv_metronome_AudioLib.FloatMessage msg = new Hv_metronome_AudioLib.FloatMessage(receiverName, value);
     lock (_msgQueueSync) {
         _msgQueue.Enqueue(msg);
     }
 }
예제 #2
0
    void UpdateMetronome(Hv_metronome_AudioLib.FloatMessage mes)
    {
        switch (mes.receiverName)
        {
        case "metroMesureCount":

            int nouvelleMesure = (int)mes.value;

            //TODO: on devrait pas avoir à checker si la mesure est nouvelle, pourtant on reçoit deux fois l'évènement...
            if (nouvelleMesure > this.metroMesureCount)
            {
                //enregistre la nouvelle valeur
                this.metroMesureCount = nouvelleMesure;

                //préviens les objets enregistrés
                foreach (EnregistrementMesure obj in this.enregistrementsMesure)
                {
                    obj.ChangementDeMesure();
                }
            }

            break;

        case "periodeNoire":
            //enregistre la nouvelle valeur
            this.periodeNoire = mes.value;
            //préviens les objets enregistrés
            foreach (EnregistrementPeriodeNoire obj in this.enregistrementsPeriodeNoire)
            {
                obj.ChangementDePeriodeNoire(this.periodeNoire);
            }

            break;

        case "staticNoire":
            //enregistre la nouvelle valeur
            this.staticNoire = (int)mes.value;
            //préviens les objets enregistrés
            foreach (EnregistrementStaticNoire obj in this.enregistrementsStaticNoire)
            {
                obj.ChangementDeStaticNoire(this.staticNoire);
                Debug.Log("metro " + this.staticNoire);
            }
            break;

        case "staticMesure":
            this.staticMesure = (int)mes.value;
            break;

        default:
            break;
        }
    }