//---------------------------------------------------------------------------
#ifndef MainFormH
#define MainFormH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include "VidGrab.hpp"
#include <ExtCtrls.hpp>
#include <Buttons.hpp>
#include <ComCtrls.hpp>
#include <Dialogs.hpp>
#include <Graphics.hpp>
#include <Menus.hpp>
#include <jpeg.hpp>
//---------------------------------------------------------------------------

const int CFreeHandMouseMax = 1000;

class TfrmMainForm : public TForm
{
__published:	// IDE-managed Components
        TLabel *Label9;
        TMemo *mmoLog;
        TEdit *edtoragePath;
        TEdit *edtFrameCount;
        TVideoGrabber *VideoGrabber;
        TPageControl *pctMain;
        TTabSheet *tbsVideoDevice;
        TTabSheet *tbsAudio;
        TTabSheet *tbsPlayer;
        TTabSheet *tbsFrameGrabber;
        TTabSheet *tbsClipReencoding;
        TTabSheet *TabSheet1;
        TMemo *mmoSensitivityGrid;
        TMemo *mmoMotionGrid;
        TTabSheet *tbsFrameOverlay;
        TTabSheet *tbsVideoProcessing;
        TTabSheet *tbsDisplay;
        TSpeedButton *btnSourceVideoClip;
        TEdit *edtSourceVideoClip;
        TEdit *edtDestinationVideoClip;
        TLabel *Label75;
        TLabel *Label45;
        TLabel *Label21;
        TLabel *Label53;
        TLabel *lblMotionDetectorRequiresFrameGrabber;
        TCheckBox *chkMotionDetectionEnabled;
        TCheckBox *chkReduceVideoNoise;
        TButton *btnShowGridDialog;
        TLabel *Label54;
        TCheckBox *chkCompareRed;
        TCheckBox *chkCompareGreen;
        TCheckBox *chkCompareBlue;
        TCheckBox *chk_GreyScale;
        TImage *imgMotionDetected;
        TGroupBox *grbMotionRatio;
        TShape *shpMotionDetected;
        TEdit *edtMotionRatio;
        TGroupBox *grbXYMaxMotion;
        TEdit *edtMaxMotionXY;
        TEdit *edtMaxMotionCoord;
        TGroupBox *grbCellsSensitivity;
        TLabel *Label57;
        TLabel *Label58;
        TLabel *Label59;
        TEdit *edtXCell;
        TUpDown *updXCell;
        TEdit *edtYCell;
        TUpDown *updYCell;
        TEdit *edtCellSensitivity;
        TUpDown *updCellSensitivity;
        TButton *btnSetCellsSensitivity;
        TGroupBox *grbGridSize;
        TLabel *Label55;
        TLabel *Label56;
        TEdit *edtGridColCount;
        TUpDown *updGridColCount;
        TEdit *edtGridRowCount;
        TUpDown *updGridRowCount;
        TButton *btnApplyGridSize;
        TCheckBox *chkTriggered;
        TButton *btnTriggerNow;
        TGroupBox *GroupBox2;
        TLabel *Label30;
        TButton *btnStartAudioRendering;
        TButton *btnStartWAVRecording;
        TButton *btnStartMP3Recording;
        TButton *btnStopAudio;
        TCheckBox *chkUseAudioOfVideoCaptureDevice;
        TButton *btnStartASFRecording;
        TLabel *Label2;
        TRadioGroup *rdgVUMeters;
        TPanel *pnLeftVUMeter;
        TPanel *pnRightVUMeter;
        TGroupBox *grbVideoDeviceDialogs;
        TButton *btnDeviceDialog;
        TButton *btnVideoQualityDialog;
        TButton *btnCameraControlDialog;
        TGroupBox *grbVMR9Adjust;
        TLabel *Label7;
        TLabel *Label28;
        TTrackBar *tbrVMR9Brightness;
        TTrackBar *tbrVMR9Contrast;
        TTrackBar *tbrVMR9Saturation;
        TTrackBar *tbrVMR9Hue;
        TCheckBox *vmr9FixRange;
        TGroupBox *grbCropping;
        TLabel *Label85;
        TLabel *Label86;
        TLabel *Label87;
        TLabel *Label84;
        TLabel *Label88;
        TCheckBox *chkCroppingEnabled;
        TTrackBar *trkCroppingX;
        TTrackBar *trkCroppingY;
        TEdit *edtCroppingWidth;
        TEdit *edtCroppingHeight;
        TTrackBar *trkCroppingZoom;
        TCheckBox *chkCroppingOutbounds;
        TButton *btnCroppingZoomReset;
        TRadioGroup *rdgDetectVideoSignal;
        TGroupBox *grbReencodingSettings;
        TCheckBox *chkIncludeVideoStream;
        TCheckBox *chkIncludeAudioStream;
        TCheckBox *chkUseCurrentVideoCompressor;
        TCheckBox *chkUseCurrentAudioCompressor;
        TCheckBox *chkUseFrameGrabber;
        TCheckBox *chkWMVOutput;
        TRadioGroup *rdgReencodingMethod;
        TButton *btnStartReencoding;
        TButton *btnStopReencoding;
        TGroupBox *grbStartStopTime;
        TLabel *Label61;
        TLabel *Label62;
        TLabel *Label63;
        TLabel *Label64;
        TEdit *edtReencStartTime;
        TEdit *edtReencDuration;
        TEdit *edtReencStopTime;
        TButton *btnDuration;
        TEdit *edtReencFrameCount;
        TEdit *edtReencStartFrame;
        TEdit *edtReencStopFrame;
        TLabel *Label79;
        TLabel *Label78;
        TMainMenu *MainMenu1;
        TMenuItem *mnuFile;
        TMenuItem *mnuExit;
        TMenuItem *mnuAbout;
        TGroupBox *grbAudioRendering;
        TLabel *Label17;
        TLabel *Label35;
        TTrackBar *tbrAudioVolume;
        TTrackBar *tbrAudioBalance;
        TCheckBox *chkMuteAudioRendering;
        TComboBox *cboAudioRenderers;
        TGroupBox *grbVideoSource;
        TComboBox *cboVideoSource;
        TGroupBox *grbSoftwareVideoProcessing;
        TLabel *Label31;
        TLabel *Label50;
        TLabel *Label60;
        TRadioGroup *rdgVideoRotation;
        TRadioGroup *rdgDeinterlacing;
        TCheckBox *chkFlipVertical;
        TCheckBox *chkFlipHorizontal;
        TCheckBox *chkGreyScale;
        TCheckBox *chkInvertColors;
        TButton *btnResetAll;
        TTrackBar *tbrBrightness;
        TTrackBar *tbrConstrast;
        TTrackBar *tbrSaturation;
        TTrackBar *tbrHue;
        TEdit *edtPixellization;
        TUpDown *updPixellization;
        TEdit *edtCustomRotationAngle;
        TTrackBar *tbrZoom;
        TTrackBar *tbrZoomX;
        TTrackBar *tbrZoomY;
        TLabel *Label105;
        TLabel *Label107;
        TLabel *Label81;
        TGroupBox *grbFreeHand;
        TLabel *Label27;
        TCheckBox *chkFreeHandEnabled;
        TButton *btnFreeHandErase;
        TCheckBox *chkChangePixels;
        TCheckBox *chkDrawGridOverFrames;
        TCheckBox *chkDrawTarget;
        TGroupBox *grbBitmapOverlay;
        TLabel *Label48;
        TSpeedButton *btnLoadImageOverlayFromFile;
        TLabel *Label25;
        TLabel *Label82;
        TLabel *Label96;
        TLabel *Label47;
        TLabel *Label102;
        TLabel *Label103;
        TRadioGroup *rdgImageOverlaySelector;
        TTrackBar *edtChromaKeyLeewayPercent;
        TCheckBox *chkImageOverlayEnabled;
        TEdit *edtImageOverlayLeft;
        TEdit *edtImageOverlayTop;
        TCheckBox *chkImageOverlayTransparent;
        TCheckBox *chkImageOverlayUseTransparentColor;
        TEdit *edtImageOverlayTransparentColorValue;
        TButton *btnImageOverlayPickupColor;
        TButton *btnImageOverlayPickupHelp;
        TEdit *edtImageOverlayWidth;
        TEdit *edtImageOverlayHeight;
        TCheckBox *chkImageOverlayAlphaBlend;
        TTrackBar *chkImageOverlayAlphablendCoeff;
        TCheckBox *chkImageOverlayChromaKey;
        TEdit *edtChromaKeyColorValue;
        TGroupBox *grbPlayerControl;
        TSpeedButton *btnPlayerBackwards;
        TSpeedButton *btnPlayerPause;
        TSpeedButton *btnPlayerStop;
        TSpeedButton *btnPlayerStartPlaying;
        TSpeedButton *btnPlayerRewind;
        TSpeedButton *btnPlayerFastForward;
        TSpeedButton *btnPlayerFrameStep;
        TTrackBar *tbrPlayerProgress;
        TCheckBox *chkPlayerTrackbarSynchrone;
        TMenuItem *Options1;
        TMenuItem *Resetvideocapturedevicesettings1;
        TLabel *lblFrameOverlayRequiresFrameGrabber;
        TRadioGroup *rdgVideoRenderer;
        TCheckBox *chkBlackMagicDecklink;
        TCheckBox *chkVideoVisibleWhenStopped;
        TCheckBox *chkAdjustPixelAspectRatio;
        TCheckBox *chkBorder;
        TCheckBox *chkChangeCursor;
        TCheckBox *chkTransparency;
        TCheckBox *chkSetLogo;
        TImage *imgLogo;
        TGroupBox *grbVsFileOrUrl;
        TSpeedButton *btnSelectFileOrUrl;
        TLabel *Label100;
        TLabel *Label101;
        TEdit *edtVideoSourceFileOrUrl;
        TEdit *VideoSourceFileOrUrl_UserName;
        TEdit *VideoSourceFileOrUrl_Password;
        TGroupBox *grbVsScreenRecording;
        TLabel *Label29;
        TLabel *Label90;
        TEdit *edtScreenRecordingWindow;
        TButton *btnScreenRecordingWindow;
        TEdit *edtMonitorNumber;
        TButton *btnMonitorNumberInfo;
        TCheckBox *chkScreenRecordingWithCursor;
        TGroupBox *grbPreview;
        TBitBtn *btnStartPreview;
        TButton *btnStopPreview;
        TButton *btnPausePreview;
        TButton *btnResumePreview;
        TGroupBox *grbFrameRate;
        TEdit *edtFrameRate;
        TButton *btnFrameRate;
        TButton *btnAboutFrameRate;
        TCheckBox *btnAutoRefreshPreview;
        TCheckBox *chkEnableSnapshotButton;
        TLabel *Label97;
        TEdit *edtImageOverlayTargetDisplay;
        TButton *btnImageOverlayInfo;
        TGroupBox *grbTextOverlay;
        TLabel *Label13;
        TLabel *Label20;
        TLabel *Label22;
        TLabel *Label33;
        TLabel *Label37;
        TLabel *Label3;
        TRadioGroup *rdgTextOverlayAlign;
        TCheckBox *chkTextOverlayEnabled;
        TCheckBox *chkTextOverlayTransparent;
        TMemo *mmoTextOverlayString;
        TEdit *edtTextOverlayTop;
        TEdit *edtTextOverlayLeft;
        TEdit *edtTextOverlayRight;
        TCheckBox *chkTextOverlayShadow;
        TUpDown *updTextOverlaySize;
        TRadioGroup *rdgTextOverlaySelector;
        TButton *btnTextOverlayColor;
        TButton *btnBkgndColor;
        TCheckBox *chkTextOverlayHighResFont;
        TEdit *edtTextOverlayTargetDisplay;
        TButton *btnTargetDisplayInfo;
        TCheckBox *chkTextOverlayScrolling;
        TEdit *edtTextOverlayScrollingSpeed;
        TRadioGroup *rdgDisplaySelected;
        TCheckBox *chkDisplayActive;
        TGroupBox *grbMainVideoWindow;
        TLabel *Label74;
        TLabel *edtAssignToMonitorLabel;
        TCheckBox *chkEmbedded;
        TCheckBox *chkFullScreen;
        TCheckBox *chkStayOnTop;
        TCheckBox *chkUseVideoPort;
        TCheckBox *chkMouseMovesWindow;
        TCheckBox *chkAutoSize;
        TButton *btnNewLocation2;
        TRadioGroup *rdgAspectRatio;
        TCheckBox *chkVisible;
        TTrackBar *tbrPanScan;
        TButton *btnTestPanScan;
        TCheckBox *chkAlphablend;
        TCheckBox *chkTranspColor;
        TTrackBar *tbrAlphablend;
        TEdit *edtTranspColor;
        TEdit *edtAssignToMonitorNumber;
        TRadioGroup *rgdFrameGrabber;
        TLabel *Label42;
        TRadioGroup *rgdFrameGrabberFormat;
        TGroupBox *grbOneShot;
        TEdit *edtUseThisFileName;
        TButton *btnOneShotTBitmap;
        TButton *btnOneShotBMPFile;
        TButton *btnOneShotJPEGFile;
        TCheckBox *chkUseThisFileName;
        TButton *btnOneShotClipboard;
        TMemo *mmoFrameCaptureLog;
        TGroupBox *grbZoomSize;
        TLabel *Label12;
        TTrackBar *tbrCaptureZoomSize;
        TEdit *edtCaptureZoomSize;
        TButton *btnResetCaptureZoomSize;
        TLabel *Label72;
        TEdit *edtFrameCaptureWidth;
        TLabel *Label73;
        TEdit *edtFrameCaptureHeight;
        TTabSheet *tbsMPE;
        TGroupBox *grbBurstMode;
        TLabel *Label14;
        TLabel *Label15;
        TButton *btnBurstModeBMPFile;
        TButton *btnBurstModeJPEGFile;
        TEdit *edtBurstCount;
        TEdit *edtBurstInterval;
        TButton *btnBurstModeStop;
        TButton *btnBurstModeTBitmap;
        TButton *btnBurstModeClipboard;
        TCheckBox *chkModulo;
        TButton *btnBargraphOverlay;
        TTabSheet *tbsIPCameras;
        TCheckBox *chkAdjustOverlayAspectRatio;
        TSpeedButton *btnPIPFromAnotherTVideoGrabber;
        TButton *btnPIPStop;
        TLabel *lblChooseIPCamera;
        TLabel *Label91;
        TLabel *Label92;
        TLabel *Label93;
        TLabel *Label98;
        TLabel *Label94;
        TLabel *Label95;
        TEdit *edtIPCameraURL;
        TButton *btnIPCamStartPreview;
        TEdit *edtIPCamConnectionTimeout;
        TEdit *edtIPCamReceiveTimeout;
        TButton *btnCurrentIPCameraURL;
        TCheckBox *chkOpenURLAsync;
        TButton *btnIPCameraStop;
        TButton *btnIPCameraStarttMP4Recording;
        TRichEdit *RichEdit1;
        TEdit *edtBacktimedRecordingSeconds;
        TCheckBox *chkBacktimedRecordingSeconds;
        TEdit *edtIPCamUserName;
        TEdit *edtIPCamPassword;
        TCheckBox *chkUseExternalAudioforRTSP;
        TSpeedButton *btnOpenLastClipRecorded;
        TSpeedButton *btnPlayerOpenFile;
        TLabel *Label23;
        TLabel *Label40;
        TLabel *Label41;
        TLabel *Label52;
        TSpeedButton *btnPlayerOpenStreamingURL;
        TSpeedButton *btnOpenLastClipPlayed;
        TLabel *Label77;
        TLabel *Label80;
        TLabel *Label89;
        TEdit *edtPlayerFastSeekSpeed;
        TEdit *edtPlayerSpeedRatio;
        TUpDown *updPlayerFastSeekSpeed;
        TCheckBox *btnAutoPlay;
        TEdit *edtPlayerClip;
        TCheckBox *chkPlayerAudioRendering;
        TCheckBox *chkRefreshPausedDisplay;
        TButton *btnOpenClip;
        TButton *btnPlayerCloseClip;
        TButton *btnGetClipDuration;
        TButton *btnGeneralInfo;
        TButton *btnHeaderInfo;
        TCheckBox *chkUseClock;
        TGroupBox *grbPlayList;
        TSpeedButton *btnAddToPlaylist;
        TCheckBox *chkPlaylistLoop;
        TButton *btnPlaylistPlay;
        TButton *btnPlaylistNext;
        TButton *btnPlaylistPrevious;
        TCheckBox *chkPlaylistRandom;
        TButton *btnPlaylistStop;
        TListBox *lstPlaylist;
        TButton *btnClosePlaylist;
        TButton *btnOpenAtFrames;
        TButton *btnOpenAtTimes;
        TEdit *edtartFrame;
        TEdit *edtopFrame;
        TEdit *edtartTime;
        TEdit *edtopTime;
        TCheckBox *chkKeepBounds;
        TCheckBox *chkReopen;
        TCheckBox *chkPlayerLoop;
        TRadioGroup *rdgHwAccel;
        TGroupBox *GroupBox9;
        TLabel *Label114;
        TPageControl *PageControl1;
        TTabSheet *TabSheet2;
        TLabel *Label108;
        TLabel *Label109;
        TLabel *Label99;
        TLabel *Label110;
        TButton *btnPTZTiltUp;
        TButton *btnPTZPanLeft;
        TButton *btnPTZPanRight;
        TButton *btnPTZTiltDown;
        TButton *btnPTZZoomOut;
        TButton *btnPTZZoomIn;
        TEdit *edtPTZDurationMs;
        TButton *btnPTZHelpDuration;
        TCheckBox *chkPTZMouseUpStop;
        TTabSheet *TabSheet3;
        TLabel *Label111;
        TLabel *Label112;
        TLabel *Label113;
        TButton *btnPTZSetTrackbarLimits;
        TTrackBar *tbrPTZPan;
        TTrackBar *tbrPTZZoom;
        TTrackBar *tbrPTZTilt;
        TTabSheet *TabSheet4;
        TLabel *Label115;
        TLabel *Label117;
        TLabel *Label118;
        TEdit *edtPTZRelativeMove;
        TButton *btnRelativePanLeft;
        TButton *btnRelativeTiltUp;
        TButton *btnRelativePanRight;
        TButton *btnRelativeTiltDown;
        TButton *btnRelativeZoomOut;
        TButton *btnRelativeZoomIn;
        TButton *PTZStop;
        TTrackBar *tbrPTZSpeedRatio;
        TButton *btnHelpPTZSpeedRatio;
        TRadioGroup *rdgIRCutFilter;
        TCheckBox *chkRenderAudioDevice;
        TGroupBox *grbAudioSource;
        TRadioButton *rdbAudioSourceSpeakerOutput;
        TRadioButton *rdbAudioSourceDefaultWithSpeakerRecording;
        TRadioButton *rdbAudioSourceDefault;
        TRadioButton *rdbExternalAudio;
        TGroupBox *grbAudioCaptureDevice;
        TLabel *Label26;
        TLabel *Label49;
        TLabel *Label36;
        TComboBox *cboAudioDevices;
        TComboBox *cboAudioInputs;
        TTrackBar *tbrAudioInputLevel;
        TTrackBar *tbrAudioInputBalance;
        TRadioGroup *rdgPreferredVideoSize;
        TCheckBox *chkretchPreferredVideoSize;
        TCheckBox *chk360VideoDecoding;
        TPageControl *PageControl2;
        TTabSheet *tbsDatasteadEncoder;
        TLabel *Label140;
        TTabSheet *TabSheet7;
        TPageControl *pgcMPE;
        TTabSheet *tshMPESettings;
        TGroupBox *GroupBox4;
        TCheckBox *chkMPEStreaming;
        TGroupBox *grbMPErecord;
        TCheckBox *chkMPERecording;
        TGroupBox *GroupBox6;
        TEdit *edtMPEReencoding;
        TButton *btnStartMPEReencoding;
        TButton *btnStopMPEReencoding;
        TTabSheet *tbsMPERecordingLog;
        TLabel *lblMPERecordingProgressInfo;
        TMemo *mmoMPERecordingLog;
        TTabSheet *tbsMPEStreamingLog;
        TLabel *lblMPEStreamingProgressInfo;
        TMemo *mmoMPEStreamingLog;
        TTabSheet *tbsMPEReencodingLog;
        TLabel *lblMPEReencodingProgressInfo;
        TMemo *mmoMPEReencodingLog;
        TMemo *Memo2;
        TGroupBox *video;
        TLabel *Label128;
        TLabel *Label129;
        TLabel *Label130;
        TLabel *Label134;
        TLabel *Label135;
        TLabel *Label137;
        TLabel *Label136;
        TEdit *edtDatasteadEncoder_CodecName;
        TEdit *edtDatasteadEncoder_Video_Bitrate_kb;
        TGroupBox *GroupBox10;
        TLabel *Label131;
        TLabel *Label132;
        TLabel *Label133;
        TEdit *edtDatasteadEncoder_Video_rc_MinBitRate_kb;
        TEdit *edtDatasteadEncoder_Video_rc_MaxBitRate_kb;
        TEdit *edtDatasteadEncoder_Video_rc_BufferSize_kb;
        TEdit *edtDatasteadEncoder_Video_IDRInterval;
        TEdit *edtDatasteadEncoder_Video_MaxBframes;
        TEdit *edtDatasteadEncoder_Video_ThreadCount;
        TComboBox *cmbGPUEncoder;
	TTabSheet *tbsRecording;
	TLabel *Label5;
	TLabel *Label6;
	TLabel *Label16;
	TCheckBox *chkAudioRecording;
	TCheckBox *chkPreserveNativeFormat;
	TGroupBox *GroupBox5;
	TLabel *Label1;
	TRadioGroup *grbRecordingTimer;
	TEdit *edtRecordingTimerInterval;
	TCheckBox *chkRecordingCanPause;
	TCheckBox *chkRecordingPauseCreatesNewFile;
	TCheckBox *chkRecordingOnMotion;
	TButton *btnPauseRecording;
	TButton *btnResumeRecording;
	TRadioGroup *rdgCompressMode;
	TComboBox *cboVideoCompressors;
	TButton *btnVideoCompressorSettings;
	TComboBox *cboAudioCompressors;
	TButton *btnAudioCompressorSettings;
	TButton *BtnCodecExamples;
	TRadioGroup *rdgRecordingMethod;
	TCheckBox *chkAVISaveToThisFile;
	TEdit *edtRecordingFileName;
	TButton *btnRenewRecordingFile;
	TEdit *edtNewFileDuringRecording;
	TLabel *Label11;
	TBitBtn *btnStartRecordingImmediately;
	TBitBtn *btnStartRecordingControlled;
	TButton *btnStopRecording;
	TGroupBox *grbVsVideoCaptureDevice;
	TLabel *Label4;
	TLabel *Label19;
	TLabel *Label8;
	TLabel *Label104;
	TLabel *Label18;
	TComboBox *cboVideoInputs;
	TComboBox *cboAnalogVideoStandard;
	TComboBox *cboVideoDevices;
	TComboBox *cboVideoFormats;
	TComboBox *cboVideoSubtypes;
	TComboBox *cboVideoSizes;
	TLabel *Label106;
	TMemo *mmoExtraParameters;
	TTabSheet *TabSheet5;
	TGroupBox *GroupBox3;
	TButton *btnMultipurposeUDPStreaming;
	TButton *btnPauseStreaming;
	TButton *btnResumeStreaming;
	TLabel *Label10;
	TLabel *Label120;
	TCheckBox *chkStreamingVideoEnabled;
	TCheckBox *chkStreamingAudioEnabled;
	TLabel *Label24;
	TGroupBox *grbGridString;
	TLabel *Label51;
	TLabel *lblGridValid;
	TShape *shpGridValid;
	TEdit *edtGrid;
	TUpDown *updGlobalGridSensitivity;
	TEdit *edtMPERecording;
	TEdit *edtMPEStreaming;
	TGroupBox *GroupBox12;
	TLabel *Label138;
	TLabel *Label139;
	TLabel *Label38;
	TLabel *Label32;
	TEdit *edtDatasteadEncoder_Audio_SamplesPerSecond;
	TEdit *edtDatasteadEncoder_Audio_BitRate_kb;
	TEdit *edtDatasteadEncoder_AudioCodecName;
	TGroupBox *GroupBox11;
	TLabel *Label125;
	TLabel *Label127;
	TEdit *edtNDISessionName;
	TButton *btnNDIStreamingOK;
	TGroupBox *GroupBox7;
	TLabel *Label34;
	TLabel *Label39;
	TLabel *Label44;
	TButton *btnNDIStreamingClientView;
	TEdit *edtNDIRemoteHostAndSession;
	TButton *btnNDISessions;
	TEdit *edtNDIReceiveTimeout;
	TEdit *edtIPCameraNTPFrameTime;
	TLabel *Label65;
	TLabel *Label66;
	TComboBox *cboAutoFileName;
	TLabel *Label46;
	TEdit *edtAVIAutoFilePrefix;
        void __fastcall FormCreate(TObject *Sender);
        void __fastcall cboVideoDevicesChange(TObject *Sender);
        void __fastcall btnStartPreviewClick(TObject *Sender);
        void __fastcall btnStopPreviewClick(TObject *Sender);
        void __fastcall btnPausePreviewClick(TObject *Sender);
        void __fastcall btnResumePreviewClick(TObject *Sender);
        void __fastcall btnAutoRefreshPreviewClick(TObject *Sender);
        void __fastcall cboVideoInputsChange(TObject *Sender);
        void __fastcall cboVideoSizesChange(TObject *Sender);
        void __fastcall cboAnalogVideoStandardChange(TObject *Sender);
        void __fastcall cboVideoSubtypesChange(TObject *Sender);
        void __fastcall btnDeviceDialogClick(TObject *Sender);
        void __fastcall btnCameraControlDialogClick(TObject *Sender);
        void __fastcall btnVideoQualityDialogClick(TObject *Sender);
        void __fastcall btnFrameRateClick(TObject *Sender);
        void __fastcall VideoGrabberVideoDeviceSelected(TObject *Sender);
        void __fastcall VideoGrabberPreviewStarted(TObject *Sender);
        void __fastcall cboAudioInputsChange(TObject *Sender);
        void __fastcall cboAudioDevicesChange(TObject *Sender);
		void __fastcall tbrAudioInputLevelChange(TObject *Sender);
		void __fastcall VideoGrabberAudioDeviceSelected(TObject *Sender);
		void __fastcall chkPlayerAudioRenderingClick(TObject *Sender);
        void __fastcall btnStopRecordingClick(TObject *Sender);
        void __fastcall rdgRecordingMethodClick(TObject *Sender);
        void __fastcall chkRecordingCanPauseClick(TObject *Sender);
        void __fastcall btnPauseRecordingClick(TObject *Sender);
        void __fastcall btnResumeRecordingClick(TObject *Sender);
        void __fastcall cboVideoCompressorsChange(TObject *Sender);
        void __fastcall cboAudioCompressorsChange(TObject *Sender);
        void __fastcall btnVideoCompressorSettingsClick(TObject *Sender);
        void __fastcall btnAudioCompressorSettingsClick(TObject *Sender);
        void __fastcall rdgCompressModeClick(TObject *Sender);
        void __fastcall rgdFrameGrabberClick(TObject *Sender);
        void __fastcall rgdFrameGrabberFormatClick(TObject *Sender);
        void __fastcall rdgAutoFileNameClick(TObject *Sender);
        void __fastcall edtAVIAutoFilePrefixChange(TObject *Sender);
        void __fastcall btnPlayerCloseFileClick(TObject *Sender);
        void __fastcall updPlayerFastSeekSpeedClick(TObject *Sender,
          TUDBtnType Button);
        void __fastcall btnPlayerOpenFileClick(TObject *Sender);
        void __fastcall btnPlayerPauseClick(TObject *Sender);
        void __fastcall btnPlayerStopClick(TObject *Sender);
        void __fastcall btnPlayerStartPlayingClick(TObject *Sender);
        void __fastcall btnPlayerBackwardsClick(TObject *Sender);
        void __fastcall btnPlayerRewindClick(TObject *Sender);
        void __fastcall btnPlayerFastForwardClick(TObject *Sender);
        void __fastcall btnAutoPlayClick(TObject *Sender);
        void __fastcall VideoGrabberPlayerBufferingData(TObject *Sender,
          bool StartingToBuffer);
        void __fastcall VideoGrabberPlayerEndOfStream(TObject *Sender);
        void __fastcall chkRenderAudioDeviceClick(TObject *Sender);
		void __fastcall btnOneShotTBitmapClick(TObject *Sender);
        void __fastcall btnOneShotBMPFileClick(TObject *Sender);
        void __fastcall btnOneShotJPEGFileClick(TObject *Sender);
        void __fastcall chkUseThisFileNameClick(TObject *Sender);
        void __fastcall btnBurstModeTBitmapClick(TObject *Sender);
        void __fastcall btnBurstModeBMPFileClick(TObject *Sender);
        void __fastcall btnBurstModeJPEGFileClick(TObject *Sender);
        void __fastcall btnBurstModeStopClick(TObject *Sender);
        void __fastcall edtBurstCountChange(TObject *Sender);
        void __fastcall edtBurstIntervalChange(TObject *Sender);
        void __fastcall tbrCaptureZoomSizeChange(TObject *Sender);
        void __fastcall btnResetCaptureZoomSizeClick(TObject *Sender);
        void __fastcall chkTextOverlayEnabledClick(TObject *Sender);
        void __fastcall chkTextOverlayTransparentClick(TObject *Sender);
        void __fastcall rdgTextOverlayAlignClick(TObject *Sender);
        void __fastcall mmoTextOverlayStringChange(TObject *Sender);
        void __fastcall edtTextOverlayLeftChange(TObject *Sender);
        void __fastcall edtTextOverlayTopChange(TObject *Sender);
        void __fastcall edtTextOverlayRightChange(TObject *Sender);
        void __fastcall btnFreeHandEraseClick(TObject *Sender);
        void __fastcall VideoGrabberMouseMove(TObject *Sender,
          int VideoWindow, TShiftState Shift, int X, int Y);
        void __fastcall VideoGrabberMouseDown(TObject *Sender,
          int VideoWindow, TMouseButton Button, TShiftState Shift, int X,
          int Y);
        void __fastcall VideoGrabberMouseUp(TObject *Sender,
          int VideoWindow, TMouseButton Button, TShiftState Shift, int X,
          int Y);
        void __fastcall VideoGrabberResizeVideo(TObject *Sender,
          int SourceWidth, int SourceHeight);
        void __fastcall rdgVideoRotationClick(TObject *Sender);
        void __fastcall rdgDeinterlacingClick(TObject *Sender);
        void __fastcall tbrBrightnessChange(TObject *Sender);
        void __fastcall tbrConstrastChange(TObject *Sender);
        void __fastcall tbrSaturationChange(TObject *Sender);
        void __fastcall tbrHueChange(TObject *Sender);
        void __fastcall btnResetAllClick(TObject *Sender);
        void __fastcall chkFlipVerticalClick(TObject *Sender);
        void __fastcall chkFlipHorizontalClick(TObject *Sender);
        void __fastcall chkGreyScaleClick(TObject *Sender);
        void __fastcall chkInvertColorsClick(TObject *Sender);
        void __fastcall chkBorderClick(TObject *Sender);
        void __fastcall chkTransparencyClick(TObject *Sender);
        void __fastcall rdgVideoRendererClick(TObject *Sender);
        void __fastcall chkEmbeddedClick(TObject *Sender);
        void __fastcall chkAutoSizeClick(TObject *Sender);
        void __fastcall chkFullScreenClick(TObject *Sender);
        void __fastcall chkStayOnTopClick(TObject *Sender);
        void __fastcall chkUseVideoPortClick(TObject *Sender);
        void __fastcall btnNewLocationClick(TObject *Sender);
        void __fastcall btnNewLocation2Click(TObject *Sender);
        void __fastcall edtoragePathChange(TObject *Sender);
        void __fastcall VideoGrabberLog(TObject *Sender, TLogType LogType,
          String Severity, String InfoMsg);
        void __fastcall mnuAboutClick(TObject *Sender);
        void __fastcall VideoGrabberResize(TObject *Sender);
        void __fastcall VideoGrabberDeviceLost(TObject *Sender);
        void __fastcall VideoGrabberDiskFull(TObject *Sender);
        void __fastcall VideoGrabberDeviceArrivalOrRemoval(TObject *Sender,
          bool IsDeviceArrival, bool IsVideoDevice, String DeviceName,
          int DeviceIndex);
        void __fastcall mnuExitClick(TObject *Sender);
        void __fastcall chkCompareRedClick(TObject *Sender);
        void __fastcall chkCompareGreenClick(TObject *Sender);
        void __fastcall chkCompareBlueClick(TObject *Sender);
        void __fastcall chk_GreyScaleClick(TObject *Sender);
        void __fastcall chkReduceVideoNoiseClick(TObject *Sender);
        void __fastcall edtGridChange(TObject *Sender);
        void __fastcall updGlobalGridSensitivityClick(TObject *Sender,
          TUDBtnType Button);
        void __fastcall btnApplyGridSizeClick(TObject *Sender);
        void __fastcall btnSetCellsSensitivityClick(TObject *Sender);
        void __fastcall btnShowGridDialogClick(TObject *Sender);
        void __fastcall chkMotionDetectionEnabledClick(TObject *Sender);
        void __fastcall tbrAudioInputBalanceChange(TObject *Sender);
        void __fastcall VideoGrabberReinitializing(TObject *Sender);
			void __fastcall VideoGrabberReencodingStarted(TObject *Sender,
          String SourceFile, String DestFile);
        void __fastcall VideoGrabberReencodingCompleted(TObject *Sender,
          String SourceFile, String DestFile, bool Success);
        void __fastcall VideoGrabberInactive(TObject *Sender);
        void __fastcall btnSourceVideoClipClick(TObject *Sender);
        void __fastcall btnStartReencodingClick(TObject *Sender);
        void __fastcall btnStartRecordingImmediatelyClick(TObject *Sender);
        void __fastcall btnStartRecordingControlledClick(TObject *Sender);
        void __fastcall VideoGrabberRecordingReadyToStart(TObject *Sender);
        void __fastcall chkRefreshPausedDisplayClick(TObject *Sender);
        void __fastcall VideoGrabberPlayerOpened(TObject *Sender);
        void __fastcall btnStopReencodingClick(TObject *Sender);
        void __fastcall chkPreserveNativeFormatClick(TObject *Sender);
        void __fastcall chkSetLogoClick(TObject *Sender);
        void __fastcall btnDurationClick(TObject *Sender);
        void __fastcall btnOpenLastClipRecordedClick(TObject *Sender);
        void __fastcall btnOpenLastClipPlayedClick(TObject *Sender);
		void __fastcall chkCroppingEnabledClick(TObject *Sender);
        void __fastcall chkCroppingOutboundsClick(TObject *Sender);
        void __fastcall edtCroppingWidthChange(TObject *Sender);
        void __fastcall edtCroppingHeightChange(TObject *Sender);
        void __fastcall trkCroppingZoomChange(TObject *Sender);
        void __fastcall btnCroppingZoomResetClick(TObject *Sender);
        void __fastcall trkCroppingYChange(TObject *Sender);
        void __fastcall trkCroppingXChange(TObject *Sender);
        void __fastcall cboVideoSourceChange(TObject *Sender);
        void __fastcall chkScreenRecordingWithCursorClick(TObject *Sender);
        void __fastcall tbrVMR9BrightnessChange(TObject *Sender);
        void __fastcall tbrVMR9ContrastChange(TObject *Sender);
        void __fastcall tbrVMR9SaturationChange(TObject *Sender);
        void __fastcall tbrVMR9HueChange(TObject *Sender);
        void __fastcall VideoGrabberGraphBuilt(TObject *Sender);
        void __fastcall vmr9FixRangeClick(TObject *Sender);
        void __fastcall chkChangeCursorClick(TObject *Sender);
        void __fastcall FormDestroy(TObject *Sender);
		void __fastcall chkAudioRecordingClick(TObject *Sender);
        void __fastcall tbrAudioVolumeChange(TObject *Sender);
        void __fastcall tbrAudioBalanceChange(TObject *Sender);
        void __fastcall chkMuteAudioRenderingClick(TObject *Sender);
        void __fastcall btnRenewRecordingFileClick(TObject *Sender);
        void __fastcall VideoGrabberRecordingStarted(TObject *Sender,
          String FileName);
		void __fastcall VideoGrabberRecordingCompleted(TObject *Sender,
		  String FileName, bool Success);
        void __fastcall VideoGrabberReencodingProgress(TObject *Sender,
          int Percent, Int64 Position, Int64 Duration);
		void __fastcall edtVideoSourceFileOrUrlChange(TObject *Sender);
        void __fastcall btnLoadImageOverlayFromFileClick(TObject *Sender);
        void __fastcall VideoGrabberFrameCaptureCompleted(TObject *Sender,
          Pointer FrameBitmap, int BitmapWidth, int BitmapHeight,
          DWORD FrameNumber, Int64 FrameTime, TFrameCaptureDest DestType,
          String FileName, bool Success, int FrameId);
        void __fastcall VideoGrabberMotionDetected(TObject *Sender,
          double GlobalMotionRatio, int MaxMotionCellX, int MaxMotionCellY,
          Pointer FrameBitmap, DWORD FrameNumber, Int64 FrameTime,
          int FrameId, bool &CaptureFrame);
        void __fastcall VideoGrabberMotionNotDetected(TObject *Sender,
          Pointer FrameBitmap, DWORD FrameNumber, Int64 FrameTime,
          int FrameId, bool &CaptureFrame);
        void __fastcall btnOpenClipClick(TObject *Sender);
        void __fastcall btnPlayerCloseClipClick(TObject *Sender);
        void __fastcall btnGetClipDurationClick(TObject *Sender);
        void __fastcall btnTriggerNowClick(TObject *Sender);
        void __fastcall chkTriggeredClick(TObject *Sender);
        void __fastcall chkRecordingPauseCreatesNewFileClick(
          TObject *Sender);
        void __fastcall btnGeneralInfoClick(TObject *Sender);
        void __fastcall btnHeaderInfoClick(TObject *Sender);
        void __fastcall rdgVUMetersClick(TObject *Sender);
        void __fastcall updTextOverlaySizeClick(TObject *Sender,
          TUDBtnType Button);
        void __fastcall chkTextOverlayShadowClick(TObject *Sender);
        void __fastcall btnDlgAudioDeviceClick(TObject *Sender);
        void __fastcall btnAboutFrameRateClick(TObject *Sender);
        void __fastcall btnStartAudioRenderingClick(TObject *Sender);
        void __fastcall btnStartWAVRecordingClick(TObject *Sender);
        void __fastcall btnStartMP3RecordingClick(TObject *Sender);
        void __fastcall btnStopAudioClick(TObject *Sender);
        void __fastcall chkUseAudioOfVideoCaptureDeviceClick(
          TObject *Sender);
        void __fastcall chkRecordingOnMotionClick(TObject *Sender);
        void __fastcall chkUseClockClick(TObject *Sender);
        void __fastcall btnUrlConfClick(TObject *Sender);
        void __fastcall btnSelectFileOrUrlClick(TObject *Sender);
        void __fastcall btnScreenRecordingWindowClick(TObject *Sender);
        void __fastcall btnAddToPlaylistClick(TObject *Sender);
        void __fastcall btnPlaylistPlayClick(TObject *Sender);
        void __fastcall btnPlaylistNextClick(TObject *Sender);
        void __fastcall btnPlaylistPreviousClick(TObject *Sender);
        void __fastcall btnPlaylistStopClick(TObject *Sender);
        void __fastcall chkPlaylistLoopClick(TObject *Sender);
        void __fastcall chkPlaylistRandomClick(TObject *Sender);
        void __fastcall lstPlaylistClick(TObject *Sender);
        void __fastcall VideoGrabberPlayerEndOfPlaylist(TObject *Sender);
        void __fastcall chkVideoVisibleWhenStoppedClick(TObject *Sender);
        void __fastcall btnClosePlaylistClick(TObject *Sender);
        void __fastcall VideoGrabberDVDiscontinuity(TObject *Sender,
          bool &DeliverNewFrame);
        void __fastcall rdgAspectRatioClick(TObject *Sender);
        void __fastcall btnOneShotClipboardClick(TObject *Sender);
		void __fastcall btnBurstModeClipboardClick(TObject *Sender);
        void __fastcall cboAudioRenderersChange(TObject *Sender);
        void __fastcall updPixellizationClick(TObject *Sender,
          TUDBtnType Button);
        void __fastcall rdgTextOverlaySelectorClick(TObject *Sender);
        void __fastcall btnBkgndColorClick(TObject *Sender);
        void __fastcall btnTextOverlayColorClick(TObject *Sender);
        void __fastcall chkVisibleClick(TObject *Sender);
        void __fastcall edtCustomRotationAngleChange(TObject *Sender);
        void __fastcall edtFrameCaptureWidthChange(TObject *Sender);
        void __fastcall edtFrameCaptureHeightChange(TObject *Sender);
        void __fastcall tbrPanScanChange(TObject *Sender);
        void __fastcall btnTestPanScanClick(TObject *Sender);
        void __fastcall btnOpenAtFramesClick(TObject *Sender);
        void __fastcall btnOpenAtTimesClick(TObject *Sender);
        void __fastcall edtMonitorNumberChange(TObject *Sender);
        void __fastcall btnMonitorNumberInfoClick(TObject *Sender);
		void __fastcall tbsIPCamerasShow(TObject *Sender);
        void __fastcall edtIPCameraURLChange(TObject *Sender);
        void __fastcall edtIPCamConnectionTimeoutChange(TObject *Sender);
        void __fastcall edtIPCamReceiveTimeoutChange(TObject *Sender);
        void __fastcall btnIPCamStartPreviewClick(TObject *Sender);
        void __fastcall btnIPCamAuthenticationInfoClick(TObject *Sender);
        void __fastcall btnCurrentIPCameraURLClick(TObject *Sender);
        void __fastcall edtImageOverlayLeftChange(TObject *Sender);
        void __fastcall edtImageOverlayTopChange(TObject *Sender);
        void __fastcall edtImageOverlayWidthChange(TObject *Sender);
        void __fastcall edtImageOverlayHeightChange(TObject *Sender);
        void __fastcall chkImageOverlayTransparentClick(TObject *Sender);
        void __fastcall btnImageOverlayPickupColorClick(TObject *Sender);
        void __fastcall btnImageOverlayPickupHelpClick(TObject *Sender);
        void __fastcall chkImageOverlayUseTransparentColorClick(
          TObject *Sender);
        void __fastcall edtImageOverlayTransparentColorValueChange(
          TObject *Sender);
        void __fastcall chkImageOverlayAlphaBlendClick(TObject *Sender);
        void __fastcall updImageAlphaBendClick(TObject *Sender,
          TUDBtnType Button);
        void __fastcall rdgImageOverlaySelectorClick(TObject *Sender);
        void __fastcall VideoSourceFileOrUrl_UserNameChange(
          TObject *Sender);
        void __fastcall VideoSourceFileOrUrl_PasswordChange(
          TObject *Sender);
        void __fastcall edtIPCamPasswordChange(TObject *Sender);
        void __fastcall edtIPCamUserNameChange(TObject *Sender);
        void __fastcall btnDemoURLClick(TObject *Sender);
        void __fastcall chkAdjustPixelAspectRatioClick(TObject *Sender);
        void __fastcall chkImageOverlayChromaKeyClick(TObject *Sender);
        void __fastcall edtChromaKeyLeewayPercentChange(TObject *Sender);
        void __fastcall edtChromaKeyColorValueChange(TObject *Sender);
        void __fastcall chkImageOverlayEnabledClick(TObject *Sender);
        void __fastcall chkImageOverlayAlphablendCoeffChange(
          TObject *Sender);
        void __fastcall chkFreeHandEnabledClick(TObject *Sender);
        void __fastcall chkDrawGridOverFramesClick(TObject *Sender);
        void __fastcall VideoGrabberVideoFromBitmapsNextFrameNeeded(
          TObject *Sender, bool FirstSample);
        void __fastcall chkAVISaveToThisFileClick(TObject *Sender);
        void __fastcall edtRecordingFileNameChange(TObject *Sender);
        void __fastcall edtRecordingTimerIntervalChange(TObject *Sender);
        void __fastcall grbRecordingTimerClick(TObject *Sender);
        void __fastcall edtTextOverlayScrollingSpeedChange(
          TObject *Sender);
        void __fastcall chkChangePixelsClick(TObject *Sender);
        void __fastcall chkPlayerTrackbarSynchroneClick(TObject *Sender);
        void __fastcall tbrPlayerProgressChange(TObject *Sender);
        void __fastcall tbrZoomChange(TObject *Sender);
        void __fastcall tbrZoomXChange(TObject *Sender);
        void __fastcall tbrZoomYChange(TObject *Sender);
        void __fastcall VideoGrabberFrameProgress2(TObject *Sender,
          pFrameInfo FrameInfo);
        void __fastcall VideoGrabberFrameBitmap(TObject *Sender,
          pFrameInfo FrameInfo, pFrameBitmapInfo BitmapInfo);
        void __fastcall btnPIPFromAnotherTVideoGrabberClick(
          TObject *Sender);
        void __fastcall btnPlayerFrameStepClick(TObject *Sender);
        void __fastcall VideoGrabberRecordingPaused(TObject *Sender);
        void __fastcall Resetvideocapturedevicesettings1Click(
          TObject *Sender);
        void __fastcall edtPlayerSpeedRatioChange(TObject *Sender);
        void __fastcall chkAdjustOverlayAspectRatioClick(TObject *Sender);
        void __fastcall chkTextOverlayScrollingClick(TObject *Sender);
        void __fastcall chkBlackMagicDecklinkClick(TObject *Sender);
        void __fastcall chkEnableSnapshotButtonClick(TObject *Sender);
        void __fastcall BtnCodecExamplesClick(TObject *Sender);
        void __fastcall Button1Click(TObject *Sender);
        void __fastcall btnTargetDisplayInfoClick(TObject *Sender);
        void __fastcall btnImageOverlayInfoClick(TObject *Sender);
        void __fastcall chkTextOverlayHighResFontClick(TObject *Sender);
        void __fastcall edtTextOverlayTargetDisplayChange(TObject *Sender);
        void __fastcall edtImageOverlayTargetDisplayChange(
          TObject *Sender);
        void __fastcall chkOpenURLAsyncClick(TObject *Sender);
        void __fastcall chkDisplayActiveClick(TObject *Sender);
        void __fastcall edtAssignToMonitorNumberChange(TObject *Sender);
        void __fastcall chkMouseMovesWindowClick(TObject *Sender);
        void __fastcall edtTranspColorChange(TObject *Sender);
        void __fastcall tbrAlphablendChange(TObject *Sender);
        void __fastcall rdgDisplaySelectedClick(TObject *Sender);
        void __fastcall chkUseExternalAudioforRTSPClick(TObject *Sender);
        void __fastcall chkMPERecordingClick(TObject *Sender);
        void __fastcall chkMPEStreamingClick(TObject *Sender);
        void __fastcall edtMPERecordingChange(TObject *Sender);
        void __fastcall edtMPEReencodingChange(TObject *Sender);
        void __fastcall edtMPEStreamingChange(TObject *Sender);
        void __fastcall btnStartMPEReencodingClick(TObject *Sender);
        void __fastcall btnStopMPEReencodingClick(TObject *Sender);
        void __fastcall VideoGrabberMultipurposeEncoderProgress(
          TObject *Sender,
          TMultipurposeEncoderInstance MultipurposeEncoderInstance);
        void __fastcall chkModuloClick(TObject *Sender);
        void __fastcall btnBargraphOverlayClick(TObject *Sender);
        void __fastcall btnIPCameraStopClick(TObject *Sender);
        void __fastcall btnIPCameraStarttMP4RecordingClick(
          TObject *Sender);
        void __fastcall btnPIPStopClick(TObject *Sender);
        void __fastcall tbrPTZSpeedRatioChange(TObject *Sender);
        void __fastcall btnHelpPTZSpeedRatioClick(TObject *Sender);
        void __fastcall btnPTZHelpDurationClick(TObject *Sender);
        void __fastcall PTZStopClick(TObject *Sender);
        void __fastcall ptzButtonsMouseUp(TObject *Sender,
          TMouseButton Button, TShiftState Shift, int X, int Y);
        void __fastcall edtPTZDurationMsChange(TObject *Sender);
        void __fastcall btnPTZTiltUpClick(TObject *Sender);
        void __fastcall btnPTZTiltDownClick(TObject *Sender);
        void __fastcall btnPTZPanLeftClick(TObject *Sender);
        void __fastcall btnPTZPanRightClick(TObject *Sender);
        void __fastcall btnPTZZoomOutClick(TObject *Sender);
        void __fastcall btnPTZZoomInClick(TObject *Sender);
        void __fastcall tbrPTZPanChange(TObject *Sender);
        void __fastcall tbrPTZZoomChange(TObject *Sender);
        void __fastcall tbrPTZTiltChange(TObject *Sender);
        void __fastcall btnPTZSetTrackbarLimitsClick(TObject *Sender);
        void __fastcall edtPTZRelativeMoveChange(TObject *Sender);
        void __fastcall btnRelativeTiltUpClick(TObject *Sender);
        void __fastcall btnRelativeTiltDownClick(TObject *Sender);
        void __fastcall btnRelativePanLeftClick(TObject *Sender);
        void __fastcall btnRelativePanRightClick(TObject *Sender);
        void __fastcall btnRelativeZoomOutClick(TObject *Sender);
        void __fastcall btnRelativeZoomInClick(TObject *Sender);
        void __fastcall rdgHwAccelClick(TObject *Sender);
        void __fastcall rdgIRCutFilterClick(TObject *Sender);
        void __fastcall rdbAudioSourceDefaultClick(TObject *Sender);
        void __fastcall rdbExternalAudioClick(TObject *Sender);
        void __fastcall rdbAudioSourceSpeakerOutputClick(TObject *Sender);
        void __fastcall rdbAudioSourceDefaultWithSpeakerRecordingClick(
          TObject *Sender);
        void __fastcall rdgPreferredVideoSizeClick(TObject *Sender);
        void __fastcall chkretchPreferredVideoSizeClick(TObject *Sender);
        void __fastcall chk360VideoDecodingClick(TObject *Sender);
        void __fastcall edtDatasteadEncoder_CodecNameChange(
          TObject *Sender);
        void __fastcall edtDatasteadEncoder_Video_Bitrate_kbChange(
          TObject *Sender);
        void __fastcall edtDatasteadEncoder_Video_rc_MinBitRate_kbChange(
          TObject *Sender);
        void __fastcall edtDatasteadEncoder_Video_rc_MaxBitRate_kbChange(
          TObject *Sender);
        void __fastcall edtDatasteadEncoder_Video_rc_BufferSize_kbChange(
          TObject *Sender);
        void __fastcall edtDatasteadEncoder_Video_IDRIntervalChange(
          TObject *Sender);
        void __fastcall edtDatasteadEncoder_Video_MaxBframesChange(
          TObject *Sender);
        void __fastcall edtDatasteadEncoder_Video_ThreadCountChange(
          TObject *Sender);
        void __fastcall edtDatasteadEncoder_Audio_SamplesPerSecondChange(
          TObject *Sender);
        void __fastcall edtDatasteadEncoder_Audio_BitRate_kbChange(
          TObject *Sender);
        void __fastcall cmbGPUEncoderChange(TObject *Sender);
	void __fastcall mmoExtraParametersChange(TObject *Sender);
	void __fastcall btnMultipurposeUDPStreamingClick(TObject *Sender);
	void __fastcall btnPauseStreamingClick(TObject *Sender);
	void __fastcall btnResumeStreamingClick(TObject *Sender);
	void __fastcall btnNDIStreamingOKClick(TObject *Sender);
	void __fastcall btnNDIStreamingClientViewClick(TObject *Sender);
	void __fastcall edtDatasteadEncoder_AudioCodecNameChange(TObject *Sender);
	void __fastcall btnNDISessionsClick(TObject *Sender);
	void __fastcall edtNDIReceiveTimeoutChange(TObject *Sender);

private:	// User declarations
        int FStartupWidth;
        int FStartupHeight;

