This commit is contained in:
tzim 2013-05-09 07:13:10 +00:00
parent 9f666ead89
commit 63dbe7676b
4 changed files with 103 additions and 8 deletions

View file

@ -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;
@ -167,6 +187,23 @@ 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,8 +271,39 @@ 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 ();
}
}

View file

@ -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;

View file

@ -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);
}

View file

@ -1268,6 +1268,7 @@
<property name="MemberName" />
<property name="IsTextCombo">True</property>
<property name="Items" translatable="yes" />
<signal name="Changed" handler="OnCbFTChanged" />
</widget>
<packing>
<property name="Position">4</property>
@ -1294,6 +1295,7 @@
<property name="CanFocus">True</property>
<property name="IsEditable">True</property>
<property name="InvisibleChar">•</property>
<signal name="FocusOutEvent" handler="OnTxtParam1FocusOutEvent" />
</widget>
<packing>
<property name="Position">6</property>
@ -1318,6 +1320,7 @@
<property name="CanFocus">True</property>
<property name="IsEditable">True</property>
<property name="InvisibleChar">•</property>
<signal name="FocusOutEvent" handler="OnTxtParam2FocusOutEvent" />
</widget>
<packing>
<property name="Position">8</property>