This commit is contained in:
parent
c97b7806b0
commit
76f2e55883
11 changed files with 116 additions and 32 deletions
|
|
@ -5,7 +5,7 @@ namespace DMX2
|
||||||
{
|
{
|
||||||
public static partial class AlsaSeqLib
|
public static partial class AlsaSeqLib
|
||||||
{
|
{
|
||||||
class SeqHandleWrapper : IDisposable
|
sealed class SeqHandleWrapper : IDisposable
|
||||||
{
|
{
|
||||||
IntPtr _seq = IntPtr.Zero;
|
IntPtr _seq = IntPtr.Zero;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ using System.Xml;
|
||||||
|
|
||||||
namespace DMX2
|
namespace DMX2
|
||||||
{
|
{
|
||||||
public class Conduite : IDisposable
|
public sealed class Conduite : IDisposable
|
||||||
{
|
{
|
||||||
|
|
||||||
// Conduite courante
|
// Conduite courante
|
||||||
|
|
|
||||||
|
|
@ -168,6 +168,7 @@
|
||||||
<Compile Include="SequenceurSon.cs" />
|
<Compile Include="SequenceurSon.cs" />
|
||||||
<Compile Include="SeqSonUI.cs" />
|
<Compile Include="SeqSonUI.cs" />
|
||||||
<Compile Include="gtk-gui\DMX2.SeqSonUI.cs" />
|
<Compile Include="gtk-gui\DMX2.SeqSonUI.cs" />
|
||||||
|
<Compile Include="OSCServer.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||||
<ProjectExtensions>
|
<ProjectExtensions>
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ using System.Xml;
|
||||||
|
|
||||||
namespace DMX2
|
namespace DMX2
|
||||||
{
|
{
|
||||||
public class DriverBoitierV1 : DriverDMX, IEventProvider
|
public sealed class DriverBoitierV1 : DriverDMX, IEventProvider
|
||||||
{
|
{
|
||||||
|
|
||||||
struct buttonState {
|
struct buttonState {
|
||||||
|
|
@ -210,17 +210,18 @@ namespace DMX2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Dispose ()
|
protected override void Dispose (bool disposing)
|
||||||
{
|
{
|
||||||
disposed = true;
|
disposed = true;
|
||||||
etat = etatAutomate.Fin;
|
etat = etatAutomate.Fin;
|
||||||
|
if (disposing) {
|
||||||
if (loopthread != null) {
|
if (loopthread != null) {
|
||||||
loopthread.Join ();
|
loopthread.Join ();
|
||||||
loopthread = null;
|
loopthread = null;
|
||||||
}
|
}
|
||||||
if(serial != null)
|
if (serial != null)
|
||||||
serial.Dispose();
|
serial.Dispose ();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#region implemented abstract members of DMX2.DriverDMX
|
#region implemented abstract members of DMX2.DriverDMX
|
||||||
public override Gtk.Widget GetUI ()
|
public override Gtk.Widget GetUI ()
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ using System.Collections.Generic;
|
||||||
|
|
||||||
namespace DMX2
|
namespace DMX2
|
||||||
{
|
{
|
||||||
public class DriverBoitierV2 : DriverDMX, IEventProvider
|
public sealed class DriverBoitierV2 : DriverDMX, IEventProvider
|
||||||
{
|
{
|
||||||
|
|
||||||
struct dmxState {
|
struct dmxState {
|
||||||
|
|
@ -425,17 +425,18 @@ namespace DMX2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Dispose ()
|
protected override void Dispose (bool disposing)
|
||||||
{
|
{
|
||||||
disposed = true;
|
disposed = true;
|
||||||
etat = etatAutomate.Fin;
|
etat = etatAutomate.Fin;
|
||||||
|
if (disposing) {
|
||||||
if (loopthread != null) {
|
if (loopthread != null) {
|
||||||
loopthread.Join ();
|
loopthread.Join ();
|
||||||
loopthread = null;
|
loopthread = null;
|
||||||
}
|
}
|
||||||
if(serial != null)
|
if (serial != null)
|
||||||
serial.Dispose();
|
serial.Dispose ();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#region implemented abstract members of DMX2.DriverDMX
|
#region implemented abstract members of DMX2.DriverDMX
|
||||||
public override Gtk.Widget GetUI ()
|
public override Gtk.Widget GetUI ()
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ using System.Collections.Generic;
|
||||||
|
|
||||||
namespace DMX2
|
namespace DMX2
|
||||||
{
|
{
|
||||||
public class DriverBoitierV3 : DriverDMX, IEventProvider
|
public sealed class DriverBoitierV3 : DriverDMX, IEventProvider
|
||||||
{
|
{
|
||||||
|
|
||||||
struct dmxState {
|
struct dmxState {
|
||||||
|
|
@ -479,17 +479,18 @@ namespace DMX2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Dispose ()
|
protected override void Dispose (bool disposing)
|
||||||
{
|
{
|
||||||
disposed = true;
|
disposed = true;
|
||||||
etat = etatAutomate.Fin;
|
etat = etatAutomate.Fin;
|
||||||
|
if (disposing) {
|
||||||
if (loopthread != null) {
|
if (loopthread != null) {
|
||||||
loopthread.Join ();
|
loopthread.Join ();
|
||||||
loopthread = null;
|
loopthread = null;
|
||||||
}
|
}
|
||||||
if(serial != null)
|
if (serial != null)
|
||||||
serial.Dispose();
|
serial.Dispose ();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#region implemented abstract members of DMX2.DriverDMX
|
#region implemented abstract members of DMX2.DriverDMX
|
||||||
public override Gtk.Widget GetUI ()
|
public override Gtk.Widget GetUI ()
|
||||||
|
|
|
||||||
|
|
@ -62,15 +62,15 @@ namespace DMX2
|
||||||
|
|
||||||
#region IDisposable implementation
|
#region IDisposable implementation
|
||||||
|
|
||||||
public virtual void Dispose()
|
protected virtual void Dispose(bool disposing)
|
||||||
{
|
{
|
||||||
disposed = true;
|
disposed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void IDisposable.Dispose ()
|
public void Dispose ()
|
||||||
{
|
{
|
||||||
if(!disposed)
|
Dispose (true);
|
||||||
Dispose();
|
GC.SuppressFinalize(this);
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,8 @@ namespace DMX2
|
||||||
{
|
{
|
||||||
text=_text;
|
text=_text;
|
||||||
st= DateTime.Now;
|
st= DateTime.Now;
|
||||||
} #region IDisposable implementation
|
}
|
||||||
|
#region IDisposable implementation
|
||||||
public void Dispose ()
|
public void Dispose ()
|
||||||
{
|
{
|
||||||
Console.WriteLine("{0} -> {1}",text,DateTime.Now - st);
|
Console.WriteLine("{0} -> {1}",text,DateTime.Now - st);
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@ namespace DMX2
|
||||||
{
|
{
|
||||||
bool fullscreen = false;
|
bool fullscreen = false;
|
||||||
//WebServer ws = null; bool webserv = false;
|
//WebServer ws = null; bool webserv = false;
|
||||||
|
OSCServer osc = null; bool oscEn=true;
|
||||||
System.IO.FileInfo openfile=null;
|
System.IO.FileInfo openfile=null;
|
||||||
|
|
||||||
// Traitement des options en ligne de commande :
|
// Traitement des options en ligne de commande :
|
||||||
|
|
@ -37,6 +38,9 @@ namespace DMX2
|
||||||
case "fs":
|
case "fs":
|
||||||
fullscreen = true;
|
fullscreen = true;
|
||||||
break;
|
break;
|
||||||
|
case "noosc":
|
||||||
|
oscEn=false;
|
||||||
|
break;
|
||||||
/*case "ws":
|
/*case "ws":
|
||||||
webserv = true;
|
webserv = true;
|
||||||
break; */
|
break; */
|
||||||
|
|
@ -48,6 +52,7 @@ namespace DMX2
|
||||||
}
|
}
|
||||||
|
|
||||||
//if(webserv) ws = new WebServer();
|
//if(webserv) ws = new WebServer();
|
||||||
|
if(oscEn) osc = new OSCServer();
|
||||||
|
|
||||||
// Initialisation GTK#
|
// Initialisation GTK#
|
||||||
Application.Init ();
|
Application.Init ();
|
||||||
|
|
@ -87,6 +92,8 @@ namespace DMX2
|
||||||
}
|
}
|
||||||
|
|
||||||
//if(ws!=null) ws.Dispose();
|
//if(ws!=null) ws.Dispose();
|
||||||
|
|
||||||
|
if(osc!=null) osc.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void HandleUnhandledException (GLib.UnhandledExceptionArgs args)
|
static void HandleUnhandledException (GLib.UnhandledExceptionArgs args)
|
||||||
|
|
|
||||||
|
|
@ -694,7 +694,7 @@ namespace DMX2
|
||||||
if (disposed)
|
if (disposed)
|
||||||
return;
|
return;
|
||||||
disposed = true;
|
disposed = true;
|
||||||
AlsaSeqLib.Close ();
|
AlsaSeqLib.Close();
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
|
||||||
72
DMX-2.0/OSCServer.cs
Normal file
72
DMX-2.0/OSCServer.cs
Normal file
|
|
@ -0,0 +1,72 @@
|
||||||
|
using System;
|
||||||
|
using System.Net;
|
||||||
|
using System.Net.Sockets;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace DMX2
|
||||||
|
{
|
||||||
|
public class OSCServer : IDisposable
|
||||||
|
{
|
||||||
|
|
||||||
|
UdpClient udpCli=null;
|
||||||
|
Thread pollThread = null;
|
||||||
|
bool running=true;
|
||||||
|
|
||||||
|
public OSCServer ()
|
||||||
|
{
|
||||||
|
pollThread = new Thread(new ThreadStart(Loop));
|
||||||
|
pollThread.Start();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Loop ()
|
||||||
|
{
|
||||||
|
udpCli = new UdpClient (7772);
|
||||||
|
byte[] recv;
|
||||||
|
IPEndPoint remep = new IPEndPoint (IPAddress.Any, 0);
|
||||||
|
|
||||||
|
|
||||||
|
try {
|
||||||
|
while (running) {
|
||||||
|
recv = udpCli.Receive (ref remep);
|
||||||
|
}
|
||||||
|
} catch (SocketException ex) {
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Flush ()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#region IDisposable implementation
|
||||||
|
|
||||||
|
|
||||||
|
public void Dispose ()
|
||||||
|
{
|
||||||
|
Dispose(true);
|
||||||
|
GC.SuppressFinalize(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void Dispose (bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing) {
|
||||||
|
running=false;
|
||||||
|
if(udpCli!=null)
|
||||||
|
udpCli.Close();
|
||||||
|
if(pollThread!=null)
|
||||||
|
{
|
||||||
|
if(!pollThread.Join(100))
|
||||||
|
pollThread.Abort();
|
||||||
|
pollThread=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Loading…
Reference in a new issue