using System; using System.Collections.Generic; using System.Diagnostics; namespace DMX2 { public class Conduite { public Conduite() { } List circuits = new List(); public List Circuits { get { return circuits; } private set { circuits = value; } } Dictionary sequenceurs= new Dictionary(); public Dictionary Sequenceurs { get { return sequenceurs; } private set { sequenceurs = value; } } List univers; public List Patch { get { return univers; } private set { univers = value; } } } public abstract class Sequenceur { } public class Circuit { string name; public string Name { get { return name; } set { name = value; } } int _curval; public int ValeurCourante { get { return _curval; } set { _curval = value; } } } public class UniversDMX { Grada[] _gradas = new Grada[512]; public enum FTransfer { lineaire, log, exp } public struct Grada { public Circuit circuitAssocié; public FTransfer fonctionTransfert; public float param1; // Paramètres pour fonction de transfert public float param2; } public Grada[] Gradas { get { return _gradas; } } public void CalculUnivers(int[] valeurs) { Grada g; Debug.Assert(valeurs.Length == _gradas.Length); for(int i = 0 ; i<512; i++) { g= _gradas[i]; switch (g.fonctionTransfert) { case FTransfer.lineaire: valeurs[i] = g.circuitAssocié.ValeurCourante; break; case FTransfer.log: break; case FTransfer.exp: break; default: throw new ArgumentOutOfRangeException (); } } } } }