From 63dbe7676b1eb6c12de6ae550ac98bc2f12d726a Mon Sep 17 00:00:00 2001 From: tzim Date: Thu, 9 May 2013 07:13:10 +0000 Subject: [PATCH] Patch Ok --- DMX-2.0/EditionUnivers.cs | 86 +++++++++++++++++++++++++- DMX-2.0/UniversDMX.cs | 19 ++++-- DMX-2.0/gtk-gui/DMX2.EditionUnivers.cs | 3 + DMX-2.0/gtk-gui/gui.stetic | 3 + 4 files changed, 103 insertions(+), 8 deletions(-) diff --git a/DMX-2.0/EditionUnivers.cs b/DMX-2.0/EditionUnivers.cs index d191dad..7902b8f 100644 --- a/DMX-2.0/EditionUnivers.cs +++ b/DMX-2.0/EditionUnivers.cs @@ -135,6 +135,26 @@ namespace DMX2 cirCol.SetCellDataFunc(cirCell, new Gtk.TreeCellDataFunc( RenderDimmerCircuit) ); tvDimm.AppendColumn(cirCol); + var ftCol = new Gtk.TreeViewColumn(); + var ftCell = new Gtk.CellRendererText(); + ftCol.Title = "Fonction"; + ftCol.PackEnd(ftCell,true); + ftCol.SetCellDataFunc(ftCell, new Gtk.TreeCellDataFunc( RenderDimmerFT) ); + tvDimm.AppendColumn(ftCol); + + var p1Col = new Gtk.TreeViewColumn(); + var p1Cell = new Gtk.CellRendererText(); + p1Col.Title = "P1"; + p1Col.PackEnd(p1Cell,true); + p1Col.SetCellDataFunc(p1Cell, new Gtk.TreeCellDataFunc( RenderDimmerP1) ); + tvDimm.AppendColumn(p1Col); + + var p2Col = new Gtk.TreeViewColumn(); + var p2Cell = new Gtk.CellRendererText(); + p2Col.Title = "P2"; + p2Col.PackEnd(p2Cell,true); + p2Col.SetCellDataFunc(p2Cell, new Gtk.TreeCellDataFunc( RenderDimmerP2) ); + tvDimm.AppendColumn(p2Col); tvDimm.Model = lsDimmers; @@ -166,7 +186,24 @@ namespace DMX2 { UniversDMX.Dimmer dim = (UniversDMX.Dimmer)(tree_model.GetValue (iter, 1)); (cell as Gtk.CellRendererText).Text = dim.circuitAssocié==null?" - ": dim.circuitAssocié.ID + " - " + dim.circuitAssocié.Name ; - } + } + void RenderDimmerFT (TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter) + { + UniversDMX.Dimmer dim = (UniversDMX.Dimmer)(tree_model.GetValue (iter, 1)); + (cell as Gtk.CellRendererText).Text = dim.fonctionTransfert.ToString(); + } + + void RenderDimmerP1 (TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter) + { + UniversDMX.Dimmer dim = (UniversDMX.Dimmer)(tree_model.GetValue (iter, 1)); + (cell as Gtk.CellRendererText).Text = dim.param1.ToString(); + } + + void RenderDimmerP2 (TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter) + { + UniversDMX.Dimmer dim = (UniversDMX.Dimmer)(tree_model.GetValue (iter, 1)); + (cell as Gtk.CellRendererText).Text = dim.param2.ToString(); + } protected void OnSpinDimmerValueChanged (object sender, EventArgs e) @@ -183,13 +220,25 @@ namespace DMX2 currDimm = id - 1; tvDimm.SetCursor( new TreePath( new int[1] { currDimm }) ,null,false); + + // recherche du circuit dans la liste et selection TreeIter iter; lsCbCircuits.GetIterFirst(out iter); do{ if((lsCbCircuits.GetValue(iter,0) as Circuit) == universEdite.Dimmers[currDimm].circuitAssocié) break; } while (lsCbCircuits.IterNext(ref iter)); - cbCircuit.SetActiveIter(iter); + + lsCbFT.GetIterFirst(out iter); + do{ + if((lsCbFT.GetValue(iter,0) as string) == universEdite.Dimmers[currDimm].fonctionTransfert.ToString()) + break; + }while(lsCbFT.IterNext(ref iter)); + cbFT.SetActiveIter(iter); + + txtParam1.Text = universEdite.Dimmers[currDimm].param1.ToString(); + txtParam2.Text = universEdite.Dimmers[currDimm].param2.ToString(); + majencour = false; } @@ -222,10 +271,41 @@ namespace DMX2 MajListeDimmer(); } } + protected void OnCbFTChanged (object sender, EventArgs e) + { + if(majencour) return; + TreeIter iter; + if (cbFT.GetActiveIter (out iter)) { + UniversDMX.FTransfer ft; + UniversDMX.FTransfer.TryParse(lsCbFT.GetValue (iter, 0) as string, out ft); + universEdite.Dimmers[currDimm].fonctionTransfert = ft; + MajListeDimmer(); + } + } + protected void OnTxtParam1FocusOutEvent (object o, FocusOutEventArgs args) + { + if (majencour) + return; + float p1; + if (float.TryParse (txtParam1.Text, out p1)) { + universEdite.Dimmers [currDimm].param1 = p1; + MajListeDimmer (); + } + } + protected void OnTxtParam2FocusOutEvent (object o, FocusOutEventArgs args) + { + if (majencour) + return; + float p2; + if (float.TryParse (txtParam2.Text, out p2)) { + universEdite.Dimmers [currDimm].param2 = p2; + MajListeDimmer (); + } + } - + } diff --git a/DMX-2.0/UniversDMX.cs b/DMX-2.0/UniversDMX.cs index 7eb8820..80bc61a 100644 --- a/DMX-2.0/UniversDMX.cs +++ b/DMX-2.0/UniversDMX.cs @@ -9,9 +9,17 @@ namespace DMX2 static int nb=1; - public UniversDMX() + public UniversDMX () + { - Nom = "Univers DMX n°"+ nb++.ToString(); + Nom = "Univers DMX n°" + nb++.ToString (); + + for (int i = 0; i<_dimmers.Length; i++) + { + _dimmers[i].fonctionTransfert = FTransfer.lineaire; + _dimmers[i].param1 = 100; + } + } Dimmer[] _dimmers = new Dimmer[512]; @@ -29,6 +37,7 @@ namespace DMX2 log, exp } + public struct Dimmer { public Circuit circuitAssocié; public FTransfer fonctionTransfert; @@ -50,14 +59,14 @@ namespace DMX2 { } - public void CalculUnivers(int[] valeurs) + public void CalculUnivers(byte[] valeurs) { Dimmer g; Debug.Assert(valeurs.Length == _dimmers.Length); for(int i = 0 ; i<512; i++) { if(allumageForce[i]) { - valeurs[i] = 128; + valeurs[i] = 255; break; } @@ -65,7 +74,7 @@ namespace DMX2 switch (g.fonctionTransfert) { case FTransfer.lineaire: - valeurs[i] = g.circuitAssocié.ValeurCourante; + valeurs[i] = (byte)( g.circuitAssocié.ValeurCourante * g.param1 /100); break; case FTransfer.log: break; diff --git a/DMX-2.0/gtk-gui/DMX2.EditionUnivers.cs b/DMX-2.0/gtk-gui/DMX2.EditionUnivers.cs index 946b770..8002ba0 100644 --- a/DMX-2.0/gtk-gui/DMX2.EditionUnivers.cs +++ b/DMX-2.0/gtk-gui/DMX2.EditionUnivers.cs @@ -377,6 +377,9 @@ namespace DMX2 this.btPatchDroit.Clicked += new global::System.EventHandler (this.OnBtPatchDroitClicked); this.spinDimmer.ValueChanged += new global::System.EventHandler (this.OnSpinDimmerValueChanged); this.cbCircuit.Changed += new global::System.EventHandler (this.OnCbCircuitChanged); + this.cbFT.Changed += new global::System.EventHandler (this.OnCbFTChanged); + this.txtParam1.FocusOutEvent += new global::Gtk.FocusOutEventHandler (this.OnTxtParam1FocusOutEvent); + this.txtParam2.FocusOutEvent += new global::Gtk.FocusOutEventHandler (this.OnTxtParam2FocusOutEvent); this.tvDimm.CursorChanged += new global::System.EventHandler (this.OnTvDimmCursorChanged); this.buttonCancel.Clicked += new global::System.EventHandler (this.OnButtonCancelClicked); } diff --git a/DMX-2.0/gtk-gui/gui.stetic b/DMX-2.0/gtk-gui/gui.stetic index 9d0292f..536068b 100644 --- a/DMX-2.0/gtk-gui/gui.stetic +++ b/DMX-2.0/gtk-gui/gui.stetic @@ -1268,6 +1268,7 @@ True + 4 @@ -1294,6 +1295,7 @@ True True + 6 @@ -1318,6 +1320,7 @@ True True + 8