new xbox logic+ui

This commit is contained in:
Vincent BOUQUET
2024-02-21 21:40:16 +01:00
parent c26bbc55da
commit 59d5a64973
2 changed files with 63 additions and 29 deletions

View File

@@ -11,7 +11,7 @@ using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using XboxControllerTest;
using XboxController;
namespace robospot_camera_finder
{
@@ -34,30 +34,27 @@ namespace robospot_camera_finder
byte[] dmx_universe = new byte[512];
Xbox360Controller controller;
Xbox360Controller controller = new Xbox360Controller();
public StreamViewer(string name, string ip)
{
InitializeComponent();
_libVLC = new LibVLC();
_mp = new MediaPlayer(_libVLC);
splitContainerMain.Panel2Collapsed = true;
cam_ip = ip;
this.Text = name;
timerUpdateZoom.Start();
updateZoomSlider();
timerDMX.Start();
videoView.MediaPlayer = _mp;
var media = new Media(_libVLC, new Uri("rtsp://" + ip + "/profile2/media.smp"));
media.AddOption(":network-caching=25");
_mp.Play(media);
media.Dispose();
this.Text = name;
controller = new Xbox360Controller();
controller.update();
cbEnableXboxCtrl.Enabled = controller.connected;
}
private void updateZoomSlider()
@@ -90,11 +87,21 @@ namespace robospot_camera_finder
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
}
private void sendZoomValueManual(string zoom_value)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://" + cam_ip + "/stw-cgi/ptzcontrol.cgi?msubmenu=continuous&NormalizedSpeed=True&action=control&Channel=0&Zoom=" + zoom_value);
request.Credentials = new NetworkCredential(username, password);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
}
private void StreamViewer_FormClosed(object sender, FormClosedEventArgs e)
{
_mp.Stop();
_mp.Dispose();
_libVLC.Dispose();
sendClient.Dispose();
}
private void tbZoom_KeyUp(object sender, KeyEventArgs e)
@@ -149,15 +156,18 @@ namespace robospot_camera_finder
if ((tbPan.Value + ls.X) < 0)
{
tbPan.Value = 0;
} else if ((tbPan.Value + ls.X) > 65535)
}
else if ((tbPan.Value + ls.X) > 65535)
{
tbPan.Value = 65535;
} else
}
else
{
if (fast_pt)
{
tbPan.Value += (ls.X) * 5;
} else
}
else
{
tbPan.Value += ls.X;
}
@@ -183,19 +193,7 @@ namespace robospot_camera_finder
}
}
if ((tbZoom.Value + rs.Y) < min_zoom_pulse)
{
tbZoom.Value = min_zoom_pulse;
}
else if ((tbZoom.Value + rs.Y) > max_zoom_pulse)
{
tbZoom.Value = max_zoom_pulse;
}
else
{
tbZoom.Value += (rs.Y) * 5;
}
sendZoomValue(tbZoom.Value.ToString());
sendZoomValueManual(rs.Y.ToString());
if (controller.buttons.LB)
@@ -232,5 +230,41 @@ namespace robospot_camera_finder
dmx_universe[i] = 0;
}
}
private void cbEnableSACN_CheckedChanged(object sender, EventArgs e)
{
if (cbEnableSACN.Checked)
{
timerDMX.Start();
tbPan.Enabled = true;
tbTilt.Enabled = true;
numDMXAddr.Enabled = true;
numUniv.Enabled = true;
}
else
{
timerDMX.Stop();
tbPan.Enabled = false;
tbTilt.Enabled = false;
numDMXAddr.Enabled = false;
numUniv.Enabled = false;
cbEnableXboxCtrl.Checked = false;
cbEnableXboxCtrl.Enabled = false;
}
}
private void btnSidePanel_Click(object sender, EventArgs e)
{
if (splitContainerMain.Panel2Collapsed)
{
splitContainerMain.Panel2Collapsed = false;
}
else
{
splitContainerMain.Panel2Collapsed = true;
}
}
}
}

View File

@@ -9,7 +9,7 @@ using SharpDX.XInput;
// A class to interface with an xbox 360 controller
namespace XboxControllerTest {
namespace XboxController {
class Xbox360Controller {
public struct Buttons {
public bool A;