This commit is contained in:
parent
d897ecc4ab
commit
ddbc724475
2 changed files with 109 additions and 112 deletions
|
|
@ -1,20 +1,12 @@
|
|||
<Properties>
|
||||
<MonoDevelop.Ide.Workspace ActiveConfiguration="Debug|x86" />
|
||||
<MonoDevelop.Ide.Workbench ActiveDocument="DMX-2.0/SeqLinUI.cs">
|
||||
<MonoDevelop.Ide.Workbench ActiveDocument="DMX-2.0/SequenceurLineaire.cs">
|
||||
<Files>
|
||||
<File FileName="DMX-2.0/Conduite.cs" Line="40" Column="23" />
|
||||
<File FileName="DMX-2.0/AssemblyInfo.cs" Line="1" Column="1" />
|
||||
<File FileName="DMX-2.0/UniversDMX.cs" Line="20" Column="13" />
|
||||
<File FileName="DMX-2.0/SeqLinUI.cs" Line="127" Column="4" />
|
||||
<File FileName="DMX-2.0/MainWindow.cs" Line="98" Column="47" />
|
||||
<File FileName="DMX-2.0/SequenceurLineaire.cs" Line="69" Column="22" />
|
||||
<File FileName="DMX-2.0/Conduite.cs" Line="29" Column="17" />
|
||||
<File FileName="DMX-2.0/Sequenceur.cs" Line="42" Column="4" />
|
||||
<File FileName="DMX-2.0/SequenceurLineaire.cs" Line="9" Column="3" />
|
||||
<File FileName="DMX-2.0/IDriverDMX.cs" Line="13" Column="1" />
|
||||
<File FileName="DMX-2.0/Main.cs" Line="17" Column="4" />
|
||||
<File FileName="DMX-2.0/MainWindow.cs" Line="74" Column="4" />
|
||||
<File FileName="DMX-2.0/SeqLinUI.cs" Line="38" Column="4" />
|
||||
<File FileName="DMX-2.0/SequenceurUI.cs" Line="21" Column="3" />
|
||||
<File FileName="DMX-2.0.sln" Line="4" Column="89" />
|
||||
<File FileName="DMX-2.0/SelSeqCircuits.cs" Line="16" Column="18" />
|
||||
<File FileName="DMX-2.0/GestionCircuits.cs" Line="104" Column="33" />
|
||||
</Files>
|
||||
</MonoDevelop.Ide.Workbench>
|
||||
<MonoDevelop.Ide.DebuggingService.Breakpoints>
|
||||
|
|
|
|||
|
|
@ -6,25 +6,19 @@ namespace DMX2
|
|||
{
|
||||
public class SequenceurLineaire : Sequenceur
|
||||
{
|
||||
|
||||
TimeSpan timeStamp = TimeSpan.Zero;
|
||||
|
||||
public TimeSpan TimeStamp {
|
||||
get {
|
||||
return timeStamp;
|
||||
}
|
||||
}
|
||||
|
||||
public class Effet {
|
||||
public class Effet
|
||||
{
|
||||
|
||||
string _nom;
|
||||
public Effet(string nom, Dictionary<Circuit,int> valeurs, TimeSpan duree, TimeSpan transition)
|
||||
|
||||
public Effet (string nom, Dictionary<Circuit,int> valeurs, TimeSpan duree, TimeSpan transition)
|
||||
{
|
||||
_nom=nom;
|
||||
_valeurs = new Dictionary<Circuit, int>(valeurs);
|
||||
_duree=duree;
|
||||
_transition=transition;
|
||||
_nom = nom;
|
||||
_valeurs = new Dictionary<Circuit, int> (valeurs);
|
||||
_duree = duree;
|
||||
_transition = transition;
|
||||
}
|
||||
|
||||
public string Nom {
|
||||
get {
|
||||
return _nom;
|
||||
|
|
@ -32,23 +26,29 @@ namespace DMX2
|
|||
}
|
||||
|
||||
Dictionary<Circuit,int> _valeurs;
|
||||
|
||||
public int this [Circuit index] {
|
||||
get {
|
||||
if(!_valeurs.ContainsKey(index))
|
||||
_valeurs.Add(index,0);
|
||||
return _valeurs[index];
|
||||
if (!_valeurs.ContainsKey (index))
|
||||
_valeurs.Add (index, 0);
|
||||
return _valeurs [index];
|
||||
}
|
||||
}
|
||||
public void RetireCircuit(Circuit c){
|
||||
_valeurs.Remove(c);
|
||||
|
||||
public void RetireCircuit (Circuit c)
|
||||
{
|
||||
_valeurs.Remove (c);
|
||||
}
|
||||
TimeSpan _duree =TimeSpan.Zero ;
|
||||
|
||||
TimeSpan _duree = TimeSpan.Zero ;
|
||||
TimeSpan _transition = TimeSpan.Zero;
|
||||
|
||||
public TimeSpan Duree {
|
||||
get {
|
||||
return _duree;
|
||||
}
|
||||
}
|
||||
|
||||
public TimeSpan Transition {
|
||||
get {
|
||||
return _transition;
|
||||
|
|
@ -58,64 +58,15 @@ namespace DMX2
|
|||
|
||||
}
|
||||
|
||||
List<Circuit> circuitsSeq = new List<Circuit>();
|
||||
|
||||
public ReadOnlyCollection<Circuit> Circuits {
|
||||
get {
|
||||
return circuitsSeq.AsReadOnly();
|
||||
}
|
||||
}
|
||||
|
||||
public void ChangeCircuits (System.Collections.Generic.List<Circuit> list)
|
||||
{
|
||||
foreach (var c in circuitsSeq.ToArray()) {
|
||||
if(!list.Contains(c))
|
||||
RetireCircuit(c);
|
||||
}
|
||||
foreach(var c in list)
|
||||
if(!circuitsSeq.Contains(c))
|
||||
AjouteCircuit(c);
|
||||
circuitsSeq = list;
|
||||
}
|
||||
|
||||
void AjouteCircuit (Circuit c)
|
||||
{
|
||||
valeurscourantes[c]=0;
|
||||
valeursinitiales[c]=0;
|
||||
}
|
||||
|
||||
private void RetireCircuit(Circuit c)
|
||||
{
|
||||
foreach (var ef in effets) {
|
||||
ef.RetireCircuit(c);
|
||||
}
|
||||
circuitsSeq.Remove(c);
|
||||
valeurscourantes.Remove(c);
|
||||
valeursinitiales.Remove(c);
|
||||
}
|
||||
|
||||
public override void MajCircuitsSupprimes ()
|
||||
{
|
||||
foreach (var c in circuitsSeq.ToArray()) {
|
||||
if(!Conduite.Courante.Circuits.Contains(c))
|
||||
RetireCircuit(c);
|
||||
}
|
||||
}
|
||||
|
||||
List<Effet> effets = new List<Effet>();
|
||||
|
||||
public ReadOnlyCollection<Effet> Effets {
|
||||
get {
|
||||
return effets.AsReadOnly() ;
|
||||
}
|
||||
}
|
||||
Effet effetcourrant=null;
|
||||
|
||||
bool enTransition=false;
|
||||
|
||||
Dictionary<Circuit,int> valeurscourantes = new Dictionary<Circuit, int>();
|
||||
Dictionary<Circuit,int> valeursinitiales = new Dictionary<Circuit, int>();
|
||||
Dictionary<Circuit,bool> valeurschangees = new Dictionary<Circuit, bool>();
|
||||
TimeSpan timeStamp = TimeSpan.Zero;
|
||||
List<Circuit> circuitsSeq = new List<Circuit> ();
|
||||
List<Effet> effets = new List<Effet> ();
|
||||
Effet effetcourrant = null;
|
||||
bool enTransition = false;
|
||||
Dictionary<Circuit,int> valeurscourantes = new Dictionary<Circuit, int> ();
|
||||
Dictionary<Circuit,int> valeursinitiales = new Dictionary<Circuit, int> ();
|
||||
Dictionary<Circuit,bool> valeurschangees = new Dictionary<Circuit, bool> ();
|
||||
SeqLinUI ui = null;
|
||||
|
||||
public SequenceurLineaire ()
|
||||
{
|
||||
|
|
@ -126,22 +77,76 @@ namespace DMX2
|
|||
|
||||
}
|
||||
|
||||
public TimeSpan TimeStamp {
|
||||
get {
|
||||
return timeStamp;
|
||||
}
|
||||
}
|
||||
|
||||
public ReadOnlyCollection<Circuit> Circuits {
|
||||
get {
|
||||
return circuitsSeq.AsReadOnly ();
|
||||
}
|
||||
}
|
||||
|
||||
public ReadOnlyCollection<Effet> Effets {
|
||||
get {
|
||||
return effets.AsReadOnly ();
|
||||
}
|
||||
}
|
||||
|
||||
public void ChangeCircuits (System.Collections.Generic.List<Circuit> list)
|
||||
{
|
||||
foreach (var c in circuitsSeq.ToArray()) {
|
||||
if (!list.Contains (c))
|
||||
RetireCircuit (c);
|
||||
}
|
||||
foreach (var c in list)
|
||||
if (!circuitsSeq.Contains (c))
|
||||
AjouteCircuit (c);
|
||||
circuitsSeq = list;
|
||||
}
|
||||
|
||||
void AjouteCircuit (Circuit c)
|
||||
{
|
||||
valeurscourantes [c] = 0;
|
||||
valeursinitiales [c] = 0;
|
||||
}
|
||||
|
||||
private void RetireCircuit (Circuit c)
|
||||
{
|
||||
foreach (var ef in effets) {
|
||||
ef.RetireCircuit (c);
|
||||
}
|
||||
circuitsSeq.Remove (c);
|
||||
valeurscourantes.Remove (c);
|
||||
valeursinitiales.Remove (c);
|
||||
}
|
||||
|
||||
public override void MajCircuitsSupprimes ()
|
||||
{
|
||||
foreach (var c in circuitsSeq.ToArray()) {
|
||||
if (!Conduite.Courante.Circuits.Contains (c))
|
||||
RetireCircuit (c);
|
||||
}
|
||||
}
|
||||
|
||||
public override int EtatCircuit (Circuit c)
|
||||
{
|
||||
if (!circuitsSeq.Contains (c))
|
||||
return 0;
|
||||
return valeurscourantes[c];
|
||||
return valeurscourantes [c];
|
||||
}
|
||||
|
||||
public void ChangeCircuit (Circuit c, int value)
|
||||
{
|
||||
valeurschangees[c]=true;
|
||||
valeurscourantes[c]= value;
|
||||
valeurschangees [c] = true;
|
||||
valeurscourantes [c] = value;
|
||||
}
|
||||
|
||||
public bool EstChange (Circuit c)
|
||||
{
|
||||
return valeurschangees.ContainsKey(c);
|
||||
return valeurschangees.ContainsKey (c);
|
||||
}
|
||||
|
||||
public override void Tick (TimeSpan time)
|
||||
|
|
@ -150,7 +155,7 @@ namespace DMX2
|
|||
if (enTransition) {
|
||||
if (timeStamp < effetcourrant.Transition) {
|
||||
foreach (Circuit c in circuitsSeq) {
|
||||
if (valeurscourantes [c] != effetcourrant [c] && !valeurschangees.ContainsKey(c)) {
|
||||
if (valeurscourantes [c] != effetcourrant [c] && !valeurschangees.ContainsKey (c)) {
|
||||
valeurscourantes [c] = (effetcourrant [c] - valeursinitiales [c]) * effetcourrant.Duree.Milliseconds / time.Milliseconds + valeursinitiales [c];
|
||||
}
|
||||
}
|
||||
|
|
@ -159,31 +164,31 @@ namespace DMX2
|
|||
}
|
||||
}
|
||||
if (timeStamp >= effetcourrant.Duree) {
|
||||
int index = effets.IndexOf(effetcourrant) +1;
|
||||
if (index < effets.Count) ChangeEffet(index);
|
||||
int index = effets.IndexOf (effetcourrant) + 1;
|
||||
if (index < effets.Count)
|
||||
ChangeEffet (index);
|
||||
}
|
||||
}
|
||||
|
||||
void FinDeTransition ()
|
||||
{
|
||||
enTransition = false;
|
||||
foreach( Circuit c in circuitsSeq)
|
||||
valeurscourantes[c]=effetcourrant[c];
|
||||
foreach (Circuit c in circuitsSeq)
|
||||
valeurscourantes [c] = effetcourrant [c];
|
||||
}
|
||||
|
||||
|
||||
public void ChangeEffet(int index)
|
||||
public void ChangeEffet (int index)
|
||||
{
|
||||
effetcourrant = effets[index];
|
||||
valeurschangees.Clear();
|
||||
valeursinitiales = new Dictionary<Circuit, int>(valeurscourantes);
|
||||
effetcourrant = effets [index];
|
||||
valeurschangees.Clear ();
|
||||
valeursinitiales = new Dictionary<Circuit, int> (valeurscourantes);
|
||||
enTransition = true;
|
||||
timeStamp = TimeSpan.Zero;
|
||||
}
|
||||
|
||||
public void SauveEffet (string nom, TimeSpan duree, TimeSpan transition)
|
||||
{
|
||||
effets.Add(new Effet(nom, valeurscourantes,duree,transition));
|
||||
effets.Add (new Effet (nom, valeurscourantes, duree, transition));
|
||||
}
|
||||
|
||||
public override System.Xml.XmlElement Save ()
|
||||
|
|
@ -191,13 +196,13 @@ namespace DMX2
|
|||
throw new System.NotImplementedException ();
|
||||
}
|
||||
|
||||
SeqLinUI ui=null;
|
||||
|
||||
public override SequenceurUI GetUI ()
|
||||
{
|
||||
|
||||
if (ui == null) {
|
||||
ui = new SeqLinUI (this);
|
||||
ui.Destroyed += UiDestroyed;;
|
||||
ui.Destroyed += UiDestroyed;
|
||||
}
|
||||
|
||||
return ui;
|
||||
|
|
@ -205,7 +210,7 @@ namespace DMX2
|
|||
|
||||
void UiDestroyed (object sender, EventArgs e)
|
||||
{
|
||||
ui=null;
|
||||
ui = null;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue