using System; using System.Collections.Generic; using System.Diagnostics; using System.Collections.ObjectModel; namespace DMX2 { public class Conduite : IComparer, IDisposable { public static Conduite Courante = null; public Conduite() { } List circuits = new List(); public ReadOnlyCollection Circuits { get { return circuits.AsReadOnly(); } } public Circuit NouveauCircuit () { lock (this) { Circuit c = new Circuit (); circuits.Add (c); return c; } } public void SupprimeCircuit (Circuit c) { lock (this) { circuits.Remove (c); } } string _name; public string Name { get { return _name; } set { _name = value; } } int IComparer.Compare (Circuit x, Circuit y) { return Conduite.Courante.circuits.IndexOf(x) - Conduite.Courante.circuits.IndexOf(y); } List sequenceurs= new List(); public ReadOnlyCollection Sequenceurs { get { return sequenceurs.AsReadOnly(); } } List univers; public List Patch { get { return univers; } } public void Dispose() { disposed=true; // stop thread if running } #region IDisposable implementation bool disposed=false; void IDisposable.Dispose () { if(!disposed) Dispose(); } #endregion } public class Circuit { static int maxid=1; string name; public Circuit() { id=maxid++; Name = "Circuit n°" + id.ToString(); } public string Name { get { return name; } set { name = value; } } int id; public int ID { get { return id; } } int _curval; public int ValeurCourante { get { return _curval; } set { _curval = value; } } } }