123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264 |
- //---------------------------------------------------------------------------
- #include <vcl.h>
- #pragma hdrstop
- #include "FRAME_SamsungCamF.h"
- //---------------------------------------------------------------------------
- #pragma package(smart_init)
- #pragma link "cxButtons"
- #pragma link "cxCheckBox"
- #pragma link "cxContainer"
- #pragma link "cxControls"
- #pragma link "cxEdit"
- #pragma link "cxGraphics"
- #pragma link "cxLookAndFeelPainters"
- #pragma link "cxLookAndFeels"
- #pragma link "dxSkinBlack"
- #pragma link "dxSkinBlue"
- #pragma link "dxSkinCaramel"
- #pragma link "dxSkinCoffee"
- #pragma link "dxSkinDarkRoom"
- #pragma link "dxSkinDarkSide"
- #pragma link "dxSkinFoggy"
- #pragma link "dxSkinGlassOceans"
- #pragma link "dxSkiniMaginary"
- #pragma link "dxSkinLilian"
- #pragma link "dxSkinLiquidSky"
- #pragma link "dxSkinLondonLiquidSky"
- #pragma link "dxSkinMcSkin"
- #pragma link "dxSkinMoneyTwins"
- #pragma link "dxSkinOffice2007Black"
- #pragma link "dxSkinOffice2007Blue"
- #pragma link "dxSkinOffice2007Green"
- #pragma link "dxSkinOffice2007Pink"
- #pragma link "dxSkinOffice2007Silver"
- #pragma link "dxSkinOffice2010Black"
- #pragma link "dxSkinOffice2010Blue"
- #pragma link "dxSkinOffice2010Silver"
- #pragma link "dxSkinsCore"
- #pragma link "dxSkinSeven"
- #pragma link "dxSkinSharp"
- #pragma link "dxSkinSilver"
- #pragma link "dxSkinStardust"
- #pragma link "ImageBtn"
- #pragma link "XNSSDKDEVICELib_OCX"
- #pragma link "XNSSDKWINDOWLib_OCX"
- #pragma resource "*.dfm"
- TFRAMESansungCam *FRAMESamsungCam;
- //---------------------------------------------------------------------------
- __fastcall TFRAMESansungCam::TFRAMESansungCam(TComponent* Owner)
- : TFrame(Owner)
- {
- PnlVmsCam->ParentColor = false;
- PnlVmsCam->Color = clBlack;
- XnsSdkWindow1->Parent = PnlVmsCam;
- XnsSdkWindow1->Align = alClient;
- //SetupWebCamera();
- }
- //---------------------------------------------------------------------------
- bool __fastcall TFRAMESansungCam::SetupWebCamera()
- {
- //// Samsung ip camera activex initialize start
- String sLog;
- long nRet = XnsSdkDevice1->Initialize();
- if (nRet != ERR_SUCCESS && nRet != ERR_ALREADY_INITIALIZE)
- {
- sLog.printf(L"Samsung XnsSdkDevice Initialize() fail: return=[%d](%s)\n", nRet, XnsSdkDevice1->GetErrorString(nRet));
- ShowMessage(sLog);
- return false;
- }
- nRet = XnsSdkWindow1->Initialize(NULL, NULL);
- if (nRet != ERR_SUCCESS && nRet != ERR_ALREADY_INITIALIZE)
- {
- sLog.printf(L"Samsung XnsSdkWindow Initialize() fail: return=[%d](%s)\n", nRet, XnsSdkDevice1->GetErrorString(nRet));
- ShowMessage(sLog);
- return false;
- }
- m_lDeviceId = XnsSdkDevice1->CreateDeviceEx();
- m_hDevice = XnsSdkDevice1->GetDeviceHandle(m_lDeviceId);
- if (m_hDevice == 0)
- {
- sLog = "CreateDevice() fail";
- ShowMessage(sLog);
- return false;
- }
- #if 0
- WideString sFindModel = "samsung";
- long nFind = XnsSdkDevice1->FindModel(sFindModel.c_bstr());
- long nCount = XnsSdkDevice1->GetFindSize(nFind);
- String sModel;
- CboModel->Properties->Items->Clear();
- for (int ii = 0 ; ii < nCount ; ii++)
- {
- sModel = XnsSdkDevice1->GetFindString(nFind, ii);
- CboModel->Properties->Items->Add(sModel);
- }
- XnsSdkDevice1->CloseFind(nFind);
- CboModel->ItemIndex = 0;
- #endif
- return true;
- }
- //---------------------------------------------------------------------------
- void __fastcall TFRAMESansungCam::BtnCamCtlMouseDown(TObject *Sender, TMouseButton Button,
- TShiftState Shift, int X, int Y)
- {
- //PTZ Control
- // XPTZ_UP 1 Tilt up
- // XPTZ_DOWN 2 Tilt down
- // XPTZ_LEFT 3 Pan left
- // XPTZ_RIGHT 4 Pan right
- // XPTZ_UPLEFT 5 Tilt up and pan left
- // XPTZ_UPRIGHT 6 Tilt up and pan right
- // XPTZ_DOWNLEFT 7 Tilt down and pan left
- // XPTZ_DOWNRIGHT 8 Tilt down and pan right
- // XPTZ_ZOOMIN 9 Zoom in
- // XPTZ_ZOOMOUT 10 Zoom out
- // XPTZ_STOP 11 Stop the PTZ moving
- // XPTZ_FOCUS_NEAR 12 Focus near
- // XPTZ_FOCUS_FAR 13 Focus far
- // XPTZ_FOCUS_STOP 14 Stop focus moving
- // XPTZ_IRIS_OPEN 15 Open iris
- // XPTZ_IRIS_CLOSE 16 Close iris
- try
- {
- TImageBtn *pBtn = (TImageBtn*)Sender;
- // PTZ_FOCUS_NEAR 12 Focus near
- // PTZ_FOCUS_FAR 13 Focus far
- // PTZ_FOCUS_STOP 14 Stop focus moving
- if (pBtn->Tag == 0)
- {
- }
- else
- {
- moveCamera((int)pBtn->Tag);
- }
- }
- catch(...) {}
- }
- //---------------------------------------------------------------------------
- void __fastcall TFRAMESansungCam::BtnCamCtlMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift,
- int X, int Y)
- {
- //PTZ Control Stop
- try
- {
- TImageBtn *pBtn = (TImageBtn*)Sender;
- // PTZ_FOCUS_NEAR 12 Focus near
- // PTZ_FOCUS_FAR 13 Focus far
- // PTZ_FOCUS_STOP 14 Stop focus moving
- if (pBtn->Tag == PTZ_FOCUS_NEAR || pBtn->Tag == PTZ_FOCUS_FAR)
- {
- moveCamera(PTZ_FOCUS_STOP);
- }
- else if (pBtn->Tag == 0)
- {
- }
- else
- {
- moveCamera(PTZ_STOP);
- }
- }
- catch(...) {}
- }
- //---------------------------------------------------------------------------
- void __fastcall TFRAMESansungCam::moveCamera(int ACommand)
- {
- long ret;
- if (m_hDevice == 0 || m_nControlId == 0) return;
- int nPtzSpeed = PTZSpeed->Position;
- if (ACommand == XPTZ_STOP ||
- ACommand == PTZ_FOCUS_STOP)
- {
- nPtzSpeed = 0;
- }
- //WLOGD(_T("MoveCamera, command=[%d], speed=%d\n"), nCommand, m_nPtzSpeed);
- // if( nCommand != XPTZ_STOP)
- // m_ctrlXnsDevice.ControlPtz(m_hDevice, m_nControlId, XPTZ_STOP, 30);
- // Returns the capabilities of the control module.
- long bIsCap = XnsSdkDevice1->GetControlCapability(m_hDevice, m_nControlId, XCTL_CAP_PTZ_SPEED);
- // [ XNS ACTIVEX HELP ]
- // -----------------------------------------------------------------------
- // Moves the camera to the predefined PTZ position. This function is
- // valid as long as the application is receiving media stream from the
- // camera.
- // -----------------------------------------------------------------------
- // Command Value Description
- // -----------------------------------------------------------------------
- // XPTZ_UP 1 Tilt up
- // XPTZ_DOWN 2 Tilt down
- // XPTZ_LEFT 3 Pan left
- // XPTZ_RIGHT 4 Pan right
- // XPTZ_UPLEFT 5 Tilt up and pan left
- // XPTZ_UPRIGHT 6 Tilt up and pan right
- // XPTZ_DOWNLEFT 7 Tilt down and pan left
- // XPTZ_DOWNRIGHT 8 Tilt down and pan right
- // XPTZ_ZOOMIN 9 Zoom in
- // XPTZ_ZOOMOUT 10 Zoom out
- // XPTZ_STOP 11 Stop the PTZ moving
- // XPTZ_FOCUS_NEAR 12 Focus near
- // XPTZ_FOCUS_FAR 13 Focus far
- // XPTZ_FOCUS_STOP 14 Stop focus moving
- // XPTZ_IRIS_OPEN 15 Open iris
- // XPTZ_IRIS_CLOSE 16 Close iris
- // -----------------------------------------------------------------------
- if (bIsCap)
- {
- ret = XnsSdkDevice1->ControlPtz(
- m_hDevice, // [in] Device handle. This value is returned from CreateDevice().
- m_nControlId, // [in] Control ID.
- ACommand, // [in] PTZ command
- nPtzSpeed // [in] If nPtzCommand is a speed-related command,
- // this value indicates the PTZ operation speed.
- // (1~100) This value is valid only if the camera
- // supports the XCTL_CAP_PTZ_SPEED capability.
- );
- }
- else
- {
- ret = XnsSdkDevice1->ControlPtz(m_hDevice, m_nControlId, ACommand, (long)nPtzSpeed);
- }
- if (ret != ERR_SUCCESS)
- {
- String sErr;
- sErr.printf(L"ControlPtz() fail:: error=[%d](%s)", ret, XnsSdkDevice1->GetErrorString(ret));
- ShowMessage(sErr);
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TFRAMESansungCam::XnsSdkWindow1LButtonDblClk(TObject *Sender, long nDeviceID,
- long nControlID, long nRecDay)
- {
- ShowMessage("XnsSdkWindow1LButtonDblClk");
- }
- //---------------------------------------------------------------------------
- void __fastcall TFRAMESansungCam::PnlVmsCamDblClick(TObject *Sender)
- {
- ShowMessage("PnlVmsCamDblClick");
- }
- //---------------------------------------------------------------------------
- void __fastcall TFRAMESansungCam::PnlCamConrtolDblClick(TObject *Sender)
- {
- ShowMessage("PnlCamConrtolDblClick");
- }
- //---------------------------------------------------------------------------
|