Find all our projects in development below.
All source code is GNU General Public License (GPL)
Browsing javaCamViewer/ControlForm.cs (26.70 KB)
using System;
using System.Drawing;
using System.IO;
using System.Net;
using System.Text.RegularExpressions;
using System.Windows.Forms;
namespace javaCamViewer
{
public partial class ControlForm : Form
{
private Uri sourceUri;
private bool camConnected = false;
private const String getUrl = "http://{0}/get_camera_params.cgi{1}";
private const int PTZ_STOP = 1;
private const int TILT_UP = 0;
private const int TILT_UP_STOP = 1;
private const int TILT_DOWN = 2;
private const int TILT_DOWN_STOP = 3;
private const int PAN_LEFT = 4;
private const int PAN_LEFT_STOP = 5;
private const int PAN_RIGHT = 6;
private const int PAN_RIGHT_STOP = 7;
private const int PTZ_LEFT_UP = 90;
private const int PTZ_RIGHT_UP = 91;
private const int PTZ_LEFT_DOWN = 92;
private const int PTZ_RIGHT_DOWN = 93;
private const int PTZ_CENTER = 25;
private const int PTZ_VPATROL = 26;
private const int PTZ_VPATROL_STOP = 27;
private const int PTZ_HPATROL = 28;
private const int PTZ_HPATROL_STOP = 29;
private const int PTZ_PELCO_D_HPATROL = 20;
private const int PTZ_PELCO_D_HPATROL_STOP = 21;
private const int IO_ON = 94;
private const int IO_OFF = 95;
public ControlForm(String sourceUrl)
{
InitializeComponent();
if (sourceUrl != null) sourceUri = new Uri(sourceUrl);
}
private void ControlForm_FormClosing(object sender, FormClosingEventArgs e)
{
if (e.CloseReason == CloseReason.UserClosing)
{
((MainForm)this.Owner).menuCameraController.Checked = false;
}
}
private void ControlForm_Load(object sender, EventArgs e)
{
if (Screen.FromControl(this.Owner).WorkingArea.Contains(new Rectangle(
this.Owner.Location.X + this.Owner.Width,
this.Owner.Location.Y, this.Width, this.Height)))
{
this.Location = new Point(this.Owner.Location.X + this.Owner.Width,
this.Owner.Location.Y);
}
else
{
this.Location = new Point(this.Owner.Location.X + this.Owner.Width - this.Width,
this.Owner.Location.Y);
}
if (sourceUri != null)
{
this.Text = "Loading...";
}
else
{
this.Text = "Not Connected";
}
}
private void ControlForm_Shown(object sender, System.EventArgs e)
{
if (sourceUri != null)
{
try
{
WebRequest req = WebRequest.Create(String.Format(getUrl, sourceUri.Host, sourceUri.Query));
req.Credentials = CredentialCache.DefaultCredentials;
WebResponse resp = req.GetResponse();
Stream inStream = resp.GetResponseStream();
StreamReader reader = new StreamReader(inStream);
String responseFromServer = reader.ReadToEnd();
reader.Close();
resp.Close();
if (Regex.IsMatch(responseFromServer, "resolution\\=([^\\;]*)\\;", RegexOptions.IgnoreCase))
{
Match thisMatch = Regex.Match(responseFromServer, "resolution\\=([^\\;]*)\\;", RegexOptions.IgnoreCase);
if (thisMatch.Groups.Count > 0)
{
if (thisMatch.Groups[1].Value == "8")
{
cboResolution.SelectedIndex = 0;
}
else if (thisMatch.Groups[1].Value == "32")
{
cboResolution.SelectedIndex = 1;
}
}
}
if (Regex.IsMatch(responseFromServer, "mode\\=([^\\;]*)\\;", RegexOptions.IgnoreCase))
{
Match thisMatch = Regex.Match(responseFromServer, "mode\\=([^\\;]*)\\;", RegexOptions.IgnoreCase);
if (thisMatch.Groups.Count > 0)
{
if (thisMatch.Groups[1].Value == "0")
{
cboMode.SelectedIndex = 0;
}
else if (thisMatch.Groups[1].Value == "1")
{
cboMode.SelectedIndex = 1;
}
else if (thisMatch.Groups[1].Value == "2")
{
cboMode.SelectedIndex = 2;
}
}
}
if (Regex.IsMatch(responseFromServer, "brightness\\=([^\\;]*)\\;", RegexOptions.IgnoreCase))
{
Match thisMatch = Regex.Match(responseFromServer, "brightness\\=([^\\;]*)\\;", RegexOptions.IgnoreCase);
if (thisMatch.Groups.Count > 0)
{
txtBrightness.Text = ((int)(int.Parse(thisMatch.Groups[1].Value) / 16)).ToString();
}
}
if (Regex.IsMatch(responseFromServer, "contrast\\=([^\\;]*)\\;", RegexOptions.IgnoreCase))
{
Match thisMatch = Regex.Match(responseFromServer, "contrast\\=([^\\;]*)\\;", RegexOptions.IgnoreCase);
if (thisMatch.Groups.Count > 0)
{
txtContrast.Text = int.Parse(thisMatch.Groups[1].Value).ToString();
}
}
if (Regex.IsMatch(responseFromServer, "flip\\=([^\\;]*)\\;", RegexOptions.IgnoreCase))
{
Match thisMatch = Regex.Match(responseFromServer, "flip\\=([^\\;]*)\\;", RegexOptions.IgnoreCase);
if (thisMatch.Groups.Count > 0)
{
if (thisMatch.Groups[1].Value == "0")
{
if (!((MainForm)this.Owner).ptzOverride) ((MainForm)this.Owner).ptzFlip = false;
if (!((MainForm)this.Owner).ptzOverride) ((MainForm)this.Owner).ptzMirror = false;
}
else if (thisMatch.Groups[1].Value == "1")
{
if (!((MainForm)this.Owner).ptzOverride) ((MainForm)this.Owner).ptzFlip = true;
if (!((MainForm)this.Owner).ptzOverride) ((MainForm)this.Owner).ptzMirror = false;
}
else if (thisMatch.Groups[1].Value == "2")
{
if (!((MainForm)this.Owner).ptzOverride) ((MainForm)this.Owner).ptzFlip = false;
if (!((MainForm)this.Owner).ptzOverride) ((MainForm)this.Owner).ptzMirror = true;
}
else if (thisMatch.Groups[1].Value == "3")
{
if (!((MainForm)this.Owner).ptzOverride) ((MainForm)this.Owner).ptzFlip = true;
if (!((MainForm)this.Owner).ptzOverride) ((MainForm)this.Owner).ptzMirror = true;
}
}
}
camConnected = true;
this.Text = "Camera Control";
}
catch
{
this.Text = "Error";
}
}
}
private void cboResolution_SelectedIndexChanged(object sender, EventArgs e)
{
if (camConnected)
{
if (cboResolution.SelectedIndex == 0)
{
MainMod.cameraCameraControl("0", "8", sourceUri.Host, sourceUri.Query);
}
else if (cboResolution.SelectedIndex == 1)
{
MainMod.cameraCameraControl("0", "32", sourceUri.Host, sourceUri.Query);
}
}
}
private void cboMode_SelectedIndexChanged(object sender, EventArgs e)
{
if (camConnected)
{
MainMod.cameraCameraControl("3", cboMode.SelectedIndex.ToString(), sourceUri.Host, sourceUri.Query);
}
}
private void btnBrightnessMinus_Click(object sender, EventArgs e)
{
if (camConnected)
{
if (int.Parse(txtBrightness.Text) > 1)
{
txtBrightness.Text = ((int)(int.Parse(txtBrightness.Text) - 1)).ToString();
MainMod.cameraCameraControl("1", ((int)(int.Parse(txtBrightness.Text) * 16)).ToString(), sourceUri.Host, sourceUri.Query);
}
}
}
private void btnBrightnessPlus_Click(object sender, EventArgs e)
{
if (camConnected)
{
if (int.Parse(txtBrightness.Text) < 13)
{
txtBrightness.Text = ((int)(int.Parse(txtBrightness.Text) + 1)).ToString();
MainMod.cameraCameraControl("1", ((int)(int.Parse(txtBrightness.Text) * 16)).ToString(), sourceUri.Host, sourceUri.Query);
}
}
}
private void btnContrastMinus_Click(object sender, EventArgs e)
{
if (camConnected)
{
if (int.Parse(txtContrast.Text) > 1)
{
txtContrast.Text = ((int)(int.Parse(txtContrast.Text) - 1)).ToString();
MainMod.cameraCameraControl("2", txtContrast.Text, sourceUri.Host, sourceUri.Query);
}
}
}
private void btnContrastPlus_Click(object sender, EventArgs e)
{
if (camConnected)
{
if (int.Parse(txtContrast.Text) < 4)
{
txtContrast.Text = ((int)(int.Parse(txtContrast.Text) + 1)).ToString();
MainMod.cameraCameraControl("2", txtContrast.Text, sourceUri.Host, sourceUri.Query);
}
}
}
private void btnMoveUpLeft_MouseDown(object sender, MouseEventArgs e)
{
if (camConnected)
{
if (((MainForm)this.Owner).ptzFlip && ((MainForm)this.Owner).ptzMirror)
{
MainMod.cameraDecoderControl(PTZ_RIGHT_DOWN, sourceUri.Host, sourceUri.Query);
}
else if (((MainForm)this.Owner).ptzFlip)
{
MainMod.cameraDecoderControl(PTZ_LEFT_DOWN, sourceUri.Host, sourceUri.Query);
}
else if (((MainForm)this.Owner).ptzMirror)
{
MainMod.cameraDecoderControl(PTZ_RIGHT_UP, sourceUri.Host, sourceUri.Query);
}
else
{
MainMod.cameraDecoderControl(PTZ_LEFT_UP, sourceUri.Host, sourceUri.Query);
}
}
}
private void btnMoveUpLeft_MouseUp(object sender, MouseEventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(PTZ_STOP, sourceUri.Host, sourceUri.Query);
}
}
private void btnMoveUp_MouseDown(object sender, MouseEventArgs e)
{
if (camConnected)
{
if (!((MainForm)this.Owner).ptzFlip)
{
MainMod.cameraDecoderControl(TILT_UP, sourceUri.Host, sourceUri.Query);
}
else
{
MainMod.cameraDecoderControl(TILT_DOWN, sourceUri.Host, sourceUri.Query);
}
}
}
private void btnMoveUp_MouseUp(object sender, MouseEventArgs e)
{
if (camConnected)
{
if (!((MainForm)this.Owner).ptzFlip)
{
MainMod.cameraDecoderControl(TILT_UP_STOP, sourceUri.Host, sourceUri.Query);
}
else
{
MainMod.cameraDecoderControl(TILT_DOWN_STOP, sourceUri.Host, sourceUri.Query);
}
}
}
private void btnMoveUpRight_MouseDown(object sender, MouseEventArgs e)
{
if (camConnected)
{
if (((MainForm)this.Owner).ptzFlip && ((MainForm)this.Owner).ptzMirror)
{
MainMod.cameraDecoderControl(PTZ_LEFT_DOWN, sourceUri.Host, sourceUri.Query);
}
else if (((MainForm)this.Owner).ptzFlip)
{
MainMod.cameraDecoderControl(PTZ_RIGHT_DOWN, sourceUri.Host, sourceUri.Query);
}
else if (((MainForm)this.Owner).ptzMirror)
{
MainMod.cameraDecoderControl(PTZ_LEFT_UP, sourceUri.Host, sourceUri.Query);
}
else
{
MainMod.cameraDecoderControl(PTZ_RIGHT_UP, sourceUri.Host, sourceUri.Query);
}
}
}
private void btnMoveUpRight_MouseUp(object sender, MouseEventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(PTZ_STOP, sourceUri.Host, sourceUri.Query);
}
}
private void btnMoveLeft_MouseDown(object sender, MouseEventArgs e)
{
if (camConnected)
{
if (!((MainForm)this.Owner).ptzMirror)
{
MainMod.cameraDecoderControl(PAN_LEFT, sourceUri.Host, sourceUri.Query);
}
else
{
MainMod.cameraDecoderControl(PAN_RIGHT, sourceUri.Host, sourceUri.Query);
}
}
}
private void btnMoveLeft_MouseUp(object sender, MouseEventArgs e)
{
if (camConnected)
{
if (!((MainForm)this.Owner).ptzMirror)
{
MainMod.cameraDecoderControl(PAN_LEFT_STOP, sourceUri.Host, sourceUri.Query);
}
else
{
MainMod.cameraDecoderControl(PAN_RIGHT_STOP, sourceUri.Host, sourceUri.Query);
}
}
}
private void btnMoveCenter_MouseDown(object sender, MouseEventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(PTZ_CENTER, sourceUri.Host, sourceUri.Query);
}
}
private void btnMoveCenter_MouseUp(object sender, MouseEventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(PTZ_STOP, sourceUri.Host, sourceUri.Query);
}
}
private void btnMoveRight_MouseDown(object sender, MouseEventArgs e)
{
if (camConnected)
{
if (!((MainForm)this.Owner).ptzMirror)
{
MainMod.cameraDecoderControl(PAN_RIGHT, sourceUri.Host, sourceUri.Query);
}
else
{
MainMod.cameraDecoderControl(PAN_LEFT, sourceUri.Host, sourceUri.Query);
}
}
}
private void btnMoveRight_MouseUp(object sender, MouseEventArgs e)
{
if (camConnected)
{
if (!((MainForm)this.Owner).ptzMirror)
{
MainMod.cameraDecoderControl(PAN_RIGHT_STOP, sourceUri.Host, sourceUri.Query);
}
else
{
MainMod.cameraDecoderControl(PAN_LEFT_STOP, sourceUri.Host, sourceUri.Query);
}
}
}
private void btnMoveDownLeft_MouseDown(object sender, MouseEventArgs e)
{
if (camConnected)
{
if (((MainForm)this.Owner).ptzFlip && ((MainForm)this.Owner).ptzMirror)
{
MainMod.cameraDecoderControl(PTZ_RIGHT_UP, sourceUri.Host, sourceUri.Query);
}
else if (((MainForm)this.Owner).ptzFlip)
{
MainMod.cameraDecoderControl(PTZ_LEFT_UP, sourceUri.Host, sourceUri.Query);
}
else if (((MainForm)this.Owner).ptzMirror)
{
MainMod.cameraDecoderControl(PTZ_RIGHT_DOWN, sourceUri.Host, sourceUri.Query);
}
else
{
MainMod.cameraDecoderControl(PTZ_LEFT_DOWN, sourceUri.Host, sourceUri.Query);
}
}
}
private void btnMoveDownLeft_MouseUp(object sender, MouseEventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(PTZ_STOP, sourceUri.Host, sourceUri.Query);
}
}
private void btnMoveDown_MouseDown(object sender, MouseEventArgs e)
{
if (camConnected)
{
if (!((MainForm)this.Owner).ptzFlip)
{
MainMod.cameraDecoderControl(TILT_DOWN, sourceUri.Host, sourceUri.Query);
}
else
{
MainMod.cameraDecoderControl(TILT_UP, sourceUri.Host, sourceUri.Query);
}
}
}
private void btnMoveDown_MouseUp(object sender, MouseEventArgs e)
{
if (camConnected)
{
if (!((MainForm)this.Owner).ptzFlip)
{
MainMod.cameraDecoderControl(TILT_DOWN_STOP, sourceUri.Host, sourceUri.Query);
}
else
{
MainMod.cameraDecoderControl(TILT_UP_STOP, sourceUri.Host, sourceUri.Query);
}
}
}
private void btnMoveDownRight_MouseDown(object sender, MouseEventArgs e)
{
if (camConnected)
{
if (((MainForm)this.Owner).ptzFlip && ((MainForm)this.Owner).ptzMirror)
{
MainMod.cameraDecoderControl(PTZ_LEFT_UP, sourceUri.Host, sourceUri.Query);
}
else if (((MainForm)this.Owner).ptzFlip)
{
MainMod.cameraDecoderControl(PTZ_RIGHT_UP, sourceUri.Host, sourceUri.Query);
}
else if (((MainForm)this.Owner).ptzMirror)
{
MainMod.cameraDecoderControl(PTZ_LEFT_DOWN, sourceUri.Host, sourceUri.Query);
}
else
{
MainMod.cameraDecoderControl(PTZ_RIGHT_DOWN, sourceUri.Host, sourceUri.Query);
}
}
}
private void btnMoveDownRight_MouseUp(object sender, MouseEventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(PTZ_STOP, sourceUri.Host, sourceUri.Query);
}
}
private void btnSetPreset_Click(object sender, EventArgs e)
{
menuSetPreset.Show(btnSetPreset, btnSetPreset.Width, 0);
}
private void btnRecallPreset_Click(object sender, EventArgs e)
{
menuRecPreset.Show(btnRecallPreset, btnRecallPreset.Width, 0);
}
private void btnZoomIn_MouseDown(object sender, MouseEventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(18, sourceUri.Host, sourceUri.Query);
}
}
private void btnZoomIn_MouseUp(object sender, MouseEventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(17, sourceUri.Host, sourceUri.Query);
}
}
private void btnZoomOut_MouseDown(object sender, MouseEventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(16, sourceUri.Host, sourceUri.Query);
}
}
private void btnZoomOut_MouseUp(object sender, MouseEventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(19, sourceUri.Host, sourceUri.Query);
}
}
private void btnHPatrol_On_Click(object sender, EventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(PTZ_HPATROL, sourceUri.Host, sourceUri.Query);
}
}
private void btnVPatrol_On_Click(object sender, EventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(PTZ_VPATROL, sourceUri.Host, sourceUri.Query);
}
}
private void btnIO_On_Click(object sender, EventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(IO_ON, sourceUri.Host, sourceUri.Query);
}
}
private void btnHPatrol_Off_Click(object sender, EventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(PTZ_HPATROL_STOP, sourceUri.Host, sourceUri.Query);
}
}
private void btnVPatrol_Off_Click(object sender, EventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(PTZ_VPATROL_STOP, sourceUri.Host, sourceUri.Query);
}
}
private void btnIO_Off_Click(object sender, EventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(IO_OFF, sourceUri.Host, sourceUri.Query);
}
}
private void menuSet_1_Click(object sender, EventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(30, sourceUri.Host, sourceUri.Query);
}
}
private void menuSet_2_Click(object sender, EventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(32, sourceUri.Host, sourceUri.Query);
}
}
private void menuSet_3_Click(object sender, EventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(34, sourceUri.Host, sourceUri.Query);
}
}
private void menuSet_4_Click(object sender, EventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(36, sourceUri.Host, sourceUri.Query);
}
}
private void menuSet_5_Click(object sender, EventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(38, sourceUri.Host, sourceUri.Query);
}
}
private void menuSet_6_Click(object sender, EventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(40, sourceUri.Host, sourceUri.Query);
}
}
private void menuSet_7_Click(object sender, EventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(42, sourceUri.Host, sourceUri.Query);
}
}
private void menuSet_8_Click(object sender, EventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(44, sourceUri.Host, sourceUri.Query);
}
}
private void menuSet_9_Click(object sender, EventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(46, sourceUri.Host, sourceUri.Query);
}
}
private void menuRec_1_Click(object sender, EventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(31, sourceUri.Host, sourceUri.Query);
}
}
private void menuRec_2_Click(object sender, EventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(33, sourceUri.Host, sourceUri.Query);
}
}
private void menuRec_3_Click(object sender, EventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(35, sourceUri.Host, sourceUri.Query);
}
}
private void menuRec_4_Click(object sender, EventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(37, sourceUri.Host, sourceUri.Query);
}
}
private void menuRec_5_Click(object sender, EventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(39, sourceUri.Host, sourceUri.Query);
}
}
private void menuRec_6_Click(object sender, EventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(41, sourceUri.Host, sourceUri.Query);
}
}
private void menuRec_7_Click(object sender, EventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(43, sourceUri.Host, sourceUri.Query);
}
}
private void menuRec_8_Click(object sender, EventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(45, sourceUri.Host, sourceUri.Query);
}
}
private void menuRec_9_Click(object sender, EventArgs e)
{
if (camConnected)
{
MainMod.cameraDecoderControl(47, sourceUri.Host, sourceUri.Query);
}
}
}
}
Download javaCamViewer/ControlForm.cs