Compare commits
2 Commits
9abc348dd3
...
60a30fecb7
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
60a30fecb7 | ||
|
|
a12aff10cc |
43
MainForm.Designer.cs
generated
43
MainForm.Designer.cs
generated
@@ -36,9 +36,11 @@
|
||||
discoveryToolStripMenuItem = new ToolStripMenuItem();
|
||||
startToolStripMenuItem = new ToolStripMenuItem();
|
||||
stopToolStripMenuItem = new ToolStripMenuItem();
|
||||
forceReloadToolStripMenuItem = new ToolStripMenuItem();
|
||||
forceRediscoverToolStripMenuItem = new ToolStripMenuItem();
|
||||
saveToolStripMenuItem = new ToolStripMenuItem();
|
||||
loadToolStripMenuItem = new ToolStripMenuItem();
|
||||
toolStripSeparator1 = new ToolStripSeparator();
|
||||
toolStripStatusDisco = new ToolStripStatusLabel();
|
||||
statusStripMain.SuspendLayout();
|
||||
menuStrip1.SuspendLayout();
|
||||
SuspendLayout();
|
||||
@@ -56,7 +58,7 @@
|
||||
//
|
||||
// statusStripMain
|
||||
//
|
||||
statusStripMain.Items.AddRange(new ToolStripItem[] { toolStripStatusLabel });
|
||||
statusStripMain.Items.AddRange(new ToolStripItem[] { toolStripStatusLabel, toolStripStatusDisco });
|
||||
statusStripMain.Location = new Point(0, 428);
|
||||
statusStripMain.Name = "statusStripMain";
|
||||
statusStripMain.Size = new Size(800, 22);
|
||||
@@ -79,7 +81,7 @@
|
||||
//
|
||||
// discoveryToolStripMenuItem
|
||||
//
|
||||
discoveryToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { startToolStripMenuItem, stopToolStripMenuItem, forceReloadToolStripMenuItem, saveToolStripMenuItem, loadToolStripMenuItem });
|
||||
discoveryToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { startToolStripMenuItem, stopToolStripMenuItem, forceRediscoverToolStripMenuItem, toolStripSeparator1, saveToolStripMenuItem, loadToolStripMenuItem });
|
||||
discoveryToolStripMenuItem.Name = "discoveryToolStripMenuItem";
|
||||
discoveryToolStripMenuItem.Size = new Size(70, 20);
|
||||
discoveryToolStripMenuItem.Text = "Discovery";
|
||||
@@ -87,7 +89,7 @@
|
||||
// startToolStripMenuItem
|
||||
//
|
||||
startToolStripMenuItem.Name = "startToolStripMenuItem";
|
||||
startToolStripMenuItem.Size = new Size(180, 22);
|
||||
startToolStripMenuItem.Size = new Size(165, 22);
|
||||
startToolStripMenuItem.Text = "Start";
|
||||
startToolStripMenuItem.Click += startToolStripMenuItem_Click;
|
||||
//
|
||||
@@ -95,28 +97,41 @@
|
||||
//
|
||||
stopToolStripMenuItem.Enabled = false;
|
||||
stopToolStripMenuItem.Name = "stopToolStripMenuItem";
|
||||
stopToolStripMenuItem.Size = new Size(180, 22);
|
||||
stopToolStripMenuItem.Size = new Size(165, 22);
|
||||
stopToolStripMenuItem.Text = "Stop";
|
||||
stopToolStripMenuItem.Click += stopToolStripMenuItem_Click;
|
||||
//
|
||||
// forceReloadToolStripMenuItem
|
||||
// forceRediscoverToolStripMenuItem
|
||||
//
|
||||
forceReloadToolStripMenuItem.Name = "forceReloadToolStripMenuItem";
|
||||
forceReloadToolStripMenuItem.Size = new Size(180, 22);
|
||||
forceReloadToolStripMenuItem.Text = "Force reload";
|
||||
forceReloadToolStripMenuItem.Click += forceReloadToolStripMenuItem_Click;
|
||||
forceRediscoverToolStripMenuItem.Name = "forceRediscoverToolStripMenuItem";
|
||||
forceRediscoverToolStripMenuItem.Size = new Size(165, 22);
|
||||
forceRediscoverToolStripMenuItem.Text = "Force re-discover";
|
||||
forceRediscoverToolStripMenuItem.Click += forceReloadToolStripMenuItem_Click;
|
||||
//
|
||||
// saveToolStripMenuItem
|
||||
//
|
||||
saveToolStripMenuItem.Name = "saveToolStripMenuItem";
|
||||
saveToolStripMenuItem.Size = new Size(180, 22);
|
||||
saveToolStripMenuItem.Size = new Size(165, 22);
|
||||
saveToolStripMenuItem.Text = "Save";
|
||||
saveToolStripMenuItem.Click += saveToolStripMenuItem_Click;
|
||||
//
|
||||
// loadToolStripMenuItem
|
||||
//
|
||||
loadToolStripMenuItem.Name = "loadToolStripMenuItem";
|
||||
loadToolStripMenuItem.Size = new Size(180, 22);
|
||||
loadToolStripMenuItem.Size = new Size(165, 22);
|
||||
loadToolStripMenuItem.Text = "Load";
|
||||
loadToolStripMenuItem.Click += loadToolStripMenuItem_Click;
|
||||
//
|
||||
// toolStripSeparator1
|
||||
//
|
||||
toolStripSeparator1.Name = "toolStripSeparator1";
|
||||
toolStripSeparator1.Size = new Size(162, 6);
|
||||
//
|
||||
// toolStripStatusDisco
|
||||
//
|
||||
toolStripStatusDisco.Name = "toolStripStatusDisco";
|
||||
toolStripStatusDisco.Size = new Size(111, 17);
|
||||
toolStripStatusDisco.Text = "Discovery : Stopped";
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
@@ -148,8 +163,10 @@
|
||||
private ToolStripMenuItem discoveryToolStripMenuItem;
|
||||
private ToolStripMenuItem startToolStripMenuItem;
|
||||
private ToolStripMenuItem stopToolStripMenuItem;
|
||||
private ToolStripMenuItem forceReloadToolStripMenuItem;
|
||||
private ToolStripMenuItem forceRediscoverToolStripMenuItem;
|
||||
private ToolStripMenuItem saveToolStripMenuItem;
|
||||
private ToolStripMenuItem loadToolStripMenuItem;
|
||||
private ToolStripSeparator toolStripSeparator1;
|
||||
private ToolStripStatusLabel toolStripStatusDisco;
|
||||
}
|
||||
}
|
||||
140
MainForm.cs
140
MainForm.cs
@@ -2,7 +2,11 @@ using System.ComponentModel;
|
||||
using System.Diagnostics;
|
||||
using System.Net;
|
||||
using System.Net.NetworkInformation;
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
using System.Windows.Forms;
|
||||
using Tmds.MDns;
|
||||
using static robospot_camera_finder.MainForm;
|
||||
|
||||
namespace robospot_camera_finder
|
||||
{
|
||||
@@ -17,51 +21,27 @@ namespace robospot_camera_finder
|
||||
|
||||
private static string browse_scope = "_rtsp._tcp";
|
||||
|
||||
bool is_browsing = false;
|
||||
|
||||
public class Camera
|
||||
{
|
||||
private IPAddress ip;
|
||||
private string name;
|
||||
private string location;
|
||||
private string serial;
|
||||
|
||||
public Camera(string name, IPAddress ip, string location, string serial)
|
||||
public Camera(string name, string ip, string location, string serial)
|
||||
{
|
||||
this.name = name;
|
||||
this.ip = ip;
|
||||
this.location = location;
|
||||
this.serial = serial;
|
||||
camera_name = name;
|
||||
camera_ip = ip;
|
||||
camera_location = location;
|
||||
camera_serial = serial;
|
||||
}
|
||||
|
||||
public string camera_name
|
||||
{
|
||||
get
|
||||
{
|
||||
return name;
|
||||
}
|
||||
}
|
||||
public Camera() { }
|
||||
|
||||
public IPAddress camera_ip
|
||||
{
|
||||
get
|
||||
{
|
||||
return ip;
|
||||
}
|
||||
}
|
||||
public string camera_name { get; set; }
|
||||
|
||||
public string camera_location
|
||||
{
|
||||
get
|
||||
{
|
||||
return location;
|
||||
}
|
||||
}
|
||||
public string camera_serial
|
||||
{
|
||||
get
|
||||
{
|
||||
return serial;
|
||||
}
|
||||
}
|
||||
public string camera_ip { get; set; }
|
||||
|
||||
public string camera_location { get; set; }
|
||||
|
||||
public string camera_serial { get; set; }
|
||||
}
|
||||
|
||||
public MainForm()
|
||||
@@ -127,6 +107,8 @@ namespace robospot_camera_finder
|
||||
if (!browser.IsBrowsing)
|
||||
{
|
||||
browser.StartBrowse(browse_scope);
|
||||
is_browsing = true;
|
||||
toolStripStatusDisco.Text = "Discovery : Started";
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -134,6 +116,8 @@ namespace robospot_camera_finder
|
||||
if (browser.IsBrowsing)
|
||||
{
|
||||
browser.StopBrowse();
|
||||
is_browsing = false;
|
||||
toolStripStatusDisco.Text = "Discovery : Stopped";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -166,25 +150,31 @@ namespace robospot_camera_finder
|
||||
serial = serial_line.Substring("SerialNumber=".Length).Trim();
|
||||
}
|
||||
|
||||
Camera new_camera = new Camera("Camera " + cam_addr.ToString() + " - " + location + " - " + serial, cam_addr, location, serial);
|
||||
Camera new_camera = new Camera("Camera " + cam_addr + " - " + location + " - " + serial, cam_addr.ToString(), location, serial);
|
||||
|
||||
if (all_cameras.Count == 0)
|
||||
{
|
||||
all_cameras.Add(new_camera);
|
||||
} else
|
||||
{
|
||||
for (int i = 0; i < all_cameras.Count; i++)
|
||||
{
|
||||
if (all_cameras[i].camera_serial == new_camera.camera_serial)
|
||||
{
|
||||
all_cameras[i] = new_camera;
|
||||
}
|
||||
else
|
||||
{
|
||||
all_cameras.Add(new_camera);
|
||||
}
|
||||
}
|
||||
}
|
||||
add_camera(new_camera);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void add_camera(Camera new_camera)
|
||||
{
|
||||
if (all_cameras.Count == 0)
|
||||
{
|
||||
all_cameras.Add(new_camera);
|
||||
}
|
||||
else
|
||||
{
|
||||
Camera find_cam = all_cameras.FirstOrDefault(cam => cam.camera_serial == new_camera.camera_serial);
|
||||
|
||||
if (find_cam != null)
|
||||
{
|
||||
int i = all_cameras.IndexOf(find_cam);
|
||||
all_cameras[i] = new_camera;
|
||||
}
|
||||
else
|
||||
{
|
||||
all_cameras.Add(new_camera);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -197,7 +187,7 @@ namespace robospot_camera_finder
|
||||
{
|
||||
foreach (var camera in all_cameras)
|
||||
{
|
||||
if (cam_ip == camera.camera_ip)
|
||||
if (cam_ip.ToString() == camera.camera_ip)
|
||||
{
|
||||
all_cameras.Remove(camera);
|
||||
return;
|
||||
@@ -244,5 +234,41 @@ namespace robospot_camera_finder
|
||||
browse(true);
|
||||
}
|
||||
}
|
||||
|
||||
private void loadToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
string json = "";
|
||||
OpenFileDialog openFile = new OpenFileDialog();
|
||||
openFile.Filter = "json file (*.json)|*.json";
|
||||
openFile.RestoreDirectory = true;
|
||||
|
||||
if (openFile.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
json = File.ReadAllText(openFile.FileName);
|
||||
|
||||
List<Camera> cameras_in_file = JsonSerializer.Deserialize<List<Camera>>(json);
|
||||
|
||||
foreach (Camera new_camera in cameras_in_file)
|
||||
{
|
||||
add_camera(new_camera);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
string json = JsonSerializer.Serialize<BindingList<Camera>>(all_cameras, new JsonSerializerOptions
|
||||
{
|
||||
WriteIndented = true
|
||||
});
|
||||
SaveFileDialog saveFile = new SaveFileDialog();
|
||||
saveFile.Filter = "json file (*.json)|*.json";
|
||||
saveFile.RestoreDirectory = true;
|
||||
|
||||
if (saveFile.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
File.WriteAllText(saveFile.FileName, json);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
25
StreamViewer.Designer.cs
generated
25
StreamViewer.Designer.cs
generated
@@ -58,6 +58,8 @@ namespace robospot_camera_finder
|
||||
labelSerial = new Label();
|
||||
tbSerial = new TextBox();
|
||||
btnSidePanel = new Button();
|
||||
lblRtspLink = new Label();
|
||||
tbRtspLink = new TextBox();
|
||||
((System.ComponentModel.ISupportInitialize)videoView).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)tbZoom).BeginInit();
|
||||
grpSACN.SuspendLayout();
|
||||
@@ -338,6 +340,8 @@ namespace robospot_camera_finder
|
||||
//
|
||||
// splitContainerMain.Panel1
|
||||
//
|
||||
splitContainerMain.Panel1.Controls.Add(tbRtspLink);
|
||||
splitContainerMain.Panel1.Controls.Add(lblRtspLink);
|
||||
splitContainerMain.Panel1.Controls.Add(labelSerial);
|
||||
splitContainerMain.Panel1.Controls.Add(tbSerial);
|
||||
splitContainerMain.Panel1.Controls.Add(btnSidePanel);
|
||||
@@ -386,6 +390,25 @@ namespace robospot_camera_finder
|
||||
btnSidePanel.UseVisualStyleBackColor = true;
|
||||
btnSidePanel.Click += btnSidePanel_Click;
|
||||
//
|
||||
// lblRtspLink
|
||||
//
|
||||
lblRtspLink.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
|
||||
lblRtspLink.AutoSize = true;
|
||||
lblRtspLink.Location = new Point(296, 483);
|
||||
lblRtspLink.Name = "lblRtspLink";
|
||||
lblRtspLink.Size = new Size(57, 15);
|
||||
lblRtspLink.TabIndex = 7;
|
||||
lblRtspLink.Text = "RTSP Link";
|
||||
//
|
||||
// tbRtspLink
|
||||
//
|
||||
tbRtspLink.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
|
||||
tbRtspLink.Location = new Point(359, 480);
|
||||
tbRtspLink.Name = "tbRtspLink";
|
||||
tbRtspLink.ReadOnly = true;
|
||||
tbRtspLink.Size = new Size(383, 23);
|
||||
tbRtspLink.TabIndex = 8;
|
||||
//
|
||||
// StreamViewer
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||
@@ -443,5 +466,7 @@ namespace robospot_camera_finder
|
||||
private Button btnPreset4;
|
||||
private Button btnPreset3;
|
||||
private Button btnPreset2;
|
||||
private TextBox tbRtspLink;
|
||||
private Label lblRtspLink;
|
||||
}
|
||||
}
|
||||
@@ -60,12 +60,15 @@ namespace robospot_camera_finder
|
||||
cam_ip = ip;
|
||||
this.Text = name;
|
||||
|
||||
string rtsp_link = "rtsp://" + ip + "/profile2/media.smp";
|
||||
|
||||
updateZoomSlider();
|
||||
|
||||
tbSerial.Text = camera.camera_serial;
|
||||
tbRtspLink.Text = rtsp_link;
|
||||
|
||||
videoView.MediaPlayer = _mp;
|
||||
var media = new Media(_libVLC, new Uri("rtsp://" + ip + "/profile2/media.smp"));
|
||||
var media = new Media(_libVLC, new Uri(rtsp_link));
|
||||
media.AddOption(":network-caching=25");
|
||||
_mp.Play(media);
|
||||
media.Dispose();
|
||||
|
||||
Reference in New Issue
Block a user