-
Notifications
You must be signed in to change notification settings - Fork 539
/
Copy pathPTZTool.cs
135 lines (122 loc) · 4.93 KB
/
PTZTool.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
using System;
using System.Linq;
using System.Windows.Forms;
using iSpyApplication.Controls;
namespace iSpyApplication
{
public partial class PTZTool : Form
{
private bool _loaded;
private CameraWindow _cameraControl;
public CameraWindow CameraControl
{
get { return _cameraControl; }
set {
_cameraControl = value;
_loaded = false;
ddlExtended.Items.Clear();
if (_cameraControl == null)
{
ddlExtended.Items.Add(new ListItem(LocRm.GetString("ClickCamera"),""));
ddlExtended.SelectedIndex = 0;
}
pnlController.Enabled = false;
if (value != null && value.IsEnabled)
{
if (CameraControl.Camobject.ptz > -1)
{
ddlExtended.Items.Add(new ListItem(LocRm.GetString("SelectCommand"), ""));
PTZSettings2Camera ptz = MainForm.PTZs.Single(p => p.id == CameraControl.Camobject.ptz);
if (ptz.ExtendedCommands != null && ptz.ExtendedCommands.Command!=null)
{
foreach (var extcmd in ptz.ExtendedCommands.Command)
{
ddlExtended.Items.Add(new ListItem(extcmd.Name, extcmd.Value));
}
}
pnlController.Enabled = true;
}
else
{
switch (CameraControl.Camobject.ptz)
{
case -1:
ddlExtended.Items.Add(new ListItem(LocRm.GetString("DigitalPTZonly"), ""));
pnlController.Enabled = true;
break;
case -2:
ddlExtended.Items.Add(new ListItem("IAM-Control", ""));
pnlController.Enabled = true;
break;
case -3:
case -4:
//Pelco extended
ddlExtended.Items.Add(new ListItem(LocRm.GetString("SelectCommand"), ""));
foreach(string cmd in PTZController.PelcoCommands)
{
ddlExtended.Items.Add(new ListItem(cmd, cmd));
}
pnlController.Enabled = true;
break;
case -5:
//ONVIF
ddlExtended.Items.Add(new ListItem(LocRm.GetString("SelectCommand"), ""));
foreach(var cmd in CameraControl.PTZ.ONVIFPresets)
{
ddlExtended.Items.Add(new ListItem(cmd.Name, cmd.token ));
}
pnlController.Enabled = true;
break;
case -6:
ddlExtended.Items.Add(new ListItem(LocRm.GetString("None"), ""));
pnlController.Enabled = false;
break;
}
}
Text = "PTZ: "+CameraControl.Camobject.name;
ptzui1.CameraControl = value;
if (ddlExtended.Items.Count>0)
ddlExtended.SelectedIndex = 0;
}
_loaded = true;
}
}
public PTZTool()
{
InitializeComponent();
}
private void ddlExtended_SelectedIndexChanged(object sender, EventArgs e)
{
if (_loaded && CameraControl!=null)
{
if (ddlExtended.SelectedIndex > 0)
{
var li = ((ListItem) ddlExtended.SelectedItem);
CameraControl.PTZ.SendPTZCommand(li.Value);
ddlExtended.SelectedIndex = 0;
}
}
}
private struct ListItem
{
private readonly string _name;
internal readonly string Value;
public ListItem(string name, string value)
{
_name = name;
Value = value;
}
public override string ToString()
{
return _name;
}
}
private void PTZTool_Load(object sender, EventArgs e)
{
Text = LocRm.GetString("PTZTool");
}
private void PTZTool_FormClosing(object sender, FormClosingEventArgs e)
{
}
}
}