* DriverDMX.cs:
* DriverBoitierV2.cs: * DriverBoitierV1.cs: Sauvegarde * Conduite.cs: * EventManager.cs: * gui.stetic: * DMX2.DriverBoitierV2UI.cs: * DMX2.DriverBoitierV1UI.cs: * DriverBoitierV2UI.cs: * DriverBoitierV1UI.cs: Affichage etat driver * GestionDriversUI.cs: Gestion plusieurs drivers chargés
This commit is contained in:
parent
0e518b2cff
commit
91a007d896
11 changed files with 314 additions and 88 deletions
|
|
@ -143,6 +143,20 @@ namespace DMX2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void DriversAdd (DriverDMX drv)
|
||||||
|
{
|
||||||
|
drivers.Add(drv);
|
||||||
|
IEventProvider evp = drv as IEventProvider;
|
||||||
|
if(evp!=null) eventManager.RegisterProvider(evp);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void DriversRemove (DriverDMX drv)
|
||||||
|
{
|
||||||
|
drivers.Remove(drv);
|
||||||
|
IEventProvider evp = drv as IEventProvider;
|
||||||
|
if(evp!=null) eventManager.UnregisterProvider(evp);
|
||||||
|
}
|
||||||
|
|
||||||
public DriverDMX GetDriverByID(string ID){
|
public DriverDMX GetDriverByID(string ID){
|
||||||
foreach (var driver in drivers)
|
foreach (var driver in drivers)
|
||||||
if(ID== driver.ID)
|
if(ID== driver.ID)
|
||||||
|
|
@ -320,23 +334,28 @@ namespace DMX2
|
||||||
xmlRoot.AppendChild (xmlCircuits);
|
xmlRoot.AppendChild (xmlCircuits);
|
||||||
|
|
||||||
foreach (Circuit c in circuits) {
|
foreach (Circuit c in circuits) {
|
||||||
c.Save(xmlCircuits);
|
c.Save (xmlCircuits);
|
||||||
}
|
}
|
||||||
|
|
||||||
XmlElement xmlSequenceurs = xmlDoc.CreateElement("Sequenceurs");
|
XmlElement xmlSequenceurs = xmlDoc.CreateElement ("Sequenceurs");
|
||||||
xmlRoot.AppendChild(xmlSequenceurs);
|
xmlRoot.AppendChild (xmlSequenceurs);
|
||||||
|
|
||||||
foreach(Sequenceur seq in sequenceurs)
|
foreach (Sequenceur seq in sequenceurs) {
|
||||||
{
|
seq.Save (xmlSequenceurs);
|
||||||
seq.Save(xmlSequenceurs);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
XmlElement xmlUniversList = xmlDoc.CreateElement("ListeUnivers");
|
XmlElement xmlUniversList = xmlDoc.CreateElement ("ListeUnivers");
|
||||||
xmlRoot.AppendChild(xmlUniversList);
|
xmlRoot.AppendChild (xmlUniversList);
|
||||||
|
|
||||||
foreach(UniversDMX univ in univers)
|
foreach (UniversDMX univ in univers) {
|
||||||
{
|
univ.Save (xmlUniversList);
|
||||||
univ.Save(xmlUniversList);
|
}
|
||||||
|
|
||||||
|
XmlElement xmlDriverList = xmlDoc.CreateElement ("ListeDrivers");
|
||||||
|
xmlRoot.AppendChild (xmlDriverList);
|
||||||
|
|
||||||
|
foreach (DriverDMX drv in drivers) {
|
||||||
|
drv.Save(xmlDriverList);
|
||||||
}
|
}
|
||||||
|
|
||||||
XmlElement xmlMaster = xmlDoc.CreateElement("Master");
|
XmlElement xmlMaster = xmlDoc.CreateElement("Master");
|
||||||
|
|
@ -349,7 +368,7 @@ namespace DMX2
|
||||||
return xmlDoc;
|
return xmlDoc;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Conduite(XmlDocument doc) : this(false)
|
public Conduite (XmlDocument doc) : this(false)
|
||||||
{
|
{
|
||||||
//TODO : Gestion d'erreurs
|
//TODO : Gestion d'erreurs
|
||||||
|
|
||||||
|
|
@ -365,18 +384,26 @@ namespace DMX2
|
||||||
|
|
||||||
foreach (var xs in root["Sequenceurs"].ChildNodes) {
|
foreach (var xs in root["Sequenceurs"].ChildNodes) {
|
||||||
Sequenceur s = Sequenceur.Load (this, xs as XmlElement);
|
Sequenceur s = Sequenceur.Load (this, xs as XmlElement);
|
||||||
if (s != null){
|
if (s != null) {
|
||||||
sequenceurs.Add (s);
|
sequenceurs.Add (s);
|
||||||
s.Renamed += SequenceurRenomme;
|
s.Renamed += SequenceurRenomme;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
univers.Clear();
|
univers.Clear ();
|
||||||
|
|
||||||
|
|
||||||
foreach (var xu in root["ListeUnivers"].ChildNodes) {
|
foreach (var xu in root["ListeUnivers"].ChildNodes) {
|
||||||
UniversDMX u = UniversDMX.Load(this,xu as XmlElement);
|
UniversDMX u = UniversDMX.Load (this, xu as XmlElement);
|
||||||
if(u!=null)
|
if (u != null)
|
||||||
univers.Add(u);
|
univers.Add (u);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(root["ListeDrivers"]!=null)
|
||||||
|
foreach (var xd in root["ListeDrivers"].ChildNodes) {
|
||||||
|
DriverDMX drv = DriverDMX.Load(this,xd as XmlElement);
|
||||||
|
if(drv != null)
|
||||||
|
DriversAdd(drv);
|
||||||
}
|
}
|
||||||
|
|
||||||
XmlElement xmlMaster;
|
XmlElement xmlMaster;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.IO.Ports;
|
using System.IO.Ports;
|
||||||
|
using System.Xml;
|
||||||
|
|
||||||
namespace DMX2
|
namespace DMX2
|
||||||
{
|
{
|
||||||
|
|
@ -43,7 +44,6 @@ namespace DMX2
|
||||||
public DriverBoitierV1 (string serialport, string id): base(id)
|
public DriverBoitierV1 (string serialport, string id): base(id)
|
||||||
{
|
{
|
||||||
portname = serialport;
|
portname = serialport;
|
||||||
patch = Conduite.Courante.Patches[0];
|
|
||||||
Start();
|
Start();
|
||||||
//serial = serialport;
|
//serial = serialport;
|
||||||
outputbuffer[0]=27;
|
outputbuffer[0]=27;
|
||||||
|
|
@ -62,9 +62,15 @@ namespace DMX2
|
||||||
|
|
||||||
void Connection ()
|
void Connection ()
|
||||||
{
|
{
|
||||||
|
Console.WriteLine ("DriverV1.Connection()");
|
||||||
if (serial != null) {
|
if (serial != null) {
|
||||||
serial.Close();
|
serial.Close();
|
||||||
serial.Dispose();
|
serial.Dispose();
|
||||||
|
serial = null;
|
||||||
|
}
|
||||||
|
if (!System.IO.File.Exists (portname)) {
|
||||||
|
Thread.Sleep (200);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
serial = new SerialPort(portname, 460800,Parity.None,8,StopBits.One);
|
serial = new SerialPort(portname, 460800,Parity.None,8,StopBits.One);
|
||||||
serial.DtrEnable = false;
|
serial.DtrEnable = false;
|
||||||
|
|
@ -174,7 +180,7 @@ namespace DMX2
|
||||||
byte b = 1; bool pressed;
|
byte b = 1; bool pressed;
|
||||||
for (byte i = 0; i<8; i++) {
|
for (byte i = 0; i<8; i++) {
|
||||||
if(!watchButtons[i]) continue;
|
if(!watchButtons[i]) continue;
|
||||||
pressed = (inputbuffer[0] & b) != 0;
|
pressed = !((inputbuffer[0] & b) != 0);
|
||||||
if(buttons[i]^pressed)
|
if(buttons[i]^pressed)
|
||||||
{
|
{
|
||||||
eventsPending.Enqueue(new buttonState(i,pressed));
|
eventsPending.Enqueue(new buttonState(i,pressed));
|
||||||
|
|
@ -276,6 +282,44 @@ namespace DMX2
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region implemented abstract members of DMX2.DriverDMX
|
||||||
|
public override void Save (System.Xml.XmlElement parent)
|
||||||
|
{
|
||||||
|
System.Xml.XmlElement el = parent.OwnerDocument.CreateElement ("DriverBoitierV1");
|
||||||
|
System.Xml.XmlElement xmlEl;
|
||||||
|
|
||||||
|
parent.AppendChild (el);
|
||||||
|
|
||||||
|
el.SetAttribute ("portname", portname.ToString ());
|
||||||
|
el.SetAttribute ("id", ID);
|
||||||
|
|
||||||
|
if(patch!=null) el.SetAttribute ("univers", patch.Nom);
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
public static new DriverDMX Load(Conduite conduite, XmlElement el) {
|
||||||
|
//System.Xml.XmlElement xmlE;
|
||||||
|
|
||||||
|
string port = el.GetAttribute("portname");
|
||||||
|
|
||||||
|
if(! System.IO.File.Exists(port)) return null;
|
||||||
|
|
||||||
|
string id = el.GetAttribute("id");
|
||||||
|
|
||||||
|
DriverBoitierV1 drv = new DriverBoitierV1(port,id);
|
||||||
|
|
||||||
|
if(el.HasAttribute("univers"))
|
||||||
|
{
|
||||||
|
string univ = el.GetAttribute("univers");
|
||||||
|
foreach (UniversDMX u in conduite.Patches){
|
||||||
|
if(u.Nom== univ){
|
||||||
|
drv.patch = u;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return drv;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,17 +20,21 @@ namespace DMX2
|
||||||
void ConstruitCBUnivers ()
|
void ConstruitCBUnivers ()
|
||||||
{
|
{
|
||||||
cbUnivers.Model = lsCbUnivers;
|
cbUnivers.Model = lsCbUnivers;
|
||||||
var cellCbUnivers = new CellRendererText();
|
var cellCbUnivers = new CellRendererText ();
|
||||||
cbUnivers.PackStart(cellCbUnivers,false);
|
cbUnivers.PackStart (cellCbUnivers, false);
|
||||||
cbUnivers.SetCellDataFunc(cellCbUnivers, new CellLayoutDataFunc(RenderUniversName));
|
cbUnivers.SetCellDataFunc (cellCbUnivers, new CellLayoutDataFunc (RenderUniversName));
|
||||||
|
int indx = 0;
|
||||||
|
int i=0;
|
||||||
foreach(UniversDMX u in Conduite.Courante.Patches)
|
foreach (UniversDMX u in Conduite.Courante.Patches) {
|
||||||
lsCbUnivers.AppendValues(u);
|
lsCbUnivers.AppendValues (u);
|
||||||
|
if (u==drv.patch) indx=i;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
TreeIter iter;
|
TreeIter iter;
|
||||||
lsCbUnivers.GetIterFirst(out iter);
|
lsCbUnivers.GetIterFirst(out iter);
|
||||||
cbUnivers.SetActiveIter(iter);
|
cbUnivers.SetActiveIter(iter);
|
||||||
|
cbUnivers.Active=indx;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -51,6 +55,13 @@ namespace DMX2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void OnBtnValiderClicked (object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
TreeIter iter;
|
||||||
|
if (cbUnivers.GetActiveIter (out iter)) {
|
||||||
|
drv.patch = lsCbUnivers.GetValue (iter, 0) as UniversDMX;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.IO.Ports;
|
using System.IO.Ports;
|
||||||
|
using System.Xml;
|
||||||
|
|
||||||
namespace DMX2
|
namespace DMX2
|
||||||
{
|
{
|
||||||
public class DriverBoitierV2 : DriverDMX, IEventProvider
|
public class DriverBoitierV2 : DriverDMX//, IEventProvider
|
||||||
{
|
{
|
||||||
|
|
||||||
struct buttonState {
|
struct buttonState {
|
||||||
|
|
@ -125,7 +126,7 @@ namespace DMX2
|
||||||
//serial.WriteTimeout = 200;
|
//serial.WriteTimeout = 200;
|
||||||
try {
|
try {
|
||||||
serial.Open ();
|
serial.Open ();
|
||||||
Attente(DateTime.Now.AddMilliseconds(1000));
|
Attente(DateTime.Now.AddMilliseconds(2000));
|
||||||
|
|
||||||
if(Synchronisation())
|
if(Synchronisation())
|
||||||
etat = etatAutomate.Transmission;
|
etat = etatAutomate.Transmission;
|
||||||
|
|
@ -384,20 +385,6 @@ namespace DMX2
|
||||||
etat = etatAutomate.Erreur;
|
etat = etatAutomate.Erreur;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProcessInput ()
|
|
||||||
{
|
|
||||||
byte b = 1; bool pressed;
|
|
||||||
for (byte i = 0; i<8; i++) {
|
|
||||||
if(!watchButtons[i]) continue;
|
|
||||||
pressed = (inputbuffer[0] & b) != 0;
|
|
||||||
if(buttons[i]^pressed)
|
|
||||||
{
|
|
||||||
eventsPending.Enqueue(new buttonState(i,pressed));
|
|
||||||
buttons[i] = pressed;
|
|
||||||
}
|
|
||||||
b <<= 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void Dispose ()
|
public override void Dispose ()
|
||||||
{
|
{
|
||||||
|
|
@ -419,7 +406,7 @@ namespace DMX2
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
#region IEventProvider implementation
|
#region IEventProvider implementation
|
||||||
|
|
||||||
|
|
@ -490,7 +477,73 @@ namespace DMX2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
*/
|
||||||
|
#region implemented abstract members of DMX2.DriverDMX
|
||||||
|
public override void Save (System.Xml.XmlElement parent)
|
||||||
|
{
|
||||||
|
System.Xml.XmlElement el = parent.OwnerDocument.CreateElement ("DriverBoitierV2");
|
||||||
|
System.Xml.XmlElement xmlEl;
|
||||||
|
|
||||||
|
parent.AppendChild (el);
|
||||||
|
|
||||||
|
el.SetAttribute ("portname", portname.ToString ());
|
||||||
|
el.SetAttribute ("id", ID);
|
||||||
|
|
||||||
|
if(patch1!=null) el.SetAttribute ("univers1", patch1.Nom);
|
||||||
|
if(patch2!=null) el.SetAttribute ("univers2", patch2.Nom);
|
||||||
|
|
||||||
|
el.SetAttribute("mab",mab.ToString());
|
||||||
|
el.SetAttribute("brk",brk.ToString());
|
||||||
|
el.SetAttribute("merge1",(flag_merge1!=0).ToString());
|
||||||
|
el.SetAttribute("merge2",(flag_merge2!=0).ToString());
|
||||||
|
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
public static new DriverDMX Load(Conduite conduite, XmlElement el) {
|
||||||
|
//System.Xml.XmlElement xmlE;
|
||||||
|
|
||||||
|
string port = el.GetAttribute("portname");
|
||||||
|
|
||||||
|
if(! System.IO.File.Exists(port)) return null;
|
||||||
|
|
||||||
|
string id = el.GetAttribute("id");
|
||||||
|
|
||||||
|
DriverBoitierV2 drv = new DriverBoitierV2(port,id);
|
||||||
|
|
||||||
|
if(el.HasAttribute("univers1"))
|
||||||
|
{
|
||||||
|
string univ = el.GetAttribute("univers1");
|
||||||
|
foreach (UniversDMX u in conduite.Patches){
|
||||||
|
if(u.Nom== univ){
|
||||||
|
drv.patch1 = u;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(el.HasAttribute("univers2"))
|
||||||
|
{
|
||||||
|
string univ = el.GetAttribute("univers2");
|
||||||
|
foreach (UniversDMX u in conduite.Patches){
|
||||||
|
if(u.Nom== univ){
|
||||||
|
drv.patch2 = u;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int mab,brk;
|
||||||
|
byte merge1,merge2;
|
||||||
|
|
||||||
|
mab = int.Parse(el.TryGetAttribute("mab","150"));
|
||||||
|
brk = int.Parse(el.TryGetAttribute("brk","50"));
|
||||||
|
merge1 = (byte)( bool.Parse(el.TryGetAttribute("merge1","True"))?1:0 );
|
||||||
|
merge2 = (byte)( bool.Parse(el.TryGetAttribute("merge2","True"))?1:0 );
|
||||||
|
|
||||||
|
drv.SetBreak(brk,mab,merge1,merge2);
|
||||||
|
|
||||||
|
return drv;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,37 +20,47 @@ namespace DMX2
|
||||||
ListStore lsCbUnivers2 = new ListStore(typeof(UniversDMX));
|
ListStore lsCbUnivers2 = new ListStore(typeof(UniversDMX));
|
||||||
void ConstruitCBUnivers ()
|
void ConstruitCBUnivers ()
|
||||||
{
|
{
|
||||||
caseBrk.Text = drv.Break.ToString();
|
caseBrk.Text = drv.Break.ToString ();
|
||||||
caseMab.Text = drv.Mab.ToString();
|
caseMab.Text = drv.Mab.ToString ();
|
||||||
|
|
||||||
chkMerge1.Active = drv.Flag_merge1 == 1;
|
chkMerge1.Active = drv.Flag_merge1 == 1;
|
||||||
chkMerge2.Active = drv.Flag_merge2 == 1;
|
chkMerge2.Active = drv.Flag_merge2 == 1;
|
||||||
|
|
||||||
cbUnivers1.Model = lsCbUnivers1;
|
cbUnivers1.Model = lsCbUnivers1;
|
||||||
var cellCbUnivers1 = new CellRendererText();
|
var cellCbUnivers1 = new CellRendererText ();
|
||||||
cbUnivers1.PackStart(cellCbUnivers1,false);
|
cbUnivers1.PackStart (cellCbUnivers1, false);
|
||||||
cbUnivers1.SetCellDataFunc(cellCbUnivers1, new CellLayoutDataFunc(RenderUniversName1));
|
cbUnivers1.SetCellDataFunc (cellCbUnivers1, new CellLayoutDataFunc (RenderUniversName1));
|
||||||
|
|
||||||
|
int indx = 0;
|
||||||
foreach(UniversDMX u in Conduite.Courante.Patches)
|
int i = 0;
|
||||||
lsCbUnivers1.AppendValues(u);
|
foreach (UniversDMX u in Conduite.Courante.Patches) {
|
||||||
|
lsCbUnivers1.AppendValues (u);
|
||||||
|
if (u==drv.patch1) indx=i;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
TreeIter iter;
|
TreeIter iter;
|
||||||
lsCbUnivers1.GetIterFirst(out iter);
|
lsCbUnivers1.GetIterFirst (out iter);
|
||||||
cbUnivers1.SetActiveIter(iter);
|
cbUnivers1.SetActiveIter (iter);
|
||||||
|
cbUnivers1.Active=indx;
|
||||||
|
|
||||||
cbUnivers2.Model = lsCbUnivers2;
|
cbUnivers2.Model = lsCbUnivers2;
|
||||||
var cellCbUnivers2 = new CellRendererText();
|
var cellCbUnivers2 = new CellRendererText ();
|
||||||
cbUnivers2.PackStart(cellCbUnivers2,false);
|
cbUnivers2.PackStart (cellCbUnivers2, false);
|
||||||
cbUnivers2.SetCellDataFunc(cellCbUnivers2, new CellLayoutDataFunc(RenderUniversName2));
|
cbUnivers2.SetCellDataFunc (cellCbUnivers2, new CellLayoutDataFunc (RenderUniversName2));
|
||||||
|
|
||||||
|
indx = 0;
|
||||||
foreach(UniversDMX u in Conduite.Courante.Patches)
|
i = 0;
|
||||||
lsCbUnivers2.AppendValues(u);
|
foreach (UniversDMX u in Conduite.Courante.Patches) {
|
||||||
|
lsCbUnivers2.AppendValues (u);
|
||||||
|
if (u==drv.patch2) indx=i;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
//TreeIter iter;
|
//TreeIter iter;
|
||||||
lsCbUnivers2.GetIterFirst(out iter);
|
lsCbUnivers2.GetIterFirst(out iter);
|
||||||
cbUnivers2.SetActiveIter(iter);
|
cbUnivers2.SetActiveIter(iter);
|
||||||
|
cbUnivers2.Active=indx;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -68,7 +78,7 @@ namespace DMX2
|
||||||
(cell as Gtk.CellRendererText).Text = univers.Nom;
|
(cell as Gtk.CellRendererText).Text = univers.Nom;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void OnButton120Clicked (object sender, EventArgs e)
|
protected void OnButtonValider (object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
TreeIter iter;
|
TreeIter iter;
|
||||||
if (cbUnivers1.GetActiveIter (out iter)) {
|
if (cbUnivers1.GetActiveIter (out iter)) {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
using System.Xml;
|
||||||
|
|
||||||
namespace DMX2
|
namespace DMX2
|
||||||
{
|
{
|
||||||
|
|
@ -26,6 +27,19 @@ namespace DMX2
|
||||||
|
|
||||||
protected bool disposed = false;
|
protected bool disposed = false;
|
||||||
|
|
||||||
|
public static DriverDMX Load (Conduite conduite, XmlElement el)
|
||||||
|
{
|
||||||
|
switch (el.Name) {
|
||||||
|
case "DriverBoitierV1":
|
||||||
|
return DriverBoitierV1.Load(conduite, el);
|
||||||
|
case "DriverBoitierV2":
|
||||||
|
return DriverBoitierV2.Load(conduite,el);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract void Save (XmlElement parent);
|
||||||
|
|
||||||
#region IDisposable implementation
|
#region IDisposable implementation
|
||||||
|
|
||||||
public virtual void Dispose()
|
public virtual void Dispose()
|
||||||
|
|
|
||||||
|
|
@ -132,6 +132,8 @@ namespace DMX2
|
||||||
public void RegisterProvider (IEventProvider prov)
|
public void RegisterProvider (IEventProvider prov)
|
||||||
{
|
{
|
||||||
providers.Add (prov);
|
providers.Add (prov);
|
||||||
|
foreach( var bind in bindings)
|
||||||
|
prov.Bind(bind.Key);
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Menus
|
#region Menus
|
||||||
|
|
|
||||||
|
|
@ -106,16 +106,7 @@ namespace DMX2
|
||||||
return;
|
return;
|
||||||
|
|
||||||
drv = Conduite.Courante.GetDriverByID (fi.Name);
|
drv = Conduite.Courante.GetDriverByID (fi.Name);
|
||||||
if (drv == null) {
|
|
||||||
btnConnect.Visible = btnConnect.Sensitive = true;
|
|
||||||
btnDisconnect.Visible = btnDisconnect.Sensitive = false;
|
|
||||||
|
|
||||||
comboDriver.Sensitive = true;
|
|
||||||
comboDriver.Active=-1;
|
|
||||||
if(frmDrvChild.Child!=null)
|
|
||||||
frmDrvChild.Remove(frmDrvChild.Child);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
AfficheDriverUI();
|
AfficheDriverUI();
|
||||||
|
|
||||||
|
|
@ -141,11 +132,14 @@ namespace DMX2
|
||||||
switch (comboDriver.Active) {
|
switch (comboDriver.Active) {
|
||||||
case 0:
|
case 0:
|
||||||
drv = new DriverBoitierV1(fi.FullName, fi.Name);
|
drv = new DriverBoitierV1(fi.FullName, fi.Name);
|
||||||
Conduite.Courante.Drivers.Add(drv);
|
Conduite.Courante.DriversAdd(drv);
|
||||||
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
drv = new DriverBoitierV2(fi.FullName, fi.Name);
|
drv = new DriverBoitierV2(fi.FullName, fi.Name);
|
||||||
Conduite.Courante.Drivers.Add(drv);
|
Conduite.Courante.DriversAdd(drv);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
|
|
@ -159,12 +153,26 @@ namespace DMX2
|
||||||
{
|
{
|
||||||
if (drv != null) {
|
if (drv != null) {
|
||||||
drv.Dispose ();
|
drv.Dispose ();
|
||||||
Conduite.Courante.Drivers.Remove (drv);
|
Conduite.Courante.DriversRemove (drv);
|
||||||
}
|
}
|
||||||
|
drv=null;
|
||||||
|
AfficheDriverUI();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AfficheDriverUI(){
|
void AfficheDriverUI(){
|
||||||
|
if(frmDrvChild.Child!=null)
|
||||||
|
frmDrvChild.Remove(frmDrvChild.Child);
|
||||||
|
if (drv == null) {
|
||||||
|
btnConnect.Visible = btnConnect.Sensitive = true;
|
||||||
|
btnDisconnect.Visible = btnDisconnect.Sensitive = false;
|
||||||
|
|
||||||
|
comboDriver.Sensitive = true;
|
||||||
|
comboDriver.Active=-1;
|
||||||
|
listeUsb.QueueDraw();
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
btnConnect.Visible = false;
|
btnConnect.Visible = false;
|
||||||
comboDriver.Sensitive = false;
|
comboDriver.Sensitive = false;
|
||||||
|
|
||||||
|
|
@ -172,7 +180,7 @@ namespace DMX2
|
||||||
|
|
||||||
frmDrvChild.Child = drv.GetUI();
|
frmDrvChild.Child = drv.GetUI();
|
||||||
frmDrvChild.ShowAll();
|
frmDrvChild.ShowAll();
|
||||||
|
listeUsb.QueueDraw();
|
||||||
}
|
}
|
||||||
|
|
||||||
void EffaceDriverUI(){
|
void EffaceDriverUI(){
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,8 @@ namespace DMX2
|
||||||
private global::Gtk.Label label4;
|
private global::Gtk.Label label4;
|
||||||
private global::Gtk.Label label5;
|
private global::Gtk.Label label5;
|
||||||
private global::Gtk.Label lblEtat;
|
private global::Gtk.Label lblEtat;
|
||||||
|
private global::Gtk.HBox hbox1;
|
||||||
|
private global::Gtk.Button btnValider;
|
||||||
|
|
||||||
protected virtual void Build ()
|
protected virtual void Build ()
|
||||||
{
|
{
|
||||||
|
|
@ -78,11 +80,32 @@ namespace DMX2
|
||||||
this.vbox2.Add (this.table1);
|
this.vbox2.Add (this.table1);
|
||||||
global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.table1]));
|
global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.table1]));
|
||||||
w6.Position = 1;
|
w6.Position = 1;
|
||||||
|
// Container child vbox2.Gtk.Box+BoxChild
|
||||||
|
this.hbox1 = new global::Gtk.HBox ();
|
||||||
|
this.hbox1.Name = "hbox1";
|
||||||
|
this.hbox1.Spacing = 6;
|
||||||
|
// Container child hbox1.Gtk.Box+BoxChild
|
||||||
|
this.btnValider = new global::Gtk.Button ();
|
||||||
|
this.btnValider.CanFocus = true;
|
||||||
|
this.btnValider.Name = "btnValider";
|
||||||
|
this.btnValider.UseUnderline = true;
|
||||||
|
this.btnValider.Label = "Valider";
|
||||||
|
this.hbox1.Add (this.btnValider);
|
||||||
|
global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.btnValider]));
|
||||||
|
w7.Position = 1;
|
||||||
|
w7.Expand = false;
|
||||||
|
w7.Fill = false;
|
||||||
|
this.vbox2.Add (this.hbox1);
|
||||||
|
global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.hbox1]));
|
||||||
|
w8.Position = 2;
|
||||||
|
w8.Expand = false;
|
||||||
|
w8.Fill = false;
|
||||||
this.Add (this.vbox2);
|
this.Add (this.vbox2);
|
||||||
if ((this.Child != null)) {
|
if ((this.Child != null)) {
|
||||||
this.Child.ShowAll ();
|
this.Child.ShowAll ();
|
||||||
}
|
}
|
||||||
this.Hide ();
|
this.Hide ();
|
||||||
|
this.btnValider.Clicked += new global::System.EventHandler (this.OnBtnValiderClicked);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ namespace DMX2
|
||||||
private global::Gtk.Label label7;
|
private global::Gtk.Label label7;
|
||||||
private global::Gtk.Label label8;
|
private global::Gtk.Label label8;
|
||||||
private global::Gtk.HBox hbox1;
|
private global::Gtk.HBox hbox1;
|
||||||
private global::Gtk.Button button120;
|
private global::Gtk.Button btnValider;
|
||||||
private global::Gtk.Button btnInit;
|
private global::Gtk.Button btnInit;
|
||||||
|
|
||||||
protected virtual void Build ()
|
protected virtual void Build ()
|
||||||
|
|
@ -204,13 +204,13 @@ namespace DMX2
|
||||||
this.hbox1.Name = "hbox1";
|
this.hbox1.Name = "hbox1";
|
||||||
this.hbox1.Spacing = 6;
|
this.hbox1.Spacing = 6;
|
||||||
// Container child hbox1.Gtk.Box+BoxChild
|
// Container child hbox1.Gtk.Box+BoxChild
|
||||||
this.button120 = new global::Gtk.Button ();
|
this.btnValider = new global::Gtk.Button ();
|
||||||
this.button120.CanFocus = true;
|
this.btnValider.CanFocus = true;
|
||||||
this.button120.Name = "button120";
|
this.btnValider.Name = "btnValider";
|
||||||
this.button120.UseUnderline = true;
|
this.btnValider.UseUnderline = true;
|
||||||
this.button120.Label = "Valider";
|
this.btnValider.Label = "Valider";
|
||||||
this.hbox1.Add (this.button120);
|
this.hbox1.Add (this.btnValider);
|
||||||
global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.button120]));
|
global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.btnValider]));
|
||||||
w16.Position = 1;
|
w16.Position = 1;
|
||||||
w16.Expand = false;
|
w16.Expand = false;
|
||||||
w16.Fill = false;
|
w16.Fill = false;
|
||||||
|
|
@ -236,7 +236,7 @@ namespace DMX2
|
||||||
this.Child.ShowAll ();
|
this.Child.ShowAll ();
|
||||||
}
|
}
|
||||||
this.Hide ();
|
this.Hide ();
|
||||||
this.button120.Clicked += new global::System.EventHandler (this.OnButton120Clicked);
|
this.btnValider.Clicked += new global::System.EventHandler (this.OnButtonValider);
|
||||||
this.btnInit.Clicked += new global::System.EventHandler (this.OnBtnInitClicked);
|
this.btnInit.Clicked += new global::System.EventHandler (this.OnBtnInitClicked);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2017,7 +2017,7 @@ au sequenceur</property>
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="Gtk.Bin" id="DMX2.DriverBoitierV1UI" design-size="342 105">
|
<widget class="Gtk.Bin" id="DMX2.DriverBoitierV1UI" design-size="342 233">
|
||||||
<property name="MemberName" />
|
<property name="MemberName" />
|
||||||
<property name="Visible">False</property>
|
<property name="Visible">False</property>
|
||||||
<child>
|
<child>
|
||||||
|
|
@ -2132,6 +2132,40 @@ au sequenceur</property>
|
||||||
<property name="AutoSize">True</property>
|
<property name="AutoSize">True</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="Gtk.HBox" id="hbox1">
|
||||||
|
<property name="MemberName" />
|
||||||
|
<property name="Spacing">6</property>
|
||||||
|
<child>
|
||||||
|
<placeholder />
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="Gtk.Button" id="btnValider">
|
||||||
|
<property name="MemberName" />
|
||||||
|
<property name="CanFocus">True</property>
|
||||||
|
<property name="Type">TextOnly</property>
|
||||||
|
<property name="Label" translatable="yes">Valider</property>
|
||||||
|
<property name="UseUnderline">True</property>
|
||||||
|
<signal name="Clicked" handler="OnBtnValiderClicked" />
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="Position">1</property>
|
||||||
|
<property name="AutoSize">True</property>
|
||||||
|
<property name="Expand">False</property>
|
||||||
|
<property name="Fill">False</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<placeholder />
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="Position">2</property>
|
||||||
|
<property name="AutoSize">True</property>
|
||||||
|
<property name="Expand">False</property>
|
||||||
|
<property name="Fill">False</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
|
|
@ -2467,13 +2501,13 @@ au sequenceur</property>
|
||||||
<placeholder />
|
<placeholder />
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<widget class="Gtk.Button" id="button120">
|
<widget class="Gtk.Button" id="btnValider">
|
||||||
<property name="MemberName" />
|
<property name="MemberName" />
|
||||||
<property name="CanFocus">True</property>
|
<property name="CanFocus">True</property>
|
||||||
<property name="Type">TextOnly</property>
|
<property name="Type">TextOnly</property>
|
||||||
<property name="Label" translatable="yes">Valider</property>
|
<property name="Label" translatable="yes">Valider</property>
|
||||||
<property name="UseUnderline">True</property>
|
<property name="UseUnderline">True</property>
|
||||||
<signal name="Clicked" handler="OnButton120Clicked" />
|
<signal name="Clicked" handler="OnButtonValider" />
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="Position">1</property>
|
<property name="Position">1</property>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue