Ajoutez des fichiers projet.
This commit is contained in:
95
MainForm.cs
Normal file
95
MainForm.cs
Normal file
@@ -0,0 +1,95 @@
|
||||
using System.ComponentModel;
|
||||
using System.Net;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Web;
|
||||
using Tmds.MDns;
|
||||
|
||||
namespace robospot_camera_finder
|
||||
{
|
||||
public partial class MainForm : Form
|
||||
{
|
||||
private readonly ServiceBrowser browser = new();
|
||||
|
||||
private BindingList<Camera> all_cameras = new();
|
||||
|
||||
class Camera
|
||||
{
|
||||
private IPAddress ip;
|
||||
private string name;
|
||||
|
||||
public Camera(string name, IPAddress ip)
|
||||
{
|
||||
this.name = name;
|
||||
this.ip = ip;
|
||||
}
|
||||
|
||||
public string camera_name
|
||||
{
|
||||
get
|
||||
{
|
||||
return name;
|
||||
}
|
||||
}
|
||||
|
||||
public IPAddress camera_ip
|
||||
{
|
||||
get
|
||||
{
|
||||
return ip;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public MainForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
browser.StartBrowse("_rtsp._tcp");
|
||||
|
||||
lbMain.DataSource = all_cameras;
|
||||
lbMain.DisplayMember = "camera_name";
|
||||
lbMain.ValueMember = "camera_ip";
|
||||
|
||||
browser.ServiceAdded += (sender, args) =>
|
||||
{
|
||||
foreach (var cam_addr in args.Announcement.Addresses)
|
||||
{
|
||||
if (cam_addr.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
|
||||
{
|
||||
Camera camera = new Camera("Camera " + cam_addr.ToString(), cam_addr);
|
||||
all_cameras.Add(camera);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
browser.ServiceRemoved += (sender, args) =>
|
||||
{
|
||||
foreach (var cam_ip in args.Announcement.Addresses)
|
||||
{
|
||||
if (cam_ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
|
||||
{
|
||||
foreach (var camera in all_cameras)
|
||||
{
|
||||
if (cam_ip == camera.camera_ip)
|
||||
{
|
||||
all_cameras.Remove(camera);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
browser.StopBrowse();
|
||||
}
|
||||
|
||||
private void lbMain_MouseDoubleClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
Form viewer = new StreamViewer(lbMain.GetItemText(lbMain.SelectedItem), lbMain.SelectedValue.ToString());
|
||||
viewer.Show();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user