Compare commits
3 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cb0a3ece4c | ||
|
|
134b4087d8 | ||
|
|
f62e5e8bf5 |
7 changed files with 147 additions and 64 deletions
17
DMX-2.0/DMX-2.0.sln
Normal file
17
DMX-2.0/DMX-2.0.sln
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DMX-2.0", "DMX-2.0.csproj", "{2CB55300-0A5B-4DFA-8984-B7EC4C455962}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{2CB55300-0A5B-4DFA-8984-B7EC4C455962}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{2CB55300-0A5B-4DFA-8984-B7EC4C455962}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{2CB55300-0A5B-4DFA-8984-B7EC4C455962}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{2CB55300-0A5B-4DFA-8984-B7EC4C455962}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
|
@ -498,7 +498,7 @@ namespace DMX2
|
|||
value = 255;
|
||||
break;
|
||||
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;
|
||||
case AlsaSeqLib.snd_seq_event_type_t.SND_SEQ_EVENT_PORT_START:
|
||||
PortDetected(
|
||||
|
|
|
|||
|
|
@ -33,8 +33,6 @@ namespace DMX2
|
|||
ListStore lsEffets=null; /* liste des effets */
|
||||
//TreeViewColumn nomCol; /* inutile dans le contexte macro */
|
||||
|
||||
ListStore lsDest = null;
|
||||
|
||||
bool effetChange = false;
|
||||
public void EffetChange ()
|
||||
{
|
||||
|
|
@ -210,7 +208,10 @@ namespace DMX2
|
|||
new ContextMenuHelper(frame1,RenamePopup);
|
||||
new ContextMenuHelper(evBBox,CompteurPopup);
|
||||
|
||||
/*lsDest = new ListStore(typeof(string));
|
||||
txtPerif.Text = s.Destination;
|
||||
btnPerif.Clicked += BtnPerif_Clicked;
|
||||
|
||||
/*lsDest = new ListStore(typeof(string));
|
||||
lsDest.AppendValues("TEST 1");
|
||||
lsDest.AppendValues("TEST 2");
|
||||
|
||||
|
|
@ -219,11 +220,16 @@ namespace DMX2
|
|||
cbDest.SetCellDataFunc(cbDest.Cells[0], HandleCellLayoutDataFunc);*/
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void BtnPerif_Clicked(object sender, EventArgs e)
|
||||
{
|
||||
sequenceur.Destination = txtPerif.Text;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void CompteurPopup (object sender, ContextMenuEventArgs e)
|
||||
void CompteurPopup (object sender, ContextMenuEventArgs e)
|
||||
{
|
||||
Menu m = new Menu();
|
||||
|
||||
|
|
|
|||
|
|
@ -18,13 +18,13 @@
|
|||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Xml;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Threading;
|
||||
using System.Xml;
|
||||
|
||||
namespace DMX2
|
||||
{
|
||||
public class SequenceurMidi : Sequenceur , IDisposable
|
||||
public class SequenceurMidi : Sequenceur , IDisposable
|
||||
{
|
||||
public class Ligne {
|
||||
public Ligne(){}
|
||||
|
|
@ -108,23 +108,10 @@ namespace DMX2
|
|||
AlsaSeqLib.MidiPort midiport;
|
||||
static int portnum=0;
|
||||
|
||||
public class DestListItem {
|
||||
public DestListItem(string _name, AlsaSeqLib.Port _port){
|
||||
name = _name;
|
||||
port = _port;
|
||||
}
|
||||
string name;
|
||||
public string Name{
|
||||
get { return name; }
|
||||
}
|
||||
AlsaSeqLib.Port port;
|
||||
public AlsaSeqLib.Port Port{
|
||||
get { return port; }
|
||||
}
|
||||
}
|
||||
|
||||
DestListItem destination;
|
||||
public DestListItem Destination
|
||||
|
||||
String destination;
|
||||
public String Destination
|
||||
{
|
||||
get{
|
||||
return destination;
|
||||
|
|
@ -252,12 +239,23 @@ namespace DMX2
|
|||
return 0;
|
||||
}
|
||||
|
||||
public override void Tick (TimeSpan time)
|
||||
TimeSpan autoconnectTimer = TimeSpan.Zero;
|
||||
readonly TimeSpan acInterval = TimeSpan.FromSeconds(5);
|
||||
|
||||
|
||||
public override void Tick (TimeSpan time)
|
||||
{
|
||||
if (paused)
|
||||
return;
|
||||
timeStamp += time;
|
||||
|
||||
autoconnectTimer += time;
|
||||
if (autoconnectTimer > acInterval)
|
||||
{
|
||||
AutoConnect();
|
||||
autoconnectTimer = TimeSpan.Zero;
|
||||
}
|
||||
|
||||
if (Monitor.TryEnter (this)) {
|
||||
try {
|
||||
while (topPresent &&(timeStamp >= topSuivant)) {
|
||||
|
|
@ -269,7 +267,29 @@ namespace DMX2
|
|||
}
|
||||
}
|
||||
|
||||
public void LigneSuivante ()
|
||||
private void AutoConnect()
|
||||
{
|
||||
if (Destination.Length < 3) return;
|
||||
System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex(
|
||||
destination, System.Text.RegularExpressions.RegexOptions.Compiled | System.Text.RegularExpressions.RegexOptions.IgnoreCase
|
||||
);
|
||||
foreach (var cli in AlsaSeqLib.EnumClients())
|
||||
{
|
||||
foreach (var p in cli.Ports)
|
||||
{
|
||||
string fullportname = cli.Name + ':' + p.Name;
|
||||
if (r.IsMatch (fullportname ))
|
||||
{
|
||||
// midiport.ConnectFrom(p);
|
||||
midiport.ConnectTo(p);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void LigneSuivante ()
|
||||
{
|
||||
lock (this) {
|
||||
if(lignes.Count==0) return;
|
||||
|
|
@ -347,14 +367,14 @@ namespace DMX2
|
|||
|
||||
foreach (System.Text.RegularExpressions.Match match in matches) {
|
||||
if (match.Groups [2].Success) {
|
||||
midiCh = int.Parse (match.Groups [2].Value);
|
||||
midiCh = int.Parse (match.Groups [2].Value)-1;
|
||||
continue;
|
||||
}
|
||||
if (match.Groups [4].Success) {
|
||||
ev = new AlsaSeqLib.snd_seq_event_t ();
|
||||
ev.type = AlsaSeqLib.snd_seq_event_type_t.SND_SEQ_EVENT_CONTROLLER;
|
||||
ev.data_ev_ctrl.channel = (byte)midiCh;
|
||||
ev.data_ev_ctrl.param = uint.Parse (match.Groups [4].Value);
|
||||
ev.data_ev_ctrl.param = uint.Parse (match.Groups [4].Value)-0;
|
||||
ev.data_ev_ctrl.value = int.Parse (match.Groups [5].Value);
|
||||
midiport.SendEvent (ev);
|
||||
}
|
||||
|
|
@ -363,7 +383,7 @@ namespace DMX2
|
|||
ev = new AlsaSeqLib.snd_seq_event_t ();
|
||||
ev.type = AlsaSeqLib.snd_seq_event_type_t.SND_SEQ_EVENT_PGMCHANGE;
|
||||
ev.data_ev_ctrl.channel = (byte)midiCh;
|
||||
ev.data_ev_ctrl.value = int.Parse (match.Groups [7].Value);
|
||||
ev.data_ev_ctrl.value = int.Parse (match.Groups [7].Value)-1;
|
||||
midiport.SendEvent (ev);
|
||||
}
|
||||
|
||||
|
|
@ -409,6 +429,7 @@ namespace DMX2
|
|||
parent.AppendChild (el);
|
||||
el.SetAttribute ("id", ID.ToString ());
|
||||
el.SetAttribute ("name", Name);
|
||||
el.SetAttribute("destination", Destination);
|
||||
//el.SetAttribute ("master", master.ToString ());
|
||||
|
||||
xmlEl = parent.OwnerDocument.CreateElement ("EffetSuivant");
|
||||
|
|
@ -470,6 +491,7 @@ namespace DMX2
|
|||
{
|
||||
ID = int.Parse (el.GetAttribute ("id"));
|
||||
Name = el.GetAttribute ("name");
|
||||
Destination = el.TryGetAttribute("destination", String.Empty);
|
||||
|
||||
XmlElement xmlE;
|
||||
|
||||
|
|
|
|||
|
|
@ -44,7 +44,13 @@ namespace DMX2
|
|||
|
||||
private global::Gtk.Label timeLabel;
|
||||
|
||||
private global::Gtk.ComboBox cbDest;
|
||||
private global::Gtk.HBox hbox3;
|
||||
|
||||
private global::Gtk.Label label1;
|
||||
|
||||
private global::Gtk.Entry txtPerif;
|
||||
|
||||
private global::Gtk.Button btnPerif;
|
||||
|
||||
private global::Gtk.Toolbar toolbar;
|
||||
|
||||
|
|
@ -156,13 +162,41 @@ namespace DMX2
|
|||
w7.Expand = false;
|
||||
w7.Fill = false;
|
||||
// Container child vbox3.Gtk.Box+BoxChild
|
||||
this.cbDest = global::Gtk.ComboBox.NewText();
|
||||
this.cbDest.Name = "cbDest";
|
||||
this.vbox3.Add(this.cbDest);
|
||||
global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.cbDest]));
|
||||
w8.Position = 1;
|
||||
this.hbox3 = new global::Gtk.HBox();
|
||||
this.hbox3.Name = "hbox3";
|
||||
this.hbox3.Spacing = 6;
|
||||
// Container child hbox3.Gtk.Box+BoxChild
|
||||
this.label1 = new global::Gtk.Label();
|
||||
this.label1.Name = "label1";
|
||||
this.label1.LabelProp = "Nom du périphérique :";
|
||||
this.hbox3.Add(this.label1);
|
||||
global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.label1]));
|
||||
w8.Position = 0;
|
||||
w8.Expand = false;
|
||||
w8.Fill = false;
|
||||
// Container child hbox3.Gtk.Box+BoxChild
|
||||
this.txtPerif = new global::Gtk.Entry();
|
||||
this.txtPerif.CanFocus = true;
|
||||
this.txtPerif.Name = "txtPerif";
|
||||
this.txtPerif.IsEditable = true;
|
||||
this.txtPerif.InvisibleChar = '●';
|
||||
this.hbox3.Add(this.txtPerif);
|
||||
global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.txtPerif]));
|
||||
w9.Position = 1;
|
||||
// Container child hbox3.Gtk.Box+BoxChild
|
||||
this.btnPerif = new global::Gtk.Button();
|
||||
this.btnPerif.CanFocus = true;
|
||||
this.btnPerif.Name = "btnPerif";
|
||||
this.btnPerif.UseUnderline = true;
|
||||
this.btnPerif.Label = "Ok";
|
||||
this.hbox3.Add(this.btnPerif);
|
||||
global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.btnPerif]));
|
||||
w10.Position = 2;
|
||||
w10.Expand = false;
|
||||
w10.Fill = false;
|
||||
this.vbox3.Add(this.hbox3);
|
||||
global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.hbox3]));
|
||||
w11.Position = 1;
|
||||
// Container child vbox3.Gtk.Box+BoxChild
|
||||
this.UIManager.AddUiFromString(@"<ui><toolbar name='toolbar'><toolitem name='goForwardAction' action='goForwardAction'/><toolitem name='goBackAction' action='goBackAction'/><toolitem name='mediaPauseAction' action='mediaPauseAction'/><toolitem name='btnAjoutLigne' action='btnAjoutLigne'/><toolitem name='btnRetireligne' action='btnRetireligne'/><toolitem name='Action' action='Action'/></toolbar></ui>");
|
||||
this.toolbar = ((global::Gtk.Toolbar)(this.UIManager.GetWidget("/toolbar")));
|
||||
|
|
@ -171,13 +205,13 @@ namespace DMX2
|
|||
this.toolbar.ToolbarStyle = ((global::Gtk.ToolbarStyle)(0));
|
||||
this.toolbar.IconSize = ((global::Gtk.IconSize)(2));
|
||||
this.vbox3.Add(this.toolbar);
|
||||
global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.toolbar]));
|
||||
w9.Position = 2;
|
||||
w9.Expand = false;
|
||||
w9.Fill = false;
|
||||
global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.toolbar]));
|
||||
w12.Position = 2;
|
||||
w12.Expand = false;
|
||||
w12.Fill = false;
|
||||
this.hbox1.Add(this.vbox3);
|
||||
global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.vbox3]));
|
||||
w10.Position = 0;
|
||||
global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.vbox3]));
|
||||
w13.Position = 0;
|
||||
// Container child hbox1.Gtk.Box+BoxChild
|
||||
this.UIManager.AddUiFromString("<ui><toolbar name=\'toolbar1\'><toolitem name=\'closeAction\' action=\'closeAction\'/><" +
|
||||
"/toolbar></ui>");
|
||||
|
|
@ -188,16 +222,16 @@ namespace DMX2
|
|||
this.toolbar1.ToolbarStyle = ((global::Gtk.ToolbarStyle)(0));
|
||||
this.toolbar1.IconSize = ((global::Gtk.IconSize)(2));
|
||||
this.hbox1.Add(this.toolbar1);
|
||||
global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.toolbar1]));
|
||||
w11.PackType = ((global::Gtk.PackType)(1));
|
||||
w11.Position = 1;
|
||||
w11.Expand = false;
|
||||
w11.Fill = false;
|
||||
global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.toolbar1]));
|
||||
w14.PackType = ((global::Gtk.PackType)(1));
|
||||
w14.Position = 1;
|
||||
w14.Expand = false;
|
||||
w14.Fill = false;
|
||||
this.vbox2.Add(this.hbox1);
|
||||
global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox1]));
|
||||
w12.Position = 0;
|
||||
w12.Expand = false;
|
||||
w12.Fill = false;
|
||||
global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox1]));
|
||||
w15.Position = 0;
|
||||
w15.Expand = false;
|
||||
w15.Fill = false;
|
||||
// Container child vbox2.Gtk.Box+BoxChild
|
||||
this.scrolledwindow1 = new global::Gtk.ScrolledWindow();
|
||||
this.scrolledwindow1.CanFocus = true;
|
||||
|
|
@ -210,8 +244,8 @@ namespace DMX2
|
|||
this.cmdList.RulesHint = true;
|
||||
this.scrolledwindow1.Add(this.cmdList);
|
||||
this.vbox2.Add(this.scrolledwindow1);
|
||||
global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.scrolledwindow1]));
|
||||
w14.Position = 1;
|
||||
global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.scrolledwindow1]));
|
||||
w17.Position = 1;
|
||||
// Container child vbox2.Gtk.Box+BoxChild
|
||||
this.lblText = new global::Gtk.Label();
|
||||
this.lblText.Name = "lblText";
|
||||
|
|
@ -220,10 +254,10 @@ namespace DMX2
|
|||
"(ex: N64+127 ou N12-)\nGT : Go To (ex: GT4)\nr: loop";
|
||||
this.lblText.UseMarkup = true;
|
||||
this.vbox2.Add(this.lblText);
|
||||
global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.lblText]));
|
||||
w15.Position = 2;
|
||||
w15.Expand = false;
|
||||
w15.Fill = false;
|
||||
global::Gtk.Box.BoxChild w18 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.lblText]));
|
||||
w18.Position = 2;
|
||||
w18.Expand = false;
|
||||
w18.Fill = false;
|
||||
this.alignment1.Add(this.vbox2);
|
||||
this.GtkAlignment.Add(this.alignment1);
|
||||
this.frame1.Add(this.GtkAlignment);
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<target-gtk-version>2.12</target-gtk-version>
|
||||
</configuration>
|
||||
<import>
|
||||
<widget-library name="../bin/Debug/DMX-2.0.exe" internal="true" />
|
||||
<widget-library name="../bin/Release/DMX-2.0.exe" internal="true" />
|
||||
</import>
|
||||
<icon-factory>
|
||||
<icon-set id="tirettes">
|
||||
|
|
@ -2168,7 +2168,7 @@ au sequenceur</property>
|
|||
<child>
|
||||
<widget class="Gtk.Label" id="label1">
|
||||
<property name="MemberName" />
|
||||
<property name="LabelProp" translatable="yes">label1</property>
|
||||
<property name="LabelProp" translatable="yes">Nom du périphérique :</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="Position">0</property>
|
||||
|
|
@ -2178,20 +2178,24 @@ au sequenceur</property>
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="Gtk.ComboBoxEntry" id="comboboxentry2">
|
||||
<widget class="Gtk.Entry" id="txtPerif">
|
||||
<property name="MemberName" />
|
||||
<property name="IsTextCombo">True</property>
|
||||
<property name="Items" translatable="yes" />
|
||||
<property name="CanFocus">True</property>
|
||||
<property name="IsEditable">True</property>
|
||||
<property name="InvisibleChar">●</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="Position">1</property>
|
||||
<property name="AutoSize">False</property>
|
||||
<property name="AutoSize">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="Gtk.Label" id="label2">
|
||||
<widget class="Gtk.Button" id="btnPerif">
|
||||
<property name="MemberName" />
|
||||
<property name="LabelProp" translatable="yes">label2</property>
|
||||
<property name="CanFocus">True</property>
|
||||
<property name="Type">TextOnly</property>
|
||||
<property name="Label" translatable="yes">Ok</property>
|
||||
<property name="UseUnderline">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="Position">2</property>
|
||||
|
|
|
|||
0
test
Normal file
0
test
Normal file
Loading…
Reference in a new issue