FrameSamsungF.cpp 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4. #include "FrameSamsungF.h"
  5. //---------------------------------------------------------------------------
  6. #pragma package(smart_init)
  7. #pragma link "cxButtons"
  8. #pragma link "cxGraphics"
  9. #pragma link "cxLookAndFeelPainters"
  10. #pragma link "cxLookAndFeels"
  11. #pragma link "dxSkinBlack"
  12. #pragma link "dxSkinMcSkin"
  13. #pragma link "dxSkinsCore"
  14. #pragma link "ImageBtn"
  15. #pragma link "cxContainer"
  16. #pragma link "cxControls"
  17. #pragma link "cxEdit"
  18. #pragma link "cxLabel"
  19. #pragma link "AcesTechXPlayer2Lib_OCX"
  20. #pragma link "IdBaseComponent"
  21. #pragma link "IdComponent"
  22. #pragma link "IdHTTP"
  23. #pragma link "IdTCPClient"
  24. #pragma link "IdTCPConnection"
  25. #pragma link "cxTextEdit"
  26. #pragma resource "*.dfm"
  27. TFrameSamsung *FrameSamsung;
  28. //---------------------------------------------------------------------------
  29. __fastcall TFrameSamsung::TFrameSamsung(TComponent* Owner)
  30. : TFrame(Owner)
  31. {
  32. FStrmPlay = false;
  33. reMsg->Lines->Clear();
  34. FStrmHandle = 0;
  35. }
  36. //---------------------------------------------------------------------------
  37. void __fastcall TFrameSamsung::BtnWebCamControlMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)
  38. {
  39. TImageBtn *pBtn = (TImageBtn*)Sender;
  40. String sPTZSpeed = String(PTZSpeed->Position);
  41. FStrmHttp = EdHttpUrl->Text.Trim();
  42. if (FStrmHttp == "")
  43. {
  44. return;
  45. }
  46. try
  47. {
  48. String sCmdHtml = "";
  49. TImageBtn *pBtn = (TImageBtn*)Sender;
  50. switch(pBtn->Tag)
  51. {
  52. case 1: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x107&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Tilt Up
  53. case 2: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x101&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Tilt Down
  54. case 3: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x103&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Pan left
  55. case 4: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x105&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Pan right
  56. case 9: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x10B&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Zoom In
  57. case 10: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x10C&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Zoom Out
  58. case 12: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x10E&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Focus In
  59. case 13: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x10D&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Focus Out
  60. default: return;
  61. }
  62. if (sCmdHtml == "") return;
  63. IdHTTP1->HTTPOptions = IdHTTP1->HTTPOptions >> hoInProcessAuth;
  64. IdHTTP1->HTTPOptions = IdHTTP1->HTTPOptions << hoInProcessAuth;
  65. String sResult = IdHTTP1->Get(sCmdHtml);
  66. reMsg->Lines->Add(sResult);
  67. IdHTTP1->Disconnect();
  68. }
  69. catch(...) {}
  70. }
  71. //---------------------------------------------------------------------------
  72. void __fastcall TFrameSamsung::BtnWebCamControlMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)
  73. {
  74. TImageBtn *pBtn = (TImageBtn*)Sender;
  75. String sPTZSpeed = String(PTZSpeed->Position);
  76. FStrmHttp = EdHttpUrl->Text.Trim();
  77. if (FStrmHttp == "")
  78. {
  79. return;
  80. }
  81. try
  82. {
  83. String sCmdHtml = "";
  84. switch(pBtn->Tag)
  85. {
  86. case 1: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x207&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Tilt Up
  87. case 2: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x201&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Tilt Down
  88. case 3: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x203&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Pan left
  89. case 4: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x205&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Pan right
  90. case 9: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x20B&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Zoom In
  91. case 10: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x20C&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Zoom Out
  92. case 12: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x20E&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Focus In
  93. case 13: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x20D&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Focus Out
  94. default: return;
  95. }
  96. if (sCmdHtml == "") return;
  97. IdHTTP1->HTTPOptions = IdHTTP1->HTTPOptions >> hoInProcessAuth;
  98. IdHTTP1->HTTPOptions = IdHTTP1->HTTPOptions << hoInProcessAuth;
  99. String sResult = IdHTTP1->Get(sCmdHtml);
  100. reMsg->Lines->Add(sResult);
  101. IdHTTP1->Disconnect();
  102. }
  103. catch(...) {}
  104. }
  105. //---------------------------------------------------------------------------
  106. void __fastcall TFrameSamsung::OpenStream()
  107. {
  108. FStrmUrl = EdStreamUrl->Text.Trim();
  109. FStrmUser = EdStreamId->Text.Trim();
  110. FStrmPswd = EdStreamPswd->Text.Trim();
  111. AcesTechXPlayer21->URL = FStrmUrl;
  112. FStrmHandle = AcesTechXPlayer21->ConnectAsync();
  113. if (FStrmHandle > 0)
  114. {
  115. }
  116. }
  117. //---------------------------------------------------------------------------
  118. void __fastcall TFrameSamsung::CloseStream()
  119. {
  120. if (FStrmHandle > 0)
  121. {
  122. AcesTechXPlayer21->Close();
  123. }
  124. }
  125. //---------------------------------------------------------------------------
  126. void __fastcall TFrameSamsung::BtnCameraConDisconnClick(TObject *Sender)
  127. {
  128. TcxButton *btn = (TcxButton*)Sender;
  129. if (btn->Tag == 1) {
  130. // 연결
  131. btn->Tag = 0;
  132. btn->Caption = "영상 연결 해제";
  133. OpenStream();
  134. }
  135. else {
  136. // 연결 종료
  137. btn->Tag = 1;
  138. btn->Caption = "영상 연결";
  139. CloseStream();
  140. }
  141. }
  142. //---------------------------------------------------------------------------
  143. void __fastcall TFrameSamsung::IdHTTP1Authorization(TObject *Sender, TIdAuthentication *Authentication, bool &Handled)
  144. {
  145. #if 1
  146. IdHTTP1->Request->Username = FStrmUser;
  147. IdHTTP1->Request->Password = FStrmPswd;
  148. #endif
  149. Authentication->Username = FStrmUser;
  150. Authentication->Password = FStrmPswd;
  151. TIdDigestAuthentication *pAuth1 = (TIdDigestAuthentication*)IdHTTP1->Request->Authentication;
  152. TIdDigestAuthentication *pAuth2 = (TIdDigestAuthentication*)Authentication;
  153. pAuth1->Uri = IdHTTP1->Request->URL;
  154. pAuth2->Method = "GET";
  155. Handled = true;
  156. }
  157. //---------------------------------------------------------------------------
  158. void __fastcall TFrameSamsung::reMsgDblClick(TObject *Sender)
  159. {
  160. reMsg->Lines->Clear();
  161. }
  162. //---------------------------------------------------------------------------