        int FTextOverlayIndex;
        int FImageOverlayIndex;

        TForm *FSnapForm;
        TImage *FSnapImage;
        TForm *FTransparentForm;
        TPanel *FTransparentPanel;
        int FThirdPartyFilterIndex;

        double FPTZSpeedRatio;
        double FPTZRelativeMove;
        double FUpdatingPTZTrackbars;
        double FPTZMoveDurationMs;


        TRect FFreeHandMouseDrawing[CFreeHandMouseMax];
        int FiFreeHandMouseDrawing;
        bool FFreeHandMouseDrawingEnabled;

        Int64 FKBWritten_LastReportTime;

        bool FPickupTransparentColor_MustGetRGBPixel;
        int FPickupTransparentColor_LastRGBPixelValueAtMousePosition;
        int FPickupTransparentColor_MouseXVideoPosition;
        int FPickupTransparentColor_MouseYVideoPosition;

        int FOldVideoSignalState;

        TSearchRec FSearchBmpOrJPEGFiles;
        bool FSearchBmpOrJPEGFilesOpened;
        String FSearchBmpPath;

		int FDisplaySelected;

		int FMultipurposeUDPStreamingID;

        void __fastcall RefreshDisplayOptions (void);
        void __fastcall RefreshDeviceControls (void);
        void __fastcall ShowFormAboveVideo (TForm *Form);
        void __fastcall PTZStopContinuousMove();
        void __fastcall DoPTZAbsolute();

		void __fastcall TransparentFormButtonClick(TObject *Sender);
        
public:		// User declarations
		__fastcall TfrmMainForm(TComponent* Owner);
		void __fastcall InitVMR9Trackbar (TVMR9ImageAdjustment VMR9ImageAdjustment, TTrackBar *Trackbar);
};
//---------------------------------------------------------------------------
extern PACKAGE TfrmMainForm *frmMainForm;
//---------------------------------------------------------------------------
#endif
