Compare commits

..

No commits in common. "master" and "v3" have entirely different histories.
master ... v3

6 changed files with 64 additions and 147 deletions

View file

@ -1,17 +0,0 @@
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

View file

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

View file

@ -33,6 +33,8 @@ namespace DMX2
ListStore lsEffets=null; /* liste des effets */
//TreeViewColumn nomCol; /* inutile dans le contexte macro */
ListStore lsDest = null;
bool effetChange = false;
public void EffetChange ()
{
@ -208,10 +210,7 @@ namespace DMX2
new ContextMenuHelper(frame1,RenamePopup);
new ContextMenuHelper(evBBox,CompteurPopup);
txtPerif.Text = s.Destination;
btnPerif.Clicked += BtnPerif_Clicked;
/*lsDest = new ListStore(typeof(string));
/*lsDest = new ListStore(typeof(string));
lsDest.AppendValues("TEST 1");
lsDest.AppendValues("TEST 2");
@ -220,16 +219,11 @@ 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();

View file

@ -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,10 +108,23 @@ 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; }
}
}
String destination;
public String Destination
DestListItem destination;
public DestListItem Destination
{
get{
return destination;
@ -239,23 +252,12 @@ namespace DMX2
return 0;
}
TimeSpan autoconnectTimer = TimeSpan.Zero;
readonly TimeSpan acInterval = TimeSpan.FromSeconds(5);
public override void Tick (TimeSpan time)
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)) {
@ -267,29 +269,7 @@ namespace DMX2
}
}
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 ()
public void LigneSuivante ()
{
lock (this) {
if(lignes.Count==0) return;
@ -367,14 +347,14 @@ namespace DMX2
foreach (System.Text.RegularExpressions.Match match in matches) {
if (match.Groups [2].Success) {
midiCh = int.Parse (match.Groups [2].Value)-1;
midiCh = int.Parse (match.Groups [2].Value);
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)-0;
ev.data_ev_ctrl.param = uint.Parse (match.Groups [4].Value);
ev.data_ev_ctrl.value = int.Parse (match.Groups [5].Value);
midiport.SendEvent (ev);
}
@ -383,7 +363,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)-1;
ev.data_ev_ctrl.value = int.Parse (match.Groups [7].Value);
midiport.SendEvent (ev);
}
@ -429,7 +409,6 @@ 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");
@ -491,7 +470,6 @@ namespace DMX2
{
ID = int.Parse (el.GetAttribute ("id"));
Name = el.GetAttribute ("name");
Destination = el.TryGetAttribute("destination", String.Empty);
XmlElement xmlE;

View file

@ -44,13 +44,7 @@ namespace DMX2
private global::Gtk.Label timeLabel;
private global::Gtk.HBox hbox3;
private global::Gtk.Label label1;
private global::Gtk.Entry txtPerif;
private global::Gtk.Button btnPerif;
private global::Gtk.ComboBox cbDest;
private global::Gtk.Toolbar toolbar;
@ -162,41 +156,13 @@ namespace DMX2
w7.Expand = false;
w7.Fill = false;
// Container child vbox3.Gtk.Box+BoxChild
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;
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;
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")));
@ -205,13 +171,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 w12 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.toolbar]));
w12.Position = 2;
w12.Expand = false;
w12.Fill = false;
global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.toolbar]));
w9.Position = 2;
w9.Expand = false;
w9.Fill = false;
this.hbox1.Add(this.vbox3);
global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.vbox3]));
w13.Position = 0;
global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.vbox3]));
w10.Position = 0;
// Container child hbox1.Gtk.Box+BoxChild
this.UIManager.AddUiFromString("<ui><toolbar name=\'toolbar1\'><toolitem name=\'closeAction\' action=\'closeAction\'/><" +
"/toolbar></ui>");
@ -222,16 +188,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 w14 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.toolbar1]));
w14.PackType = ((global::Gtk.PackType)(1));
w14.Position = 1;
w14.Expand = false;
w14.Fill = false;
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;
this.vbox2.Add(this.hbox1);
global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox1]));
w15.Position = 0;
w15.Expand = false;
w15.Fill = false;
global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox1]));
w12.Position = 0;
w12.Expand = false;
w12.Fill = false;
// Container child vbox2.Gtk.Box+BoxChild
this.scrolledwindow1 = new global::Gtk.ScrolledWindow();
this.scrolledwindow1.CanFocus = true;
@ -244,8 +210,8 @@ namespace DMX2
this.cmdList.RulesHint = true;
this.scrolledwindow1.Add(this.cmdList);
this.vbox2.Add(this.scrolledwindow1);
global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.scrolledwindow1]));
w17.Position = 1;
global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.scrolledwindow1]));
w14.Position = 1;
// Container child vbox2.Gtk.Box+BoxChild
this.lblText = new global::Gtk.Label();
this.lblText.Name = "lblText";
@ -254,10 +220,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 w18 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.lblText]));
w18.Position = 2;
w18.Expand = false;
w18.Fill = false;
global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.lblText]));
w15.Position = 2;
w15.Expand = false;
w15.Fill = false;
this.alignment1.Add(this.vbox2);
this.GtkAlignment.Add(this.alignment1);
this.frame1.Add(this.GtkAlignment);

View file

@ -5,7 +5,7 @@
<target-gtk-version>2.12</target-gtk-version>
</configuration>
<import>
<widget-library name="../bin/Release/DMX-2.0.exe" internal="true" />
<widget-library name="../bin/Debug/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">Nom du périphérique :</property>
<property name="LabelProp" translatable="yes">label1</property>
</widget>
<packing>
<property name="Position">0</property>
@ -2178,24 +2178,20 @@ au sequenceur</property>
</packing>
</child>
<child>
<widget class="Gtk.Entry" id="txtPerif">
<widget class="Gtk.ComboBoxEntry" id="comboboxentry2">
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="IsEditable">True</property>
<property name="InvisibleChar">●</property>
<property name="IsTextCombo">True</property>
<property name="Items" translatable="yes" />
</widget>
<packing>
<property name="Position">1</property>
<property name="AutoSize">True</property>
<property name="AutoSize">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Button" id="btnPerif">
<widget class="Gtk.Label" id="label2">
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="Type">TextOnly</property>
<property name="Label" translatable="yes">Ok</property>
<property name="UseUnderline">True</property>
<property name="LabelProp" translatable="yes">label2</property>
</widget>
<packing>
<property name="Position">2</property>