loupiottes/DMX-2.0/Conduite.cs
2013-04-08 15:27:18 +00:00

128 lines
1.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Diagnostics;
namespace DMX2
{
public class Conduite
{
public Conduite()
{
}
List<Circuit> circuits = new List<Circuit>();
public List<Circuit> Circuits {
get {
return circuits;
}
private set {
circuits = value;
}
}
Dictionary<string, Sequenceur> sequenceurs= new Dictionary<string, Sequenceur>();
public Dictionary<string, Sequenceur> Sequenceurs {
get {
return sequenceurs;
}
private set {
sequenceurs = value;
}
}
List<UniversDMX> univers;
public List<UniversDMX> 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 ();
}
}
}
}
}