Modifs Midi
This commit is contained in:
parent
3803a830da
commit
5b810eaa8c
7 changed files with 462 additions and 350 deletions
|
|
@ -125,11 +125,11 @@ namespace DMX2
|
||||||
clientId = Invoke.snd_seq_client_id (seq_handle.Handle);
|
clientId = Invoke.snd_seq_client_id (seq_handle.Handle);
|
||||||
|
|
||||||
outport = inport = Invoke.snd_seq_create_simple_port (seq_handle.Handle,
|
outport = inport = Invoke.snd_seq_create_simple_port (seq_handle.Handle,
|
||||||
"dmx_ctrl",
|
"midi_in_out",
|
||||||
SND_SEQ_PORT_CAP_WRITE
|
SND_SEQ_PORT_CAP_WRITE
|
||||||
//+ SND_SEQ_PORT_CAP_SUBS_WRITE
|
//+ SND_SEQ_PORT_CAP_SUBS_WRITE
|
||||||
+ SND_SEQ_PORT_CAP_READ
|
+ SND_SEQ_PORT_CAP_READ
|
||||||
//+ SND_SEQ_PORT_CAP_SUBS_READ
|
+ SND_SEQ_PORT_CAP_SUBS_READ
|
||||||
,
|
,
|
||||||
SND_SEQ_PORT_TYPE_APPLICATION
|
SND_SEQ_PORT_TYPE_APPLICATION
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -339,6 +339,7 @@ namespace DMX2
|
||||||
#endif
|
#endif
|
||||||
if (bindings.ContainsKey (data.id)) {
|
if (bindings.ContainsKey (data.id)) {
|
||||||
foreach (IEventTarget target in bindings[data.id].Targets) {
|
foreach (IEventTarget target in bindings[data.id].Targets) {
|
||||||
|
// TODO : Gestion des targets expirees
|
||||||
target.FireEvent(data);
|
target.FireEvent(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ namespace DMX2
|
||||||
this.Build ();
|
this.Build ();
|
||||||
|
|
||||||
lsDetect = new Gtk.ListStore (typeof(string));
|
lsDetect = new Gtk.ListStore (typeof(string));
|
||||||
lsKnown = new Gtk.ListStore (typeof(MidiEventProvider.MidiDev));
|
lsKnown = new Gtk.ListStore (typeof(MidiEventProvider.MidiDevice));
|
||||||
|
|
||||||
|
|
||||||
var nameCol = new Gtk.TreeViewColumn ();
|
var nameCol = new Gtk.TreeViewColumn ();
|
||||||
|
|
@ -49,7 +49,7 @@ namespace DMX2
|
||||||
spinNbPage.Value = Conduite.Courante.Midi.Maxpage;
|
spinNbPage.Value = Conduite.Courante.Midi.Maxpage;
|
||||||
spinPageDown.Value = Conduite.Courante.Midi.PageDownCC;
|
spinPageDown.Value = Conduite.Courante.Midi.PageDownCC;
|
||||||
spinPageUp.Value = Conduite.Courante.Midi.PageUpCC;
|
spinPageUp.Value = Conduite.Courante.Midi.PageUpCC;
|
||||||
chkFourteenBits.Active = Conduite.Courante.Midi.Fourteenbits;
|
spinMax14b.Sensitive = chkFourteenBits.Active = Conduite.Courante.Midi.Use14bCC;
|
||||||
|
|
||||||
if (Conduite.Courante.Midi.UnpaginatedChannels.Count == 0) {
|
if (Conduite.Courante.Midi.UnpaginatedChannels.Count == 0) {
|
||||||
spinUPCh.Sensitive = false;
|
spinUPCh.Sensitive = false;
|
||||||
|
|
@ -60,7 +60,7 @@ namespace DMX2
|
||||||
chkPg.Active = true;
|
chkPg.Active = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
spinMax14b.Value = Conduite.Courante.Midi.Max14bValue;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -81,7 +81,7 @@ namespace DMX2
|
||||||
|
|
||||||
void RenderMidiDev (Gtk.TreeViewColumn tree_column, Gtk.CellRenderer cell, Gtk.TreeModel tree_model, Gtk.TreeIter iter)
|
void RenderMidiDev (Gtk.TreeViewColumn tree_column, Gtk.CellRenderer cell, Gtk.TreeModel tree_model, Gtk.TreeIter iter)
|
||||||
{
|
{
|
||||||
MidiEventProvider.MidiDev dev = tree_model.GetValue (iter, 0) as MidiEventProvider.MidiDev;
|
MidiEventProvider.MidiDevice dev = tree_model.GetValue (iter, 0) as MidiEventProvider.MidiDevice;
|
||||||
(cell as Gtk.CellRendererText).Text = dev.ConnectedPorts.Count>0
|
(cell as Gtk.CellRendererText).Text = dev.ConnectedPorts.Count>0
|
||||||
?string.Format("{0} ({1} connectés)",dev.Name,dev.ConnectedPorts.Count)
|
?string.Format("{0} ({1} connectés)",dev.Name,dev.ConnectedPorts.Count)
|
||||||
:string.Format("{0} (Déconnecté)",dev.Name);
|
:string.Format("{0} (Déconnecté)",dev.Name);
|
||||||
|
|
@ -124,7 +124,7 @@ namespace DMX2
|
||||||
chkFB.Sensitive = btnDesactiv.Sensitive = (listKnown.Selection.CountSelectedRows() >0);
|
chkFB.Sensitive = btnDesactiv.Sensitive = (listKnown.Selection.CountSelectedRows() >0);
|
||||||
TreeIter iter;
|
TreeIter iter;
|
||||||
if(!listKnown.Selection.GetSelected(out iter)) return;
|
if(!listKnown.Selection.GetSelected(out iter)) return;
|
||||||
MidiEventProvider.MidiDev dev = lsKnown.GetValue(iter,0) as MidiEventProvider.MidiDev ;
|
MidiEventProvider.MidiDevice dev = lsKnown.GetValue(iter,0) as MidiEventProvider.MidiDevice ;
|
||||||
chkFB.Active = dev.HasFeedback;
|
chkFB.Active = dev.HasFeedback;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -144,7 +144,7 @@ namespace DMX2
|
||||||
{
|
{
|
||||||
TreeIter iter;
|
TreeIter iter;
|
||||||
if(!listKnown.Selection.GetSelected(out iter)) return;
|
if(!listKnown.Selection.GetSelected(out iter)) return;
|
||||||
MidiEventProvider.MidiDev dev = lsKnown.GetValue(iter,0) as MidiEventProvider.MidiDev ;
|
MidiEventProvider.MidiDevice dev = lsKnown.GetValue(iter,0) as MidiEventProvider.MidiDevice ;
|
||||||
Conduite.Courante.Midi.DisconnectDevice(dev);
|
Conduite.Courante.Midi.DisconnectDevice(dev);
|
||||||
FillLsDetect () ;
|
FillLsDetect () ;
|
||||||
FillLsKnown();
|
FillLsKnown();
|
||||||
|
|
@ -156,7 +156,7 @@ namespace DMX2
|
||||||
{
|
{
|
||||||
TreeIter iter;
|
TreeIter iter;
|
||||||
if(!listKnown.Selection.GetSelected(out iter)) return;
|
if(!listKnown.Selection.GetSelected(out iter)) return;
|
||||||
MidiEventProvider.MidiDev dev = lsKnown.GetValue(iter,0) as MidiEventProvider.MidiDev ;
|
MidiEventProvider.MidiDevice dev = lsKnown.GetValue(iter,0) as MidiEventProvider.MidiDevice ;
|
||||||
dev.HasFeedback = chkFB.Active;
|
dev.HasFeedback = chkFB.Active;
|
||||||
|
|
||||||
Conduite.Courante.Midi.RefreshFeedback(dev.Name);
|
Conduite.Courante.Midi.RefreshFeedback(dev.Name);
|
||||||
|
|
@ -187,12 +187,9 @@ namespace DMX2
|
||||||
Conduite.Courante.Midi.UnpaginatedChannels.Add((byte)(spinUPCh.ValueAsInt-1));
|
Conduite.Courante.Midi.UnpaginatedChannels.Add((byte)(spinUPCh.ValueAsInt-1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
protected void OnChkFourteenBitsToggled (object sender, EventArgs e)
|
protected void OnChkFourteenBitsToggled (object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
Conduite.Courante.Midi.Fourteenbits = chkFourteenBits.Active;
|
spinMax14b.Sensitive = Conduite.Courante.Midi.Use14bCC = chkFourteenBits.Active;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void OnSpinPageDownValueChanged (object sender, EventArgs e)
|
protected void OnSpinPageDownValueChanged (object sender, EventArgs e)
|
||||||
|
|
@ -204,6 +201,11 @@ namespace DMX2
|
||||||
{
|
{
|
||||||
Conduite.Courante.Midi.PageUpCC = (uint)spinPageUp.ValueAsInt;
|
Conduite.Courante.Midi.PageUpCC = (uint)spinPageUp.ValueAsInt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void OnSpinMax14bValueChanged (object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Conduite.Courante.Midi.Max14bValue = spinMax14b.ValueAsInt;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,178 +19,21 @@ using System;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
namespace DMX2
|
namespace DMX2
|
||||||
{
|
{
|
||||||
public class MidiEventProvider : IEventProvider, IDisposable
|
public class MidiEventProvider : IEventProvider, IDisposable
|
||||||
{
|
{
|
||||||
|
|
||||||
class internalEvent
|
|
||||||
{
|
|
||||||
|
|
||||||
readonly string internalName;
|
|
||||||
bool bound = false;
|
|
||||||
readonly uint page;
|
|
||||||
readonly int midiEvCode;
|
|
||||||
|
|
||||||
readonly midiEventSender evsender;
|
|
||||||
|
|
||||||
public bool Bound {
|
|
||||||
get {
|
|
||||||
return bound;
|
|
||||||
}
|
|
||||||
set {
|
|
||||||
bound = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public string InternalName {
|
|
||||||
get {
|
|
||||||
return internalName;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public uint Page {
|
|
||||||
get {
|
|
||||||
return page;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public int MidiEvCode {
|
|
||||||
get {
|
|
||||||
return midiEvCode;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public internalEvent (string _id, uint _page, int _evHCode, midiEventSender _evsender)
|
|
||||||
{
|
|
||||||
internalName = _id;
|
|
||||||
page = _page;
|
|
||||||
midiEvCode = _evHCode;
|
|
||||||
evsender = _evsender;
|
|
||||||
}
|
|
||||||
|
|
||||||
int lastknownvalue = -1;
|
|
||||||
|
|
||||||
public int LastKnownValue {
|
|
||||||
get {
|
|
||||||
return lastknownvalue;
|
|
||||||
}
|
|
||||||
set {
|
|
||||||
lastknownvalue = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SendEvent ()
|
|
||||||
{
|
|
||||||
if(evsender !=null)
|
|
||||||
evsender.SendEvent (lastknownvalue);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
abstract class midiEventSender {
|
|
||||||
public abstract void SendEvent (int value);
|
|
||||||
}
|
|
||||||
|
|
||||||
class midiCCEvSender : midiEventSender {
|
|
||||||
readonly MidiEventProvider prov;
|
|
||||||
|
|
||||||
AlsaSeqLib.snd_seq_event_t ev;
|
|
||||||
AlsaSeqLib.snd_seq_event_t ev2;
|
|
||||||
|
|
||||||
public midiCCEvSender (MidiEventProvider _prov, byte _chan, uint _param){
|
|
||||||
prov = _prov;
|
|
||||||
ev = new AlsaSeqLib.snd_seq_event_t();
|
|
||||||
ev.type = AlsaSeqLib.snd_seq_event_type_t.SND_SEQ_EVENT_CONTROLLER;
|
|
||||||
ev.data_ev_ctrl.channel = _chan;
|
|
||||||
ev.data_ev_ctrl.param = _param;
|
|
||||||
ev2 = ev;
|
|
||||||
ev2.data_ev_ctrl.param -= 32;
|
|
||||||
}
|
|
||||||
public override void SendEvent (int value)
|
|
||||||
{
|
|
||||||
if (prov.Fourteenbits && ev2.data_ev_ctrl.param <32 ) {
|
|
||||||
ev2.data_ev_ctrl.value = value >> 7;
|
|
||||||
ev.data_ev_ctrl.value = value & 0xFF;
|
|
||||||
prov.SendEvent (ev2);
|
|
||||||
prov.SendEvent (ev);
|
|
||||||
} else {
|
|
||||||
ev.data_ev_ctrl.value = value * 127 / 255;
|
|
||||||
prov.SendEvent (ev);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class midiPBEvSender : midiEventSender {
|
|
||||||
public override void SendEvent (int value)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class feedbackinfo : IFeedbackInfo
|
|
||||||
{
|
|
||||||
MidiEventProvider prov;
|
|
||||||
readonly internalEvent iev;
|
|
||||||
|
|
||||||
public feedbackinfo (MidiEventProvider _prov, internalEvent _iev)
|
|
||||||
{
|
|
||||||
prov = _prov;
|
|
||||||
iev = _iev;
|
|
||||||
}
|
|
||||||
|
|
||||||
#region IFeedbackInfo implementation
|
|
||||||
bool IFeedbackInfo.FeedBack (byte data)
|
|
||||||
{
|
|
||||||
|
|
||||||
iev.LastKnownValue = data;
|
|
||||||
|
|
||||||
if (prov.CurrentPage == iev.Page || iev.Page == 0) {
|
|
||||||
iev.SendEvent();
|
|
||||||
foreach (int src in prov.feedbacksources) {
|
|
||||||
int lnvk = CombineHash (src, iev.MidiEvCode);
|
|
||||||
if (iev.LastKnownValue != -1)
|
|
||||||
prov.lastValueOfSrc [lnvk] = (byte)iev.LastKnownValue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
#endregion
|
|
||||||
}
|
|
||||||
|
|
||||||
public class MidiDev
|
|
||||||
{
|
|
||||||
string name;
|
|
||||||
|
|
||||||
public string Name { get { return name; } }
|
|
||||||
|
|
||||||
public bool HasFeedback { get; set; }
|
|
||||||
|
|
||||||
readonly List<int> connected = new List<int> ();
|
|
||||||
|
|
||||||
public List<int> ConnectedPorts {
|
|
||||||
get{ return connected;}
|
|
||||||
}
|
|
||||||
|
|
||||||
public MidiDev (string _name)
|
|
||||||
{
|
|
||||||
name = _name;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Etat interne des evenements midi paginés.
|
/// Etat interne des evenements midi paginés.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
readonly Dictionary<string,internalEvent> eventlist = new Dictionary<string, internalEvent> ();
|
readonly Dictionary<string,internalEventDesc> eventlist = new Dictionary<string, internalEventDesc> ();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Liste des peripheriques connus (presents ou non)
|
/// Liste des peripheriques connus (presents ou non)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
readonly Dictionary<string,MidiDev> knowndevices = new Dictionary<string,MidiDev> ();
|
readonly Dictionary<string,MidiDevice> knowndevices = new Dictionary<string,MidiDevice> ();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Liste des ports connectés avec feedback
|
/// Liste des ports connectés avec feedback
|
||||||
|
|
@ -206,13 +49,13 @@ namespace DMX2
|
||||||
/// </summary>
|
/// </summary>
|
||||||
readonly Dictionary<int,byte> lastValueOfSrc = new Dictionary<int, byte> ();
|
readonly Dictionary<int,byte> lastValueOfSrc = new Dictionary<int, byte> ();
|
||||||
// EventData last;
|
// EventData last;
|
||||||
internalEvent levent = null;
|
internalEventDesc levent = null;
|
||||||
bool connected = false;
|
|
||||||
bool guirefreshflag = false;
|
bool guirefreshflag = false;
|
||||||
uint page = 1;
|
uint page = 1;
|
||||||
uint maxpage = 8;
|
uint maxpage = 8;
|
||||||
|
|
||||||
bool fourteenbits = false;
|
protected bool use14b = false;
|
||||||
|
protected int max14bValue = 100;
|
||||||
byte[] fbTmpData = new byte[512];
|
byte[] fbTmpData = new byte[512];
|
||||||
uint pageUpCC = 127;
|
uint pageUpCC = 127;
|
||||||
uint pageDownCC = 126;
|
uint pageDownCC = 126;
|
||||||
|
|
@ -228,7 +71,6 @@ namespace DMX2
|
||||||
Refresh ();
|
Refresh ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public uint PageUpCC {
|
public uint PageUpCC {
|
||||||
get {
|
get {
|
||||||
return pageUpCC;
|
return pageUpCC;
|
||||||
|
|
@ -237,7 +79,6 @@ namespace DMX2
|
||||||
pageUpCC = value;
|
pageUpCC = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public uint PageDownCC {
|
public uint PageDownCC {
|
||||||
get {
|
get {
|
||||||
return pageDownCC;
|
return pageDownCC;
|
||||||
|
|
@ -255,19 +96,26 @@ namespace DMX2
|
||||||
maxpage = value;
|
maxpage = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<byte> UnpaginatedChannels {
|
public List<byte> UnpaginatedChannels {
|
||||||
get {
|
get {
|
||||||
return unpaginatedchannels;
|
return unpaginatedchannels;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool Fourteenbits {
|
public bool Use14bCC {
|
||||||
get {
|
get {
|
||||||
return fourteenbits;
|
return use14b;
|
||||||
}
|
}
|
||||||
set {
|
set {
|
||||||
fourteenbits = value;
|
use14b = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public int Max14bValue {
|
||||||
|
get {
|
||||||
|
return max14bValue;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
max14bValue = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -283,7 +131,7 @@ namespace DMX2
|
||||||
|
|
||||||
public void ConnectDevice (string name)
|
public void ConnectDevice (string name)
|
||||||
{
|
{
|
||||||
knowndevices.Add (name, new MidiDev (name));
|
knowndevices.Add (name, new MidiDevice (name));
|
||||||
AutoConnect ();
|
AutoConnect ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -300,7 +148,7 @@ namespace DMX2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DisconnectDevice (MidiEventProvider.MidiDev dev)
|
public void DisconnectDevice (MidiEventProvider.MidiDevice dev)
|
||||||
{
|
{
|
||||||
if (!knowndevices.ContainsKey (dev.Name))
|
if (!knowndevices.ContainsKey (dev.Name))
|
||||||
return;
|
return;
|
||||||
|
|
@ -318,7 +166,7 @@ namespace DMX2
|
||||||
return knowndevices.ContainsKey (name);
|
return knowndevices.ContainsKey (name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<MidiDev> KnownDevices {
|
public IEnumerable<MidiDevice> KnownDevices {
|
||||||
get {
|
get {
|
||||||
return knowndevices.Values;
|
return knowndevices.Values;
|
||||||
}
|
}
|
||||||
|
|
@ -326,10 +174,10 @@ namespace DMX2
|
||||||
|
|
||||||
public MidiEventProvider (EventManager manager)
|
public MidiEventProvider (EventManager manager)
|
||||||
{
|
{
|
||||||
/*MidiDev dev = new MidiDev("VMPK Input:VMPK Input");
|
/*MidiDevice dev = new MidiDevice("VMPK Input:VMPK Input");
|
||||||
dev.HasFeedback = true;
|
dev.HasFeedback = true;
|
||||||
knowndevices.Add(dev.Name,dev);
|
knowndevices.Add(dev.Name,dev);
|
||||||
dev = new MidiDev("VMPK Output:VMPK Output");
|
dev = new MidiDevice("VMPK Output:VMPK Output");
|
||||||
dev.HasFeedback = true;
|
dev.HasFeedback = true;
|
||||||
knowndevices.Add(dev.Name,dev);*/
|
knowndevices.Add(dev.Name,dev);*/
|
||||||
|
|
||||||
|
|
@ -442,9 +290,6 @@ namespace DMX2
|
||||||
#region IEventProvider implementation
|
#region IEventProvider implementation
|
||||||
|
|
||||||
|
|
||||||
static System.Text.RegularExpressions.Regex regexEventID = new System.Text.RegularExpressions.Regex (
|
|
||||||
@"MIDI-PAGE(?<page>\d+)-(?<id>.+)",
|
|
||||||
System.Text.RegularExpressions.RegexOptions.Compiled);
|
|
||||||
|
|
||||||
bool IEventProvider.Bind (string eventId)
|
bool IEventProvider.Bind (string eventId)
|
||||||
{
|
{
|
||||||
|
|
@ -453,12 +298,23 @@ namespace DMX2
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (! eventlist.ContainsKey (eventId)) {
|
if (! eventlist.ContainsKey (eventId)) {
|
||||||
var res = regexEventID.Match (eventId);
|
Match res = regexEventID.Match (eventId);
|
||||||
if (!res.Success)
|
if (!res.Success)
|
||||||
return false;
|
return false;
|
||||||
uint _page = uint.Parse (res.Groups ["page"].Value);
|
uint _page = uint.Parse (res.Groups ["page"].Value);
|
||||||
int _evHC = res.Groups ["id"].Value.GetHashCode ();
|
int _evHC = res.Groups ["id"].Value.GetHashCode ();
|
||||||
eventlist.Add (eventId, new internalEvent (eventId, _page, _evHC,null));
|
midiEventSender sender = null;
|
||||||
|
|
||||||
|
res = regexCtrlEventID.Match (eventId);
|
||||||
|
if (res.Success) {
|
||||||
|
byte chan = byte.Parse (res.Groups ["chan"].Value);
|
||||||
|
uint param = uint.Parse (res.Groups ["param"].Value);
|
||||||
|
sender = new midiCCEvSender (this, chan, param);
|
||||||
|
} else if ((res = regexPbEventID.Match (eventId)).Success){
|
||||||
|
byte chan = byte.Parse (res.Groups ["chan"].Value);
|
||||||
|
sender = new midiPBEvSender (this, chan);
|
||||||
|
}
|
||||||
|
eventlist.Add (eventId, new internalEventDesc (eventId, _page, _evHC,sender));
|
||||||
}
|
}
|
||||||
|
|
||||||
eventlist [eventId].Bound = true;
|
eventlist [eventId].Bound = true;
|
||||||
|
|
@ -475,8 +331,6 @@ namespace DMX2
|
||||||
|
|
||||||
Gtk.Menu IEventProvider.GetProviderSubMenu (EventManager.EventMenuData state, Gtk.ButtonPressEventHandler handler)
|
Gtk.Menu IEventProvider.GetProviderSubMenu (EventManager.EventMenuData state, Gtk.ButtonPressEventHandler handler)
|
||||||
{
|
{
|
||||||
if (!connected)
|
|
||||||
return null; // Si pas encore recu d'evenements => pas de menu
|
|
||||||
Gtk.Menu retmenu = new Gtk.Menu ();
|
Gtk.Menu retmenu = new Gtk.Menu ();
|
||||||
|
|
||||||
if (levent != null) { // Creation du sous menu "Dernier"
|
if (levent != null) { // Creation du sous menu "Dernier"
|
||||||
|
|
@ -500,7 +354,7 @@ namespace DMX2
|
||||||
sortedKeys.Sort (); // et on les trie
|
sortedKeys.Sort (); // et on les trie
|
||||||
|
|
||||||
foreach (string key in sortedKeys) {
|
foreach (string key in sortedKeys) {
|
||||||
internalEvent evt = eventlist [key];
|
internalEventDesc evt = eventlist [key];
|
||||||
Gtk.MenuItem item = new Gtk.MenuItem (GetDescription (evt.InternalName));
|
Gtk.MenuItem item = new Gtk.MenuItem (GetDescription (evt.InternalName));
|
||||||
item.Data [EventManager.EventIdKey] = evt.InternalName;
|
item.Data [EventManager.EventIdKey] = evt.InternalName;
|
||||||
item.Data [EventManager.StateKey] = state;
|
item.Data [EventManager.StateKey] = state;
|
||||||
|
|
@ -519,7 +373,7 @@ namespace DMX2
|
||||||
|
|
||||||
// Tant qu'il y des evenements midi en attente
|
// Tant qu'il y des evenements midi en attente
|
||||||
while (AlsaSeqLib.GetEvent(out evS)) {
|
while (AlsaSeqLib.GetEvent(out evS)) {
|
||||||
|
Console.WriteLine(string.Format ("event {0}", evS.type) );
|
||||||
string id = null;
|
string id = null;
|
||||||
int value = 0;
|
int value = 0;
|
||||||
byte channel = 255;
|
byte channel = 255;
|
||||||
|
|
@ -543,23 +397,24 @@ namespace DMX2
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
channel = evS.data_ev_ctrl.channel;
|
channel = evS.data_ev_ctrl.channel;
|
||||||
if (fourteenbits && evS.data_ev_ctrl.param < 64) {
|
|
||||||
|
if (use14b && evS.data_ev_ctrl.param < 64) {
|
||||||
long msbAddr;
|
long msbAddr;
|
||||||
if (evS.data_ev_ctrl.param < 32) {
|
if (evS.data_ev_ctrl.param < 32) {
|
||||||
msbAddr = evS.data_ev_ctrl.channel * 32 + evS.data_ev_ctrl.param;
|
msbAddr = evS.data_ev_ctrl.channel * 32 + evS.data_ev_ctrl.param;
|
||||||
fbTmpData [msbAddr] = (byte)evS.data_ev_ctrl.value;
|
fbTmpData [msbAddr] = (byte)evS.data_ev_ctrl.value;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
id = string.Format ("CTRL-C{0}P{1}", evS.data_ev_ctrl.channel, evS.data_ev_ctrl.param-32);
|
evS.data_ev_ctrl.param -= 32;
|
||||||
msbAddr = evS.data_ev_ctrl.channel * 32 + evS.data_ev_ctrl.param - 32;
|
msbAddr = evS.data_ev_ctrl.channel * 32 + evS.data_ev_ctrl.param;
|
||||||
value = ((fbTmpData [msbAddr] << 7) ^ evS.data_ev_ctrl.value);
|
value = ((fbTmpData [msbAddr] << 7) ^ evS.data_ev_ctrl.value);
|
||||||
|
value = 255 * value / max14bValue;
|
||||||
|
if (value > 255) value = 255;
|
||||||
} else {
|
} else {
|
||||||
id = string.Format ("CTRL-C{0}P{1}", evS.data_ev_ctrl.channel, evS.data_ev_ctrl.param);
|
|
||||||
value = 255 * evS.data_ev_ctrl.value / 127; // Conversion {0,127} => {0,255}
|
value = 255 * evS.data_ev_ctrl.value / 127; // Conversion {0,127} => {0,255}
|
||||||
}
|
}
|
||||||
|
id = string.Format ("CTRL-C{0}P{1}", evS.data_ev_ctrl.channel, evS.data_ev_ctrl.param);
|
||||||
break;
|
break;
|
||||||
case AlsaSeqLib.snd_seq_event_type_t.SND_SEQ_EVENT_NOTEON:
|
case AlsaSeqLib.snd_seq_event_type_t.SND_SEQ_EVENT_NOTEON:
|
||||||
id = string.Format ("NOTE-C{0}N{1}", evS.data_ev_note.channel, evS.data_ev_note.note);
|
id = string.Format ("NOTE-C{0}N{1}", evS.data_ev_note.channel, evS.data_ev_note.note);
|
||||||
|
|
@ -580,9 +435,6 @@ namespace DMX2
|
||||||
if (value > 255)
|
if (value > 255)
|
||||||
value = 255;
|
value = 255;
|
||||||
break;
|
break;
|
||||||
case AlsaSeqLib.snd_seq_event_type_t.SND_SEQ_EVENT_CLOCK:
|
|
||||||
case AlsaSeqLib.snd_seq_event_type_t.SND_SEQ_EVENT_SENSING:
|
|
||||||
continue;
|
|
||||||
case AlsaSeqLib.snd_seq_event_type_t.SND_SEQ_EVENT_PGMCHANGE:
|
case AlsaSeqLib.snd_seq_event_type_t.SND_SEQ_EVENT_PGMCHANGE:
|
||||||
CurrentPage = (uint)evS.data_ev_ctrl.value;
|
CurrentPage = (uint)evS.data_ev_ctrl.value;
|
||||||
continue;
|
continue;
|
||||||
|
|
@ -593,6 +445,10 @@ namespace DMX2
|
||||||
);
|
);
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
/*case AlsaSeqLib.snd_seq_event_type_t.SND_SEQ_EVENT_CLOCK:
|
||||||
|
case AlsaSeqLib.snd_seq_event_type_t.SND_SEQ_EVENT_SENSING:
|
||||||
|
continue;*/
|
||||||
|
|
||||||
default:
|
default:
|
||||||
id = null;
|
id = null;
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
|
|
@ -602,10 +458,6 @@ namespace DMX2
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
connected = true;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (id != null) {
|
if (id != null) {
|
||||||
// Hashcode de l'ev Midi, non pagine
|
// Hashcode de l'ev Midi, non pagine
|
||||||
int evHC = id.GetHashCode ();
|
int evHC = id.GetHashCode ();
|
||||||
|
|
@ -623,21 +475,28 @@ namespace DMX2
|
||||||
// Creation de l'objet interne si innexistant
|
// Creation de l'objet interne si innexistant
|
||||||
if (!eventlist.ContainsKey (id)) {
|
if (!eventlist.ContainsKey (id)) {
|
||||||
switch (evS.type) {
|
switch (evS.type) {
|
||||||
|
// TODO : Pitchbend feedback
|
||||||
case AlsaSeqLib.snd_seq_event_type_t.SND_SEQ_EVENT_CONTROLLER:
|
case AlsaSeqLib.snd_seq_event_type_t.SND_SEQ_EVENT_CONTROLLER:
|
||||||
eventlist.Add (id, new internalEvent (id, page, evHC,
|
eventlist.Add (id, new internalEventDesc (id, page, evHC,
|
||||||
new midiCCEvSender(this,channel,evS.data_ev_ctrl.param))
|
new midiCCEvSender(this,channel,evS.data_ev_ctrl.param))
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
|
case AlsaSeqLib.snd_seq_event_type_t.SND_SEQ_EVENT_PITCHBEND:
|
||||||
|
eventlist.Add (id, new internalEventDesc (id, page, evHC,
|
||||||
|
new midiPBEvSender(this,channel))
|
||||||
|
);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
eventlist.Add (id, new internalEvent (id, page, evHC, null));
|
eventlist.Add (id, new internalEventDesc (id, page, evHC, null));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
levent = eventlist [id]; //Dernier Evenement recu conserve pour menu
|
levent = eventlist [id]; //Dernier Evenement recu conserve pour menu
|
||||||
|
|
||||||
if (!lastValueOfSrc.ContainsKey (lnvk))
|
if (!lastValueOfSrc.ContainsKey (lnvk)) {
|
||||||
lastValueOfSrc [lnvk] = (byte)value;
|
lastValueOfSrc [lnvk] = (byte)value;
|
||||||
|
} else if (lastValueOfSrc [lnvk] == (byte)value)
|
||||||
|
continue;
|
||||||
|
|
||||||
EventData evData = new EventData ();
|
EventData evData = new EventData ();
|
||||||
evData.id = id;
|
evData.id = id;
|
||||||
|
|
@ -664,6 +523,10 @@ namespace DMX2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static System.Text.RegularExpressions.Regex regexEventID = new System.Text.RegularExpressions.Regex (
|
||||||
|
@"MIDI-PAGE(?<page>\d+)-(?<id>.+)",
|
||||||
|
System.Text.RegularExpressions.RegexOptions.Compiled);
|
||||||
|
|
||||||
static System.Text.RegularExpressions.Regex regexCtrlEventID = new System.Text.RegularExpressions.Regex (
|
static System.Text.RegularExpressions.Regex regexCtrlEventID = new System.Text.RegularExpressions.Regex (
|
||||||
@"MIDI-PAGE(?<page>\d+)-CTRL-C(?<chan>\d+)P(?<param>\d+)",
|
@"MIDI-PAGE(?<page>\d+)-CTRL-C(?<chan>\d+)P(?<param>\d+)",
|
||||||
System.Text.RegularExpressions.RegexOptions.Compiled);
|
System.Text.RegularExpressions.RegexOptions.Compiled);
|
||||||
|
|
@ -707,20 +570,7 @@ namespace DMX2
|
||||||
if (!eventlist.ContainsKey (eventId))
|
if (!eventlist.ContainsKey (eventId))
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
return new feedbackinfo (this, eventlist [eventId]);
|
return new midifeedbackinfo (this, eventlist [eventId]);
|
||||||
|
|
||||||
/*var res = regexCtrlEventID.Match (eventId);
|
|
||||||
if (res.Success) {
|
|
||||||
byte chan = byte.Parse (res.Groups ["chan"].Value);
|
|
||||||
uint param = uint.Parse (res.Groups ["param"].Value);
|
|
||||||
return new ctrlfeedbackinfo (this, eventlist [eventId], chan, param);
|
|
||||||
}
|
|
||||||
res = regexPbEventID.Match (eventId);
|
|
||||||
if (res.Success) {
|
|
||||||
byte chan = byte.Parse (res.Groups ["chan"].Value);
|
|
||||||
return new pitchbendfeedbackinfo (this, eventlist [eventId], chan);
|
|
||||||
}
|
|
||||||
return null;*/
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -752,10 +602,11 @@ namespace DMX2
|
||||||
el.SetAttribute ("maxpage", maxpage.ToString ());
|
el.SetAttribute ("maxpage", maxpage.ToString ());
|
||||||
el.SetAttribute ("pageUpCC", pageUpCC.ToString ());
|
el.SetAttribute ("pageUpCC", pageUpCC.ToString ());
|
||||||
el.SetAttribute ("pageDownCC", pageDownCC.ToString ());
|
el.SetAttribute ("pageDownCC", pageDownCC.ToString ());
|
||||||
el.SetAttribute ("fourteenbits", fourteenbits?"true":"false");
|
el.SetAttribute ("fourteenbits", use14b?"true":"false");
|
||||||
|
el.SetAttribute ("max14b", max14bValue.ToString ());
|
||||||
|
|
||||||
System.Xml.XmlElement xmlEl;
|
System.Xml.XmlElement xmlEl;
|
||||||
foreach (MidiDev dev in knowndevices.Values) {
|
foreach (MidiDevice dev in knowndevices.Values) {
|
||||||
el.AppendChild (xmlEl = parent.OwnerDocument.CreateElement ("MidiDev"));
|
el.AppendChild (xmlEl = parent.OwnerDocument.CreateElement ("MidiDev"));
|
||||||
xmlEl.SetAttribute ("name", dev.Name);
|
xmlEl.SetAttribute ("name", dev.Name);
|
||||||
xmlEl.SetAttribute ("feedback", dev.HasFeedback.ToString ());
|
xmlEl.SetAttribute ("feedback", dev.HasFeedback.ToString ());
|
||||||
|
|
@ -775,13 +626,14 @@ namespace DMX2
|
||||||
maxpage = uint.Parse (el.TryGetAttribute ("maxpage", "8"));
|
maxpage = uint.Parse (el.TryGetAttribute ("maxpage", "8"));
|
||||||
pageUpCC = uint.Parse (el.TryGetAttribute ("pageUpCC", "127"));
|
pageUpCC = uint.Parse (el.TryGetAttribute ("pageUpCC", "127"));
|
||||||
pageDownCC = uint.Parse (el.TryGetAttribute ("pageDownCC", "126"));
|
pageDownCC = uint.Parse (el.TryGetAttribute ("pageDownCC", "126"));
|
||||||
fourteenbits = el.TryGetAttribute ("fourteenbits", string.Empty).Equals ("true");
|
use14b = el.TryGetAttribute ("fourteenbits", string.Empty).Equals ("true");
|
||||||
|
max14bValue = int.Parse (el.TryGetAttribute ("max14b", "255"));
|
||||||
|
|
||||||
foreach (var xd in el.GetElementsByTagName("MidiDev")) {
|
foreach (var xd in el.GetElementsByTagName("MidiDev")) {
|
||||||
System.Xml.XmlElement xdev = xd as System.Xml.XmlElement;
|
System.Xml.XmlElement xdev = xd as System.Xml.XmlElement;
|
||||||
string name = xdev.GetAttribute ("name");
|
string name = xdev.GetAttribute ("name");
|
||||||
if (!knowndevices.ContainsKey (name))
|
if (!knowndevices.ContainsKey (name))
|
||||||
knowndevices.Add (name, new MidiDev (name));
|
knowndevices.Add (name, new MidiDevice (name));
|
||||||
knowndevices [name].HasFeedback = bool.Parse (xdev.TryGetAttribute ("feedback", "false"));
|
knowndevices [name].HasFeedback = bool.Parse (xdev.TryGetAttribute ("feedback", "false"));
|
||||||
}
|
}
|
||||||
unpaginatedchannels.Clear ();
|
unpaginatedchannels.Clear ();
|
||||||
|
|
@ -793,5 +645,176 @@ namespace DMX2
|
||||||
AutoConnect ();
|
AutoConnect ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class internalEventDesc
|
||||||
|
{
|
||||||
|
|
||||||
|
readonly string internalName;
|
||||||
|
bool bound = false;
|
||||||
|
readonly uint page;
|
||||||
|
readonly int midiEvCode;
|
||||||
|
|
||||||
|
readonly midiEventSender evsender;
|
||||||
|
|
||||||
|
public bool Bound {
|
||||||
|
get {
|
||||||
|
return bound;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
bound = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string InternalName {
|
||||||
|
get {
|
||||||
|
return internalName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public uint Page {
|
||||||
|
get {
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int MidiEvCode {
|
||||||
|
get {
|
||||||
|
return midiEvCode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public internalEventDesc (string _id, uint _page, int _evHCode, midiEventSender _evsender)
|
||||||
|
{
|
||||||
|
internalName = _id;
|
||||||
|
page = _page;
|
||||||
|
midiEvCode = _evHCode;
|
||||||
|
evsender = _evsender;
|
||||||
|
}
|
||||||
|
|
||||||
|
int lastknownvalue = -1;
|
||||||
|
|
||||||
|
public int LastKnownValue {
|
||||||
|
get {
|
||||||
|
return lastknownvalue;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
lastknownvalue = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SendEvent ()
|
||||||
|
{
|
||||||
|
if(evsender !=null)
|
||||||
|
evsender.SendEvent (lastknownvalue);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract class midiEventSender {
|
||||||
|
public abstract void SendEvent (int value);
|
||||||
|
}
|
||||||
|
|
||||||
|
class midiCCEvSender : midiEventSender {
|
||||||
|
readonly MidiEventProvider prov;
|
||||||
|
|
||||||
|
AlsaSeqLib.snd_seq_event_t ev;
|
||||||
|
AlsaSeqLib.snd_seq_event_t ev2;
|
||||||
|
|
||||||
|
public midiCCEvSender (MidiEventProvider _prov, byte _chan, uint _param){
|
||||||
|
prov = _prov;
|
||||||
|
ev = new AlsaSeqLib.snd_seq_event_t();
|
||||||
|
ev.type = AlsaSeqLib.snd_seq_event_type_t.SND_SEQ_EVENT_CONTROLLER;
|
||||||
|
ev.data_ev_ctrl.channel = _chan;
|
||||||
|
ev.data_ev_ctrl.param = _param;
|
||||||
|
ev2 = ev;
|
||||||
|
ev2.data_ev_ctrl.param += 32;
|
||||||
|
}
|
||||||
|
public override void SendEvent (int value)
|
||||||
|
{
|
||||||
|
if (prov.use14b && ev.data_ev_ctrl.param <32 ) {
|
||||||
|
value = value * prov.max14bValue / 255;
|
||||||
|
ev.data_ev_ctrl.value = value >> 7;
|
||||||
|
ev2.data_ev_ctrl.value = value & 0xFF;
|
||||||
|
prov.SendEvent (ev);
|
||||||
|
prov.SendEvent (ev2);
|
||||||
|
} else {
|
||||||
|
ev.data_ev_ctrl.value = value * 127 / 255;
|
||||||
|
prov.SendEvent (ev);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class midiPBEvSender : midiEventSender {
|
||||||
|
readonly MidiEventProvider prov;
|
||||||
|
|
||||||
|
AlsaSeqLib.snd_seq_event_t ev;
|
||||||
|
|
||||||
|
public midiPBEvSender (MidiEventProvider _prov, byte _chan){
|
||||||
|
prov = _prov;
|
||||||
|
ev = new AlsaSeqLib.snd_seq_event_t();
|
||||||
|
ev.type = AlsaSeqLib.snd_seq_event_type_t.SND_SEQ_EVENT_PITCHBEND;
|
||||||
|
ev.data_ev_ctrl.channel = _chan;
|
||||||
|
|
||||||
|
}
|
||||||
|
public override void SendEvent (int value)
|
||||||
|
{ // value = ((evS.data_ev_ctrl.value + 7000) * 255 / 14000);
|
||||||
|
|
||||||
|
ev.data_ev_ctrl.value = value * 14000 / 255 - 7000;
|
||||||
|
prov.SendEvent (ev);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class midifeedbackinfo : IFeedbackInfo
|
||||||
|
{
|
||||||
|
MidiEventProvider prov;
|
||||||
|
readonly internalEventDesc iev;
|
||||||
|
|
||||||
|
public midifeedbackinfo (MidiEventProvider _prov, internalEventDesc _iev)
|
||||||
|
{
|
||||||
|
prov = _prov;
|
||||||
|
iev = _iev;
|
||||||
|
}
|
||||||
|
|
||||||
|
#region IFeedbackInfo implementation
|
||||||
|
bool IFeedbackInfo.FeedBack (byte data)
|
||||||
|
{
|
||||||
|
|
||||||
|
iev.LastKnownValue = data;
|
||||||
|
|
||||||
|
if (prov.CurrentPage == iev.Page || iev.Page == 0) {
|
||||||
|
iev.SendEvent();
|
||||||
|
foreach (int src in prov.feedbacksources) {
|
||||||
|
int lnvk = CombineHash (src, iev.MidiEvCode);
|
||||||
|
if (iev.LastKnownValue != -1)
|
||||||
|
prov.lastValueOfSrc [lnvk] = (byte)iev.LastKnownValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
|
||||||
|
public class MidiDevice
|
||||||
|
{
|
||||||
|
string name;
|
||||||
|
|
||||||
|
public string Name { get { return name; } }
|
||||||
|
|
||||||
|
public bool HasFeedback { get; set; }
|
||||||
|
|
||||||
|
readonly List<int> connected = new List<int> ();
|
||||||
|
|
||||||
|
public List<int> ConnectedPorts {
|
||||||
|
get{ return connected;}
|
||||||
|
}
|
||||||
|
|
||||||
|
public MidiDevice (string _name)
|
||||||
|
{
|
||||||
|
name = _name;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -322,8 +322,11 @@ namespace DMX2
|
||||||
circuitsSeq.Remove (c);
|
circuitsSeq.Remove (c);
|
||||||
valeurscourantes.Remove (c);
|
valeurscourantes.Remove (c);
|
||||||
valeursinitiales.Remove (c);
|
valeursinitiales.Remove (c);
|
||||||
|
if (targets.ContainsKey (c)) {
|
||||||
|
Conduite.Courante.EventManager.Unbind (targets [c]);
|
||||||
targets.Remove (c);
|
targets.Remove (c);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public override int ValeurCircuit (Circuit c)
|
public override int ValeurCircuit (Circuit c)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -13,11 +13,13 @@ namespace DMX2
|
||||||
private global::Gtk.Label label3;
|
private global::Gtk.Label label3;
|
||||||
private global::Gtk.Label label4;
|
private global::Gtk.Label label4;
|
||||||
private global::Gtk.Label label5;
|
private global::Gtk.Label label5;
|
||||||
|
private global::Gtk.Label label6;
|
||||||
|
private global::Gtk.SpinButton spinMax14b;
|
||||||
private global::Gtk.SpinButton spinNbPage;
|
private global::Gtk.SpinButton spinNbPage;
|
||||||
private global::Gtk.SpinButton spinPageDown;
|
private global::Gtk.SpinButton spinPageDown;
|
||||||
private global::Gtk.SpinButton spinPageUp;
|
private global::Gtk.SpinButton spinPageUp;
|
||||||
private global::Gtk.SpinButton spinUPCh;
|
private global::Gtk.SpinButton spinUPCh;
|
||||||
private global::Gtk.Label GtkLabel5;
|
private global::Gtk.Label GtkLabel6;
|
||||||
private global::Gtk.Frame frame3;
|
private global::Gtk.Frame frame3;
|
||||||
private global::Gtk.Alignment GtkAlignment2;
|
private global::Gtk.Alignment GtkAlignment2;
|
||||||
private global::Gtk.VBox vbox5;
|
private global::Gtk.VBox vbox5;
|
||||||
|
|
@ -61,7 +63,7 @@ namespace DMX2
|
||||||
this.GtkAlignment3.Name = "GtkAlignment3";
|
this.GtkAlignment3.Name = "GtkAlignment3";
|
||||||
this.GtkAlignment3.LeftPadding = ((uint)(12));
|
this.GtkAlignment3.LeftPadding = ((uint)(12));
|
||||||
// Container child GtkAlignment3.Gtk.Container+ContainerChild
|
// Container child GtkAlignment3.Gtk.Container+ContainerChild
|
||||||
this.table2 = new global::Gtk.Table (((uint)(5)), ((uint)(2)), false);
|
this.table2 = new global::Gtk.Table (((uint)(6)), ((uint)(2)), false);
|
||||||
this.table2.Name = "table2";
|
this.table2.Name = "table2";
|
||||||
this.table2.RowSpacing = ((uint)(6));
|
this.table2.RowSpacing = ((uint)(6));
|
||||||
this.table2.ColumnSpacing = ((uint)(6));
|
this.table2.ColumnSpacing = ((uint)(6));
|
||||||
|
|
@ -123,6 +125,34 @@ namespace DMX2
|
||||||
w6.XOptions = ((global::Gtk.AttachOptions)(4));
|
w6.XOptions = ((global::Gtk.AttachOptions)(4));
|
||||||
w6.YOptions = ((global::Gtk.AttachOptions)(4));
|
w6.YOptions = ((global::Gtk.AttachOptions)(4));
|
||||||
// Container child table2.Gtk.Table+TableChild
|
// Container child table2.Gtk.Table+TableChild
|
||||||
|
this.label6 = new global::Gtk.Label ();
|
||||||
|
this.label6.Name = "label6";
|
||||||
|
this.label6.Xpad = 20;
|
||||||
|
this.label6.Xalign = 0F;
|
||||||
|
this.label6.LabelProp = "Valeur entrée max :";
|
||||||
|
this.table2.Add (this.label6);
|
||||||
|
global::Gtk.Table.TableChild w7 = ((global::Gtk.Table.TableChild)(this.table2 [this.label6]));
|
||||||
|
w7.TopAttach = ((uint)(5));
|
||||||
|
w7.BottomAttach = ((uint)(6));
|
||||||
|
w7.XOptions = ((global::Gtk.AttachOptions)(4));
|
||||||
|
w7.YOptions = ((global::Gtk.AttachOptions)(4));
|
||||||
|
// Container child table2.Gtk.Table+TableChild
|
||||||
|
this.spinMax14b = new global::Gtk.SpinButton (1, 16383, 1);
|
||||||
|
this.spinMax14b.CanFocus = true;
|
||||||
|
this.spinMax14b.Name = "spinMax14b";
|
||||||
|
this.spinMax14b.Adjustment.PageIncrement = 10;
|
||||||
|
this.spinMax14b.ClimbRate = 1;
|
||||||
|
this.spinMax14b.Numeric = true;
|
||||||
|
this.spinMax14b.Value = 127;
|
||||||
|
this.table2.Add (this.spinMax14b);
|
||||||
|
global::Gtk.Table.TableChild w8 = ((global::Gtk.Table.TableChild)(this.table2 [this.spinMax14b]));
|
||||||
|
w8.TopAttach = ((uint)(5));
|
||||||
|
w8.BottomAttach = ((uint)(6));
|
||||||
|
w8.LeftAttach = ((uint)(1));
|
||||||
|
w8.RightAttach = ((uint)(2));
|
||||||
|
w8.XOptions = ((global::Gtk.AttachOptions)(4));
|
||||||
|
w8.YOptions = ((global::Gtk.AttachOptions)(4));
|
||||||
|
// Container child table2.Gtk.Table+TableChild
|
||||||
this.spinNbPage = new global::Gtk.SpinButton (1, 99, 1);
|
this.spinNbPage = new global::Gtk.SpinButton (1, 99, 1);
|
||||||
this.spinNbPage.CanFocus = true;
|
this.spinNbPage.CanFocus = true;
|
||||||
this.spinNbPage.Name = "spinNbPage";
|
this.spinNbPage.Name = "spinNbPage";
|
||||||
|
|
@ -131,11 +161,11 @@ namespace DMX2
|
||||||
this.spinNbPage.Numeric = true;
|
this.spinNbPage.Numeric = true;
|
||||||
this.spinNbPage.Value = 8;
|
this.spinNbPage.Value = 8;
|
||||||
this.table2.Add (this.spinNbPage);
|
this.table2.Add (this.spinNbPage);
|
||||||
global::Gtk.Table.TableChild w7 = ((global::Gtk.Table.TableChild)(this.table2 [this.spinNbPage]));
|
global::Gtk.Table.TableChild w9 = ((global::Gtk.Table.TableChild)(this.table2 [this.spinNbPage]));
|
||||||
w7.LeftAttach = ((uint)(1));
|
w9.LeftAttach = ((uint)(1));
|
||||||
w7.RightAttach = ((uint)(2));
|
w9.RightAttach = ((uint)(2));
|
||||||
w7.XOptions = ((global::Gtk.AttachOptions)(4));
|
w9.XOptions = ((global::Gtk.AttachOptions)(4));
|
||||||
w7.YOptions = ((global::Gtk.AttachOptions)(4));
|
w9.YOptions = ((global::Gtk.AttachOptions)(4));
|
||||||
// Container child table2.Gtk.Table+TableChild
|
// Container child table2.Gtk.Table+TableChild
|
||||||
this.spinPageDown = new global::Gtk.SpinButton (1, 127, 1);
|
this.spinPageDown = new global::Gtk.SpinButton (1, 127, 1);
|
||||||
this.spinPageDown.CanFocus = true;
|
this.spinPageDown.CanFocus = true;
|
||||||
|
|
@ -145,13 +175,13 @@ namespace DMX2
|
||||||
this.spinPageDown.Numeric = true;
|
this.spinPageDown.Numeric = true;
|
||||||
this.spinPageDown.Value = 126;
|
this.spinPageDown.Value = 126;
|
||||||
this.table2.Add (this.spinPageDown);
|
this.table2.Add (this.spinPageDown);
|
||||||
global::Gtk.Table.TableChild w8 = ((global::Gtk.Table.TableChild)(this.table2 [this.spinPageDown]));
|
global::Gtk.Table.TableChild w10 = ((global::Gtk.Table.TableChild)(this.table2 [this.spinPageDown]));
|
||||||
w8.TopAttach = ((uint)(3));
|
w10.TopAttach = ((uint)(3));
|
||||||
w8.BottomAttach = ((uint)(4));
|
w10.BottomAttach = ((uint)(4));
|
||||||
w8.LeftAttach = ((uint)(1));
|
w10.LeftAttach = ((uint)(1));
|
||||||
w8.RightAttach = ((uint)(2));
|
w10.RightAttach = ((uint)(2));
|
||||||
w8.XOptions = ((global::Gtk.AttachOptions)(4));
|
w10.XOptions = ((global::Gtk.AttachOptions)(4));
|
||||||
w8.YOptions = ((global::Gtk.AttachOptions)(4));
|
w10.YOptions = ((global::Gtk.AttachOptions)(4));
|
||||||
// Container child table2.Gtk.Table+TableChild
|
// Container child table2.Gtk.Table+TableChild
|
||||||
this.spinPageUp = new global::Gtk.SpinButton (1, 127, 1);
|
this.spinPageUp = new global::Gtk.SpinButton (1, 127, 1);
|
||||||
this.spinPageUp.CanFocus = true;
|
this.spinPageUp.CanFocus = true;
|
||||||
|
|
@ -161,13 +191,13 @@ namespace DMX2
|
||||||
this.spinPageUp.Numeric = true;
|
this.spinPageUp.Numeric = true;
|
||||||
this.spinPageUp.Value = 127;
|
this.spinPageUp.Value = 127;
|
||||||
this.table2.Add (this.spinPageUp);
|
this.table2.Add (this.spinPageUp);
|
||||||
global::Gtk.Table.TableChild w9 = ((global::Gtk.Table.TableChild)(this.table2 [this.spinPageUp]));
|
global::Gtk.Table.TableChild w11 = ((global::Gtk.Table.TableChild)(this.table2 [this.spinPageUp]));
|
||||||
w9.TopAttach = ((uint)(2));
|
w11.TopAttach = ((uint)(2));
|
||||||
w9.BottomAttach = ((uint)(3));
|
w11.BottomAttach = ((uint)(3));
|
||||||
w9.LeftAttach = ((uint)(1));
|
w11.LeftAttach = ((uint)(1));
|
||||||
w9.RightAttach = ((uint)(2));
|
w11.RightAttach = ((uint)(2));
|
||||||
w9.XOptions = ((global::Gtk.AttachOptions)(4));
|
w11.XOptions = ((global::Gtk.AttachOptions)(4));
|
||||||
w9.YOptions = ((global::Gtk.AttachOptions)(4));
|
w11.YOptions = ((global::Gtk.AttachOptions)(4));
|
||||||
// Container child table2.Gtk.Table+TableChild
|
// Container child table2.Gtk.Table+TableChild
|
||||||
this.spinUPCh = new global::Gtk.SpinButton (1, 16, 1);
|
this.spinUPCh = new global::Gtk.SpinButton (1, 16, 1);
|
||||||
this.spinUPCh.CanFocus = true;
|
this.spinUPCh.CanFocus = true;
|
||||||
|
|
@ -177,24 +207,24 @@ namespace DMX2
|
||||||
this.spinUPCh.Numeric = true;
|
this.spinUPCh.Numeric = true;
|
||||||
this.spinUPCh.Value = 1;
|
this.spinUPCh.Value = 1;
|
||||||
this.table2.Add (this.spinUPCh);
|
this.table2.Add (this.spinUPCh);
|
||||||
global::Gtk.Table.TableChild w10 = ((global::Gtk.Table.TableChild)(this.table2 [this.spinUPCh]));
|
global::Gtk.Table.TableChild w12 = ((global::Gtk.Table.TableChild)(this.table2 [this.spinUPCh]));
|
||||||
w10.TopAttach = ((uint)(1));
|
w12.TopAttach = ((uint)(1));
|
||||||
w10.BottomAttach = ((uint)(2));
|
w12.BottomAttach = ((uint)(2));
|
||||||
w10.LeftAttach = ((uint)(1));
|
w12.LeftAttach = ((uint)(1));
|
||||||
w10.RightAttach = ((uint)(2));
|
w12.RightAttach = ((uint)(2));
|
||||||
w10.XOptions = ((global::Gtk.AttachOptions)(4));
|
w12.XOptions = ((global::Gtk.AttachOptions)(4));
|
||||||
w10.YOptions = ((global::Gtk.AttachOptions)(4));
|
w12.YOptions = ((global::Gtk.AttachOptions)(4));
|
||||||
this.GtkAlignment3.Add (this.table2);
|
this.GtkAlignment3.Add (this.table2);
|
||||||
this.frame2.Add (this.GtkAlignment3);
|
this.frame2.Add (this.GtkAlignment3);
|
||||||
this.GtkLabel5 = new global::Gtk.Label ();
|
this.GtkLabel6 = new global::Gtk.Label ();
|
||||||
this.GtkLabel5.Name = "GtkLabel5";
|
this.GtkLabel6.Name = "GtkLabel6";
|
||||||
this.GtkLabel5.LabelProp = "<b>Options Midi</b>";
|
this.GtkLabel6.LabelProp = "<b>Options Midi</b>";
|
||||||
this.GtkLabel5.UseMarkup = true;
|
this.GtkLabel6.UseMarkup = true;
|
||||||
this.frame2.LabelWidget = this.GtkLabel5;
|
this.frame2.LabelWidget = this.GtkLabel6;
|
||||||
this.table1.Add (this.frame2);
|
this.table1.Add (this.frame2);
|
||||||
global::Gtk.Table.TableChild w13 = ((global::Gtk.Table.TableChild)(this.table1 [this.frame2]));
|
global::Gtk.Table.TableChild w15 = ((global::Gtk.Table.TableChild)(this.table1 [this.frame2]));
|
||||||
w13.XOptions = ((global::Gtk.AttachOptions)(4));
|
w15.XOptions = ((global::Gtk.AttachOptions)(4));
|
||||||
w13.YOptions = ((global::Gtk.AttachOptions)(4));
|
w15.YOptions = ((global::Gtk.AttachOptions)(4));
|
||||||
// Container child table1.Gtk.Table+TableChild
|
// Container child table1.Gtk.Table+TableChild
|
||||||
this.frame3 = new global::Gtk.Frame ();
|
this.frame3 = new global::Gtk.Frame ();
|
||||||
this.frame3.Name = "frame3";
|
this.frame3.Name = "frame3";
|
||||||
|
|
@ -216,10 +246,10 @@ namespace DMX2
|
||||||
this.chkFB.DrawIndicator = true;
|
this.chkFB.DrawIndicator = true;
|
||||||
this.chkFB.UseUnderline = true;
|
this.chkFB.UseUnderline = true;
|
||||||
this.vbox5.Add (this.chkFB);
|
this.vbox5.Add (this.chkFB);
|
||||||
global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.vbox5 [this.chkFB]));
|
global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.vbox5 [this.chkFB]));
|
||||||
w14.Position = 0;
|
w16.Position = 0;
|
||||||
w14.Expand = false;
|
w16.Expand = false;
|
||||||
w14.Fill = false;
|
w16.Fill = false;
|
||||||
this.GtkAlignment2.Add (this.vbox5);
|
this.GtkAlignment2.Add (this.vbox5);
|
||||||
this.frame3.Add (this.GtkAlignment2);
|
this.frame3.Add (this.GtkAlignment2);
|
||||||
this.GtkLabel3 = new global::Gtk.Label ();
|
this.GtkLabel3 = new global::Gtk.Label ();
|
||||||
|
|
@ -228,11 +258,11 @@ namespace DMX2
|
||||||
this.GtkLabel3.UseMarkup = true;
|
this.GtkLabel3.UseMarkup = true;
|
||||||
this.frame3.LabelWidget = this.GtkLabel3;
|
this.frame3.LabelWidget = this.GtkLabel3;
|
||||||
this.table1.Add (this.frame3);
|
this.table1.Add (this.frame3);
|
||||||
global::Gtk.Table.TableChild w17 = ((global::Gtk.Table.TableChild)(this.table1 [this.frame3]));
|
global::Gtk.Table.TableChild w19 = ((global::Gtk.Table.TableChild)(this.table1 [this.frame3]));
|
||||||
w17.TopAttach = ((uint)(2));
|
w19.TopAttach = ((uint)(2));
|
||||||
w17.BottomAttach = ((uint)(3));
|
w19.BottomAttach = ((uint)(3));
|
||||||
w17.XOptions = ((global::Gtk.AttachOptions)(4));
|
w19.XOptions = ((global::Gtk.AttachOptions)(4));
|
||||||
w17.YOptions = ((global::Gtk.AttachOptions)(4));
|
w19.YOptions = ((global::Gtk.AttachOptions)(4));
|
||||||
// Container child table1.Gtk.Table+TableChild
|
// Container child table1.Gtk.Table+TableChild
|
||||||
this.hbuttonbox2 = new global::Gtk.HButtonBox ();
|
this.hbuttonbox2 = new global::Gtk.HButtonBox ();
|
||||||
this.hbuttonbox2.Name = "hbuttonbox2";
|
this.hbuttonbox2.Name = "hbuttonbox2";
|
||||||
|
|
@ -243,25 +273,25 @@ namespace DMX2
|
||||||
this.btnActiv.Name = "btnActiv";
|
this.btnActiv.Name = "btnActiv";
|
||||||
this.btnActiv.UseUnderline = true;
|
this.btnActiv.UseUnderline = true;
|
||||||
// Container child btnActiv.Gtk.Container+ContainerChild
|
// Container child btnActiv.Gtk.Container+ContainerChild
|
||||||
global::Gtk.Alignment w18 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F);
|
global::Gtk.Alignment w20 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F);
|
||||||
// Container child GtkAlignment.Gtk.Container+ContainerChild
|
// Container child GtkAlignment.Gtk.Container+ContainerChild
|
||||||
global::Gtk.HBox w19 = new global::Gtk.HBox ();
|
global::Gtk.HBox w21 = new global::Gtk.HBox ();
|
||||||
w19.Spacing = 2;
|
w21.Spacing = 2;
|
||||||
// Container child GtkHBox.Gtk.Container+ContainerChild
|
// Container child GtkHBox.Gtk.Container+ContainerChild
|
||||||
global::Gtk.Image w20 = new global::Gtk.Image ();
|
global::Gtk.Image w22 = new global::Gtk.Image ();
|
||||||
w20.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-go-down", global::Gtk.IconSize.Menu);
|
w22.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-go-down", global::Gtk.IconSize.Menu);
|
||||||
w19.Add (w20);
|
w21.Add (w22);
|
||||||
// Container child GtkHBox.Gtk.Container+ContainerChild
|
// Container child GtkHBox.Gtk.Container+ContainerChild
|
||||||
global::Gtk.Label w22 = new global::Gtk.Label ();
|
global::Gtk.Label w24 = new global::Gtk.Label ();
|
||||||
w22.LabelProp = "Activer";
|
w24.LabelProp = "Activer";
|
||||||
w22.UseUnderline = true;
|
w24.UseUnderline = true;
|
||||||
w19.Add (w22);
|
w21.Add (w24);
|
||||||
w18.Add (w19);
|
w20.Add (w21);
|
||||||
this.btnActiv.Add (w18);
|
this.btnActiv.Add (w20);
|
||||||
this.hbuttonbox2.Add (this.btnActiv);
|
this.hbuttonbox2.Add (this.btnActiv);
|
||||||
global::Gtk.ButtonBox.ButtonBoxChild w26 = ((global::Gtk.ButtonBox.ButtonBoxChild)(this.hbuttonbox2 [this.btnActiv]));
|
global::Gtk.ButtonBox.ButtonBoxChild w28 = ((global::Gtk.ButtonBox.ButtonBoxChild)(this.hbuttonbox2 [this.btnActiv]));
|
||||||
w26.Expand = false;
|
w28.Expand = false;
|
||||||
w26.Fill = false;
|
w28.Fill = false;
|
||||||
// Container child hbuttonbox2.Gtk.ButtonBox+ButtonBoxChild
|
// Container child hbuttonbox2.Gtk.ButtonBox+ButtonBoxChild
|
||||||
this.btnDesactiv = new global::Gtk.Button ();
|
this.btnDesactiv = new global::Gtk.Button ();
|
||||||
this.btnDesactiv.Sensitive = false;
|
this.btnDesactiv.Sensitive = false;
|
||||||
|
|
@ -269,48 +299,47 @@ namespace DMX2
|
||||||
this.btnDesactiv.Name = "btnDesactiv";
|
this.btnDesactiv.Name = "btnDesactiv";
|
||||||
this.btnDesactiv.UseUnderline = true;
|
this.btnDesactiv.UseUnderline = true;
|
||||||
// Container child btnDesactiv.Gtk.Container+ContainerChild
|
// Container child btnDesactiv.Gtk.Container+ContainerChild
|
||||||
global::Gtk.Alignment w27 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F);
|
global::Gtk.Alignment w29 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F);
|
||||||
// Container child GtkAlignment.Gtk.Container+ContainerChild
|
// Container child GtkAlignment.Gtk.Container+ContainerChild
|
||||||
global::Gtk.HBox w28 = new global::Gtk.HBox ();
|
global::Gtk.HBox w30 = new global::Gtk.HBox ();
|
||||||
w28.Spacing = 2;
|
w30.Spacing = 2;
|
||||||
// Container child GtkHBox.Gtk.Container+ContainerChild
|
// Container child GtkHBox.Gtk.Container+ContainerChild
|
||||||
global::Gtk.Image w29 = new global::Gtk.Image ();
|
global::Gtk.Image w31 = new global::Gtk.Image ();
|
||||||
w29.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-go-up", global::Gtk.IconSize.Menu);
|
w31.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-go-up", global::Gtk.IconSize.Menu);
|
||||||
w28.Add (w29);
|
w30.Add (w31);
|
||||||
// Container child GtkHBox.Gtk.Container+ContainerChild
|
// Container child GtkHBox.Gtk.Container+ContainerChild
|
||||||
global::Gtk.Label w31 = new global::Gtk.Label ();
|
global::Gtk.Label w33 = new global::Gtk.Label ();
|
||||||
w31.LabelProp = "Désactiver";
|
w33.LabelProp = "Désactiver";
|
||||||
w31.UseUnderline = true;
|
w33.UseUnderline = true;
|
||||||
w28.Add (w31);
|
w30.Add (w33);
|
||||||
w27.Add (w28);
|
w29.Add (w30);
|
||||||
this.btnDesactiv.Add (w27);
|
this.btnDesactiv.Add (w29);
|
||||||
this.hbuttonbox2.Add (this.btnDesactiv);
|
this.hbuttonbox2.Add (this.btnDesactiv);
|
||||||
global::Gtk.ButtonBox.ButtonBoxChild w35 = ((global::Gtk.ButtonBox.ButtonBoxChild)(this.hbuttonbox2 [this.btnDesactiv]));
|
global::Gtk.ButtonBox.ButtonBoxChild w37 = ((global::Gtk.ButtonBox.ButtonBoxChild)(this.hbuttonbox2 [this.btnDesactiv]));
|
||||||
w35.Position = 1;
|
w37.Position = 1;
|
||||||
w35.Expand = false;
|
w37.Expand = false;
|
||||||
w35.Fill = false;
|
w37.Fill = false;
|
||||||
this.table1.Add (this.hbuttonbox2);
|
this.table1.Add (this.hbuttonbox2);
|
||||||
global::Gtk.Table.TableChild w36 = ((global::Gtk.Table.TableChild)(this.table1 [this.hbuttonbox2]));
|
global::Gtk.Table.TableChild w38 = ((global::Gtk.Table.TableChild)(this.table1 [this.hbuttonbox2]));
|
||||||
w36.TopAttach = ((uint)(1));
|
w38.TopAttach = ((uint)(1));
|
||||||
w36.BottomAttach = ((uint)(2));
|
w38.BottomAttach = ((uint)(2));
|
||||||
w36.LeftAttach = ((uint)(1));
|
w38.LeftAttach = ((uint)(1));
|
||||||
w36.RightAttach = ((uint)(2));
|
w38.RightAttach = ((uint)(2));
|
||||||
w36.XOptions = ((global::Gtk.AttachOptions)(0));
|
w38.XOptions = ((global::Gtk.AttachOptions)(0));
|
||||||
w36.YOptions = ((global::Gtk.AttachOptions)(4));
|
w38.YOptions = ((global::Gtk.AttachOptions)(4));
|
||||||
// Container child table1.Gtk.Table+TableChild
|
// Container child table1.Gtk.Table+TableChild
|
||||||
this.vbox2 = new global::Gtk.VBox ();
|
this.vbox2 = new global::Gtk.VBox ();
|
||||||
this.vbox2.Name = "vbox2";
|
this.vbox2.Name = "vbox2";
|
||||||
this.vbox2.Spacing = 6;
|
this.vbox2.Spacing = 6;
|
||||||
// Container child vbox2.Gtk.Box+BoxChild
|
// Container child vbox2.Gtk.Box+BoxChild
|
||||||
this.label1 = new global::Gtk.Label ();
|
this.label1 = new global::Gtk.Label ();
|
||||||
this.label1.Name = "label1";
|
|
||||||
this.label1.Xalign = 0F;
|
this.label1.Xalign = 0F;
|
||||||
this.label1.LabelProp = "Interfaces disponibles :";
|
this.label1.LabelProp = "Interfaces disponibles :";
|
||||||
this.vbox2.Add (this.label1);
|
this.vbox2.Add (this.label1);
|
||||||
global::Gtk.Box.BoxChild w37 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.label1]));
|
global::Gtk.Box.BoxChild w39 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.label1]));
|
||||||
w37.Position = 0;
|
w39.Position = 0;
|
||||||
w37.Expand = false;
|
w39.Expand = false;
|
||||||
w37.Fill = false;
|
w39.Fill = false;
|
||||||
// Container child vbox2.Gtk.Box+BoxChild
|
// Container child vbox2.Gtk.Box+BoxChild
|
||||||
this.GtkScrolledWindow = new global::Gtk.ScrolledWindow ();
|
this.GtkScrolledWindow = new global::Gtk.ScrolledWindow ();
|
||||||
this.GtkScrolledWindow.Name = "GtkScrolledWindow";
|
this.GtkScrolledWindow.Name = "GtkScrolledWindow";
|
||||||
|
|
@ -322,12 +351,12 @@ namespace DMX2
|
||||||
this.listDetect.HeadersVisible = false;
|
this.listDetect.HeadersVisible = false;
|
||||||
this.GtkScrolledWindow.Add (this.listDetect);
|
this.GtkScrolledWindow.Add (this.listDetect);
|
||||||
this.vbox2.Add (this.GtkScrolledWindow);
|
this.vbox2.Add (this.GtkScrolledWindow);
|
||||||
global::Gtk.Box.BoxChild w39 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.GtkScrolledWindow]));
|
global::Gtk.Box.BoxChild w41 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.GtkScrolledWindow]));
|
||||||
w39.Position = 1;
|
w41.Position = 1;
|
||||||
this.table1.Add (this.vbox2);
|
this.table1.Add (this.vbox2);
|
||||||
global::Gtk.Table.TableChild w40 = ((global::Gtk.Table.TableChild)(this.table1 [this.vbox2]));
|
global::Gtk.Table.TableChild w42 = ((global::Gtk.Table.TableChild)(this.table1 [this.vbox2]));
|
||||||
w40.LeftAttach = ((uint)(1));
|
w42.LeftAttach = ((uint)(1));
|
||||||
w40.RightAttach = ((uint)(2));
|
w42.RightAttach = ((uint)(2));
|
||||||
// Container child table1.Gtk.Table+TableChild
|
// Container child table1.Gtk.Table+TableChild
|
||||||
this.vbox3 = new global::Gtk.VBox ();
|
this.vbox3 = new global::Gtk.VBox ();
|
||||||
this.vbox3.Name = "vbox3";
|
this.vbox3.Name = "vbox3";
|
||||||
|
|
@ -338,10 +367,10 @@ namespace DMX2
|
||||||
this.label2.Xalign = 0F;
|
this.label2.Xalign = 0F;
|
||||||
this.label2.LabelProp = "Interfaces selectionnées : ";
|
this.label2.LabelProp = "Interfaces selectionnées : ";
|
||||||
this.vbox3.Add (this.label2);
|
this.vbox3.Add (this.label2);
|
||||||
global::Gtk.Box.BoxChild w41 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.label2]));
|
global::Gtk.Box.BoxChild w43 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.label2]));
|
||||||
w41.Position = 0;
|
w43.Position = 0;
|
||||||
w41.Expand = false;
|
w43.Expand = false;
|
||||||
w41.Fill = false;
|
w43.Fill = false;
|
||||||
// Container child vbox3.Gtk.Box+BoxChild
|
// Container child vbox3.Gtk.Box+BoxChild
|
||||||
this.GtkScrolledWindow1 = new global::Gtk.ScrolledWindow ();
|
this.GtkScrolledWindow1 = new global::Gtk.ScrolledWindow ();
|
||||||
this.GtkScrolledWindow1.Name = "GtkScrolledWindow1";
|
this.GtkScrolledWindow1.Name = "GtkScrolledWindow1";
|
||||||
|
|
@ -353,23 +382,23 @@ namespace DMX2
|
||||||
this.listKnown.HeadersVisible = false;
|
this.listKnown.HeadersVisible = false;
|
||||||
this.GtkScrolledWindow1.Add (this.listKnown);
|
this.GtkScrolledWindow1.Add (this.listKnown);
|
||||||
this.vbox3.Add (this.GtkScrolledWindow1);
|
this.vbox3.Add (this.GtkScrolledWindow1);
|
||||||
global::Gtk.Box.BoxChild w43 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.GtkScrolledWindow1]));
|
global::Gtk.Box.BoxChild w45 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.GtkScrolledWindow1]));
|
||||||
w43.Position = 1;
|
w45.Position = 1;
|
||||||
this.table1.Add (this.vbox3);
|
this.table1.Add (this.vbox3);
|
||||||
global::Gtk.Table.TableChild w44 = ((global::Gtk.Table.TableChild)(this.table1 [this.vbox3]));
|
global::Gtk.Table.TableChild w46 = ((global::Gtk.Table.TableChild)(this.table1 [this.vbox3]));
|
||||||
w44.TopAttach = ((uint)(2));
|
w46.TopAttach = ((uint)(2));
|
||||||
w44.BottomAttach = ((uint)(3));
|
w46.BottomAttach = ((uint)(3));
|
||||||
w44.LeftAttach = ((uint)(1));
|
w46.LeftAttach = ((uint)(1));
|
||||||
w44.RightAttach = ((uint)(2));
|
w46.RightAttach = ((uint)(2));
|
||||||
w1.Add (this.table1);
|
w1.Add (this.table1);
|
||||||
global::Gtk.Box.BoxChild w45 = ((global::Gtk.Box.BoxChild)(w1 [this.table1]));
|
global::Gtk.Box.BoxChild w47 = ((global::Gtk.Box.BoxChild)(w1 [this.table1]));
|
||||||
w45.Position = 0;
|
w47.Position = 0;
|
||||||
// Internal child DMX2.GestionMidiUI.ActionArea
|
// Internal child DMX2.GestionMidiUI.ActionArea
|
||||||
global::Gtk.HButtonBox w46 = this.ActionArea;
|
global::Gtk.HButtonBox w48 = this.ActionArea;
|
||||||
w46.Name = "dialog1_ActionArea";
|
w48.Name = "dialog1_ActionArea";
|
||||||
w46.Spacing = 10;
|
w48.Spacing = 10;
|
||||||
w46.BorderWidth = ((uint)(5));
|
w48.BorderWidth = ((uint)(5));
|
||||||
w46.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4));
|
w48.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4));
|
||||||
// Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
|
// Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
|
||||||
this.buttonClose = new global::Gtk.Button ();
|
this.buttonClose = new global::Gtk.Button ();
|
||||||
this.buttonClose.CanDefault = true;
|
this.buttonClose.CanDefault = true;
|
||||||
|
|
@ -379,9 +408,9 @@ namespace DMX2
|
||||||
this.buttonClose.UseUnderline = true;
|
this.buttonClose.UseUnderline = true;
|
||||||
this.buttonClose.Label = "gtk-close";
|
this.buttonClose.Label = "gtk-close";
|
||||||
this.AddActionWidget (this.buttonClose, -7);
|
this.AddActionWidget (this.buttonClose, -7);
|
||||||
global::Gtk.ButtonBox.ButtonBoxChild w47 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w46 [this.buttonClose]));
|
global::Gtk.ButtonBox.ButtonBoxChild w49 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w48 [this.buttonClose]));
|
||||||
w47.Expand = false;
|
w49.Expand = false;
|
||||||
w47.Fill = false;
|
w49.Fill = false;
|
||||||
if ((this.Child != null)) {
|
if ((this.Child != null)) {
|
||||||
this.Child.ShowAll ();
|
this.Child.ShowAll ();
|
||||||
}
|
}
|
||||||
|
|
@ -396,6 +425,7 @@ namespace DMX2
|
||||||
this.spinUPCh.ValueChanged += new global::System.EventHandler (this.OnSpinUPChValueChanged);
|
this.spinUPCh.ValueChanged += new global::System.EventHandler (this.OnSpinUPChValueChanged);
|
||||||
this.spinPageUp.ValueChanged += new global::System.EventHandler (this.OnSpinPageUpValueChanged);
|
this.spinPageUp.ValueChanged += new global::System.EventHandler (this.OnSpinPageUpValueChanged);
|
||||||
this.spinPageDown.ValueChanged += new global::System.EventHandler (this.OnSpinPageDownValueChanged);
|
this.spinPageDown.ValueChanged += new global::System.EventHandler (this.OnSpinPageDownValueChanged);
|
||||||
|
this.spinMax14b.ValueChanged += new global::System.EventHandler (this.OnSpinMax14bValueChanged);
|
||||||
this.chkPg.Toggled += new global::System.EventHandler (this.OnChkPgToggled);
|
this.chkPg.Toggled += new global::System.EventHandler (this.OnChkPgToggled);
|
||||||
this.chkFourteenBits.Toggled += new global::System.EventHandler (this.OnChkFourteenBitsToggled);
|
this.chkFourteenBits.Toggled += new global::System.EventHandler (this.OnChkFourteenBitsToggled);
|
||||||
this.buttonClose.Clicked += new global::System.EventHandler (this.OnButtonCloseClicked);
|
this.buttonClose.Clicked += new global::System.EventHandler (this.OnButtonCloseClicked);
|
||||||
|
|
|
||||||
|
|
@ -1820,6 +1820,7 @@ au sequenceur</property>
|
||||||
<child>
|
<child>
|
||||||
<widget class="Gtk.Label" id="actLabel">
|
<widget class="Gtk.Label" id="actLabel">
|
||||||
<property name="MemberName" />
|
<property name="MemberName" />
|
||||||
|
<property name="LabelProp" translatable="yes" />
|
||||||
<property name="UseMarkup">True</property>
|
<property name="UseMarkup">True</property>
|
||||||
<property name="Wrap">True</property>
|
<property name="Wrap">True</property>
|
||||||
</widget>
|
</widget>
|
||||||
|
|
@ -2116,6 +2117,7 @@ au sequenceur</property>
|
||||||
<child>
|
<child>
|
||||||
<widget class="Gtk.Label" id="GtkLabel2">
|
<widget class="Gtk.Label" id="GtkLabel2">
|
||||||
<property name="MemberName" />
|
<property name="MemberName" />
|
||||||
|
<property name="LabelProp" translatable="yes" />
|
||||||
<property name="UseMarkup">True</property>
|
<property name="UseMarkup">True</property>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
|
|
@ -3217,7 +3219,7 @@ trames DMX (ms)</property>
|
||||||
<child>
|
<child>
|
||||||
<widget class="Gtk.Table" id="table2">
|
<widget class="Gtk.Table" id="table2">
|
||||||
<property name="MemberName" />
|
<property name="MemberName" />
|
||||||
<property name="NRows">5</property>
|
<property name="NRows">6</property>
|
||||||
<property name="NColumns">2</property>
|
<property name="NColumns">2</property>
|
||||||
<property name="RowSpacing">6</property>
|
<property name="RowSpacing">6</property>
|
||||||
<property name="ColumnSpacing">6</property>
|
<property name="ColumnSpacing">6</property>
|
||||||
|
|
@ -3330,6 +3332,56 @@ trames DMX (ms)</property>
|
||||||
<property name="YShrink">False</property>
|
<property name="YShrink">False</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="Gtk.Label" id="label6">
|
||||||
|
<property name="MemberName" />
|
||||||
|
<property name="Xpad">20</property>
|
||||||
|
<property name="Xalign">0</property>
|
||||||
|
<property name="LabelProp" translatable="yes">Valeur entrée max :</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="TopAttach">5</property>
|
||||||
|
<property name="BottomAttach">6</property>
|
||||||
|
<property name="AutoSize">True</property>
|
||||||
|
<property name="XOptions">Fill</property>
|
||||||
|
<property name="YOptions">Fill</property>
|
||||||
|
<property name="XExpand">False</property>
|
||||||
|
<property name="XFill">True</property>
|
||||||
|
<property name="XShrink">False</property>
|
||||||
|
<property name="YExpand">False</property>
|
||||||
|
<property name="YFill">True</property>
|
||||||
|
<property name="YShrink">False</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="Gtk.SpinButton" id="spinMax14b">
|
||||||
|
<property name="MemberName" />
|
||||||
|
<property name="CanFocus">True</property>
|
||||||
|
<property name="Lower">1</property>
|
||||||
|
<property name="Upper">16383</property>
|
||||||
|
<property name="PageIncrement">10</property>
|
||||||
|
<property name="StepIncrement">1</property>
|
||||||
|
<property name="ClimbRate">1</property>
|
||||||
|
<property name="Numeric">True</property>
|
||||||
|
<property name="Value">127</property>
|
||||||
|
<signal name="ValueChanged" handler="OnSpinMax14bValueChanged" />
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="TopAttach">5</property>
|
||||||
|
<property name="BottomAttach">6</property>
|
||||||
|
<property name="LeftAttach">1</property>
|
||||||
|
<property name="RightAttach">2</property>
|
||||||
|
<property name="AutoSize">True</property>
|
||||||
|
<property name="XOptions">Fill</property>
|
||||||
|
<property name="YOptions">Fill</property>
|
||||||
|
<property name="XExpand">False</property>
|
||||||
|
<property name="XFill">True</property>
|
||||||
|
<property name="XShrink">False</property>
|
||||||
|
<property name="YExpand">False</property>
|
||||||
|
<property name="YFill">True</property>
|
||||||
|
<property name="YShrink">False</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<widget class="Gtk.SpinButton" id="spinNbPage">
|
<widget class="Gtk.SpinButton" id="spinNbPage">
|
||||||
<property name="MemberName" />
|
<property name="MemberName" />
|
||||||
|
|
@ -3448,7 +3500,7 @@ trames DMX (ms)</property>
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<widget class="Gtk.Label" id="GtkLabel5">
|
<widget class="Gtk.Label" id="GtkLabel6">
|
||||||
<property name="MemberName" />
|
<property name="MemberName" />
|
||||||
<property name="LabelProp" translatable="yes"><b>Options Midi</b></property>
|
<property name="LabelProp" translatable="yes"><b>Options Midi</b></property>
|
||||||
<property name="UseMarkup">True</property>
|
<property name="UseMarkup">True</property>
|
||||||
|
|
@ -3848,6 +3900,7 @@ trames DMX (ms)</property>
|
||||||
<child>
|
<child>
|
||||||
<widget class="Gtk.Label" id="titleLabel">
|
<widget class="Gtk.Label" id="titleLabel">
|
||||||
<property name="MemberName" />
|
<property name="MemberName" />
|
||||||
|
<property name="LabelProp" translatable="yes" />
|
||||||
<property name="UseMarkup">True</property>
|
<property name="UseMarkup">True</property>
|
||||||
<property name="Wrap">True</property>
|
<property name="Wrap">True</property>
|
||||||
</widget>
|
</widget>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue