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) ); cirCol.SetCellDataFunc(cirCell, new Gtk.TreeCellDataFunc( RenderDimmerCircuit) );
tvDimm.AppendColumn(cirCol); 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; tvDimm.Model = lsDimmers;
@ -166,7 +186,24 @@ namespace DMX2
{ {
UniversDMX.Dimmer dim = (UniversDMX.Dimmer)(tree_model.GetValue (iter, 1)); UniversDMX.Dimmer dim = (UniversDMX.Dimmer)(tree_model.GetValue (iter, 1));
(cell as Gtk.CellRendererText).Text = dim.circuitAssocié==null?" - ": dim.circuitAssocié.ID + " - " + dim.circuitAssocié.Name ; (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) protected void OnSpinDimmerValueChanged (object sender, EventArgs e)
@ -183,13 +220,25 @@ namespace DMX2
currDimm = id - 1; currDimm = id - 1;
tvDimm.SetCursor( new TreePath( new int[1] { currDimm }) ,null,false); tvDimm.SetCursor( new TreePath( new int[1] { currDimm }) ,null,false);
// recherche du circuit dans la liste et selection
TreeIter iter; TreeIter iter;
lsCbCircuits.GetIterFirst(out iter); lsCbCircuits.GetIterFirst(out iter);
do{ do{
if((lsCbCircuits.GetValue(iter,0) as Circuit) == universEdite.Dimmers[currDimm].circuitAssocié) break; if((lsCbCircuits.GetValue(iter,0) as Circuit) == universEdite.Dimmers[currDimm].circuitAssocié) break;
} while (lsCbCircuits.IterNext(ref iter)); } while (lsCbCircuits.IterNext(ref iter));
cbCircuit.SetActiveIter(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; majencour = false;
} }
@ -222,10 +271,41 @@ namespace DMX2
MajListeDimmer(); 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; 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]; Dimmer[] _dimmers = new Dimmer[512];
@ -29,6 +37,7 @@ namespace DMX2
log, log,
exp exp
} }
public struct Dimmer { public struct Dimmer {
public Circuit circuitAssocié; public Circuit circuitAssocié;
public FTransfer fonctionTransfert; public FTransfer fonctionTransfert;
@ -50,14 +59,14 @@ namespace DMX2
{ {
} }
public void CalculUnivers(int[] valeurs) public void CalculUnivers(byte[] valeurs)
{ {
Dimmer g; Dimmer g;
Debug.Assert(valeurs.Length == _dimmers.Length); Debug.Assert(valeurs.Length == _dimmers.Length);
for(int i = 0 ; i<512; i++) for(int i = 0 ; i<512; i++)
{ {
if(allumageForce[i]) { if(allumageForce[i]) {
valeurs[i] = 128; valeurs[i] = 255;
break; break;
} }
@ -65,7 +74,7 @@ namespace DMX2
switch (g.fonctionTransfert) { switch (g.fonctionTransfert) {
case FTransfer.lineaire: case FTransfer.lineaire:
valeurs[i] = g.circuitAssocié.ValeurCourante; valeurs[i] = (byte)( g.circuitAssocié.ValeurCourante * g.param1 /100);
break; break;
case FTransfer.log: case FTransfer.log:
break; break;

View file

@ -377,6 +377,9 @@ namespace DMX2
this.btPatchDroit.Clicked += new global::System.EventHandler (this.OnBtPatchDroitClicked); this.btPatchDroit.Clicked += new global::System.EventHandler (this.OnBtPatchDroitClicked);
this.spinDimmer.ValueChanged += new global::System.EventHandler (this.OnSpinDimmerValueChanged); this.spinDimmer.ValueChanged += new global::System.EventHandler (this.OnSpinDimmerValueChanged);
this.cbCircuit.Changed += new global::System.EventHandler (this.OnCbCircuitChanged); 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.tvDimm.CursorChanged += new global::System.EventHandler (this.OnTvDimmCursorChanged);
this.buttonCancel.Clicked += new global::System.EventHandler (this.OnButtonCancelClicked); this.buttonCancel.Clicked += new global::System.EventHandler (this.OnButtonCancelClicked);
} }

View file

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