Projects

Find all our projects in development below.
All source code is GNU General Public License (GPL)

javaCamViewer

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

Back to file list


Back to project page