loupiottes/DMX-2.0/Conduite.cs
2013-04-10 18:08:26 +00:00

145 lines
1.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Collections.ObjectModel;
namespace DMX2
{
public class Conduite : IComparer<Circuit>, IDisposable
{
public static Conduite Courante = null;
public Conduite()
{
}
List<Circuit> circuits = new List<Circuit>();
public ReadOnlyCollection<Circuit> 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<Circuit>.Compare (Circuit x, Circuit y)
{
return Conduite.Courante.circuits.IndexOf(x) -
Conduite.Courante.circuits.IndexOf(y);
}
List<Sequenceur> sequenceurs= new List<Sequenceur>();
public ReadOnlyCollection<Sequenceur> Sequenceurs {
get {
return sequenceurs.AsReadOnly();
}
}
public void AjoutSequenceur (Sequenceur seq)
{
lock (this) {
sequenceurs.Add(seq);
}
}
List<UniversDMX> univers;
public List<UniversDMX> 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;
}
}
}
}