modif OSC

This commit is contained in:
tzim 2014-12-11 16:28:06 +00:00
parent e20683f718
commit ed53f248c2
3 changed files with 188 additions and 8 deletions

View file

@ -54,6 +54,7 @@
<Private>False</Private>
<Package>gstreamer-sharp-0.10</Package>
</Reference>
<Reference Include="System.Web" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="gtk-gui\gui.stetic">
@ -116,6 +117,9 @@
<EmbeddedResource Include="html\css\theme\images\ui-bg_glass_65_ffffff_1x400.png">
<LogicalName>css.theme.images.ui-bg_glass_65_ffffff_1x400.png</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="html\if.js">
<LogicalName>if.js</LogicalName>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Compile Include="gtk-gui\generated.cs" />

View file

@ -217,32 +217,161 @@ namespace DMX2
/// <summary>
/// /master
/// /master <X---
/// /masterseq/
/// go
/// goback
/// goto
/// next <X---
/// goto
///
/// /seq/X/
/// go
/// goback
/// goto
/// master
/// circuit
/// master <X---
/// circuit/X <X---
///
/// /universe/X/
/// D/on
/// reset
///
/// on/D
/// off
/// onval
///
///
/// </summary>
void ProcessMessage (OSCMessage msg)
{
if(Conduite.Courante == null) return;
string[] toks = msg.Address.Split (new char[]{'/'},StringSplitOptions.RemoveEmptyEntries);
int arg;
switch (toks [0]) {
case "master":
arg = msg.Args[0].GetInt();
if(arg>=0 && arg<=100)
Conduite.Courante.Master = arg;
break;
case "masterseq":
switch(toks[1]){
case "go":
if( msg.Args[0].GetInt() !=0)
Conduite.Courante.SequenceurMaitre.EffetSuivant();
break;
case "goback":
if( msg.Args[0].GetInt() !=0)
Conduite.Courante.SequenceurMaitre.EffetPrecedent();
break;
case "next":
arg = msg.Args[0].GetInt();
Conduite.Courante.SequenceurMaitre.IndexLigneaSuivre = arg;
break;
case "goto":
arg = msg.Args[0].GetInt();
Conduite.Courante.SequenceurMaitre.IndexLigneaSuivre = arg;
Conduite.Courante.SequenceurMaitre.EffetSuivant();
break;
}
break;
case "seq":
ProcessMessageSeq(msg,toks);
break;
case "universe":
ProcessMessageUniv(msg,toks);
break;
}
}
void ProcessMessageSeq (OSCMessage msg, string[] toks)
{
int seqId;
Sequenceur seq = null;
if (int.TryParse (toks [1], out seqId)) {
if (seqId < 0 || seqId > Conduite.Courante.Sequenceurs.Count)
return;
seq = Conduite.Courante.Sequenceurs [seqId-1];
}
if (seq is SequenceurLineaire) {
SequenceurLineaire seql = seq as SequenceurLineaire;
switch(toks[2]){
case "go":
if( msg.Args[0].GetInt() !=0)
seql.IndexEffetCourrant++;
break;
case "goback":
if( msg.Args[0].GetInt() !=0)
seql.IndexEffetCourrant--;
break;
case "goto":
int arg = msg.Args[0].GetInt();
seql.IndexEffetCourrant = arg;
break;
case "master":
arg = msg.Args[0].GetInt();
if(arg>=0 && arg<=100)
seql.Master = arg;
break;
case "circuit":
int cirId;
arg = msg.Args[0].GetInt();
arg = Math.Max(0,arg);
arg = Math.Min(255,arg);
if(!int.TryParse(toks[3],out cirId)) return;
Circuit c = Conduite.Courante.GetCircuitByID (cirId);
if(seql.Circuits.Contains(c))
seql.ChangeValeur(c,arg);
break;
}
}
if (seq is SequenceurMacro) {
SequenceurMacro seqm = seq as SequenceurMacro;
switch(toks[2]){
case "go":
if( msg.Args[0].GetInt() !=0)
seqm.LigneSuivante();
break;
case "goto":
int arg = msg.Args[0].GetInt();
seqm.IndexLigneaSuivre = arg;
seqm.LigneSuivante();
break;
case "next":
arg = msg.Args[0].GetInt();
seqm.IndexLigneaSuivre = arg;
break;
case "master":
arg = msg.Args[0].GetInt();
if(arg>=0 && arg<=100)
seqm.Master = arg;
break;
}
}
}
void ProcessMessageUniv (OSCMessage msg, string[] toks)
{
int univId;
if (!int.TryParse (toks [1], out univId))
return;
if (univId > 0 || univId >= Conduite.Courante.Patches.Count)
return;
UniversDMX univ = Conduite.Courante.Patches [univId];
switch (toks [2]) {
case "on":
int dimId;
if(!int.TryParse(toks[3],out dimId))return;
if( msg.Args[0].GetInt() !=0)
univ.AllumageForce = dimId;
break;
case "off":
univ.AllumageForce = -1;
break;
case "onval":
int val = msg.Args[0].GetInt();
if(val>=0 && val<=255)
univ.AllumageForceVal = val;
break;
}
}
#region IDisposable implementation

47
DMX-2.0/html/if.js Normal file
View file

@ -0,0 +1,47 @@
loadedInterfaceName = "Loupiottes";
interfaceOrientation = "landscape";
pages = [[
{
"name": "refresh",
"type": "Button",
"bounds": [.6, .9, .2, .1],
"startingValue": 0,
"isLocal": true,
"mode": "contact",
"ontouchstart": "interfaceManager.refreshInterface()",
"stroke": "#aaa",
"label": "refrsh",
},
{
"name":"master",
"type":"Slider",
"bounds": [.05, .1, .1, .8],
"isVertical" : true,
"address" : "/master",
"min":0,"max":101,
},
{
"name":"masters1",
"type":"Slider",
"bounds": [.20, .1, .1, .8],
"isVertical" : true,
"address" : "/seq/1/master",
"min":0,"max":101,
},
{
"name":"ml1",
"type":"MultiSlider",
"bounds": [.30, .1, .5, .8],
"isVertical" : true,
"address" : "/seq/1/circuit",
"min":0,"max":256,
"numberOfSliders" : 10,
},
]
];