FRAME_CameraF.cpp 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #include "AppGlobalF.h"
  4. #include "ITSLangTransF.h"
  5. #pragma hdrstop
  6. #include "FRAME_CameraF.h"
  7. #include "FrmCameraScreenF.h"
  8. #include "FrmCameraInfoF.h"
  9. //---------------------------------------------------------------------------
  10. #pragma package(smart_init)
  11. #pragma link "AcesTechXPlayer2Lib_OCX"
  12. #pragma link "dxGDIPlusClasses"
  13. #pragma resource "*.dfm"
  14. TFRAMECamera *FRAMECamera;
  15. //---------------------------------------------------------------------------
  16. __fastcall TFRAMECamera::TFRAMECamera(TComponent* Owner)
  17. : TFrame(Owner)
  18. {
  19. FPlay = false;
  20. FAutoPlay = true;
  21. FConHandle = 0;
  22. FFullScreen = false;
  23. FParent = this->Parent;
  24. PnlStream->Tag = (int)this;
  25. FCrsCam = NULL;
  26. PnlStream->Font->Color = clWhite;
  27. //AcesTechXPlayer2->SetFullScreenModeOption(0);
  28. AcesTechXPlayer2->Align = alClient;
  29. AcesTechXPlayer2->Visible = true;
  30. }
  31. //---------------------------------------------------------------------------
  32. void __fastcall TFRAMECamera::LoadEmptyImage()
  33. {
  34. try {
  35. String sImageFile = g_sAppDir + "Image\\crs_empty.bmp";
  36. if (FileExists(sImageFile)) {
  37. ImgNoData->Picture->LoadFromFile(sImageFile);
  38. ImgNoData->Align = alClient;
  39. //ImgNoData->Visible = true;
  40. }
  41. else {
  42. sImageFile = g_AppCfg.sEmptyImg;
  43. if (sImageFile != "") {
  44. ImgNoData->Picture->LoadFromFile(sImageFile);
  45. ImgNoData->Align = alClient;
  46. //ImgNoData->Visible = true;
  47. }
  48. }
  49. } catch(Exception &e) {
  50. //ImgNoData->Visible = true;
  51. }
  52. }
  53. //---------------------------------------------------------------------------
  54. bool __fastcall TFRAMECamera::Init(TScreenCtlr *ACrsCam, String AMngrNmbr, String ACtlrId, String ACtlrNm, String AStreamUrl)
  55. {
  56. if (FCrsCam != NULL) {
  57. Disconnect();
  58. }
  59. FPlay = false;
  60. FAutoPlay = true;
  61. FConHandle = 0;
  62. FFullScreen = false;
  63. FCrsCam = ACrsCam;
  64. FMngrNmbr = AMngrNmbr;
  65. FCtlrId = ACtlrId;
  66. FCtlrNm = ACtlrNm;
  67. FStreamUrl = AStreamUrl;
  68. FPlay = false;
  69. FConHandle = 0;
  70. PnlTitle->Caption = FCtlrNm;
  71. PnlStream->Caption = "";
  72. PopupMenu = NULL;
  73. AcesTechXPlayer2->Visible = false;
  74. if (FCrsCam != NULL) {
  75. if (FStreamUrl == "") {
  76. PnlTitle->Caption = FCtlrNm + ", Stream URL Empty!";
  77. PnlStream->Caption = "Invalid Stream Address!!!";//영상주소가 설정되지 않았습니다.";
  78. PnlTitle->Visible = true;
  79. Timer1->Enabled = false;
  80. ImgNoData->Visible = false;
  81. }
  82. else {
  83. AcesTechXPlayer2->Visible = true;
  84. PnlStream->Caption = "";
  85. PnlTitle->Visible = true;
  86. Timer1->Enabled = true;
  87. ImgNoData->Visible = false;
  88. PopupMenu = PopupMenu1;
  89. }
  90. }
  91. else {
  92. PnlTitle->Visible = false;
  93. Timer1->Enabled = false;
  94. ImgNoData->Visible = true;
  95. }
  96. return true;
  97. }
  98. //---------------------------------------------------------------------------
  99. void __fastcall TFRAMECamera::Timer1Timer(TObject *Sender)
  100. {
  101. Timer1->Enabled = false;
  102. Connect();
  103. }
  104. //---------------------------------------------------------------------------
  105. void __fastcall TFRAMECamera::Connect()
  106. {
  107. Disconnect();
  108. try
  109. {
  110. if (FStreamUrl != "") {
  111. PnlStream->Caption = FStreamUrl + ", Connecting...";
  112. PnlTitle->Caption = FCtlrNm;
  113. AcesTechXPlayer2->URL = FStreamUrl;
  114. FConHandle = AcesTechXPlayer2->ConnectAsync();
  115. if (FConHandle > 0)
  116. {
  117. }
  118. FPlay = true;
  119. }
  120. Application->ProcessMessages();
  121. }
  122. catch(Exception &e) {
  123. }
  124. }
  125. //---------------------------------------------------------------------------
  126. void __fastcall TFRAMECamera::Disconnect()
  127. {
  128. Timer1->Enabled = false;
  129. if (!FPlay) return;
  130. FPlay = false;
  131. try {
  132. if (FStreamUrl != "") {
  133. if (FConHandle > 0)
  134. {
  135. AcesTechXPlayer2->Close();
  136. }
  137. PnlStream->Caption = "Disconnected";
  138. }
  139. FConHandle = 0;
  140. Application->ProcessMessages();
  141. }
  142. catch(Exception &e) {
  143. }
  144. }
  145. //---------------------------------------------------------------------------
  146. void __fastcall TFRAMECamera::MnuFullScreenClick(TObject *Sender)
  147. {
  148. TMenuItem *pMenuItem = (TMenuItem*)Sender;
  149. if (FCrsCam != NULL) {
  150. if (pMenuItem->Tag == 0) {
  151. Disconnect();
  152. Connect();
  153. }
  154. else if (pMenuItem->Tag == 1) {
  155. Disconnect();
  156. }
  157. else if (pMenuItem->Tag == 2) {
  158. if (FCrsCam != NULL) {
  159. FrmCameraScreen->TmrFullScreen->Enabled = false;
  160. FrmCameraScreen->FFullCrsCam = FCrsCam;
  161. FrmCameraScreen->TmrFullScreen->Enabled = true;
  162. }
  163. }
  164. else if (pMenuItem->Tag == 3) {
  165. FrmCameraInfo = new TFrmCameraInfo(this);
  166. FrmCameraInfo->Edit1->Text = FCrsCam->CAM_ID;
  167. FrmCameraInfo->Edit2->Text = FCrsCam->CAM_NAME;
  168. FrmCameraInfo->Edit3->Text = FCrsCam->STRM_ADDR;
  169. FrmCameraInfo->Edit4->Text = FCrsCam->FULL_STRM_ADDR;
  170. FrmCameraInfo->ShowModal();
  171. FrmCameraInfo = NULL;
  172. }
  173. }
  174. }
  175. //---------------------------------------------------------------------------