//--------------------------------------------------------------------------- #include #pragma hdrstop #include "FrmRtspCctvCamF.h" #include "AppGlobalF.h" #include "rtspPlayer1F.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" //TFrmRtspCctvCam *FrmRtspCctvCam; //--------------------------------------------------------------------------- __fastcall TFrmRtspCctvCam::TFrmRtspCctvCam(TComponent* Owner) : TForm(Owner) { PnlBlob->Visible = false; PnlBlob->Align = alClient; FDispBlob = false; FObj = NULL; FPalyerForm = NULL; } //--------------------------------------------------------------------------- void __fastcall TFrmRtspCctvCam::TmrShowTimer(TObject *Sender) { TmrShow->Enabled = false; if (FObj) { Caption = FObj->CCTV_CTLR_ID + ": " + FObj->ISTL_LCTN_NM; if (FDispBlob == false) { CamPlay(); } } } //--------------------------------------------------------------------------- void __fastcall TFrmRtspCctvCam::FormShow(TObject *Sender) { if (FObj) PnlBack->Caption = FObj->ISTL_LCTN_NM; else PnlBack->Caption = ""; RefreshCctv(); TmrShow->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TFrmRtspCctvCam::CamPlay() { if (!FObj) return; FPalyerForm = rtspPlayer1_create(this, PnlBack, FObj->STRM_SESN_NM, FObj->CCTV_CTLR_ID, FObj->ISTL_LCTN_NM); } //--------------------------------------------------------------------------- void __fastcall TFrmRtspCctvCam::CamStop() { if (FPalyerForm) { rtspPlayer1_stop(FPalyerForm); FPalyerForm = NULL; } if (!FObj) return; } //--------------------------------------------------------------------------- void __fastcall TFrmRtspCctvCam::FormClose(TObject *Sender, TCloseAction &Action) { try { CamStop(); FObj->FData2 = NULL; } catch(...) {} Action = caFree; } //--------------------------------------------------------------------------- void __fastcall TFrmRtspCctvCam::FormDestroy(TObject *Sender) { try { CamStop(); FObj->FData2 = NULL; } catch(...) {} } //--------------------------------------------------------------------------- void __fastcall TFrmRtspCctvCam::RefreshCctv() { FDispBlob = false; PnlBlob->Visible = false; String sQry; if (!FObj) { return; } sQry = "SELECT CCTV_SBST_DSPL_YN, CCTV_SBST_IMGN \r\n" " FROM TB_CCTV_CTLR \r\n" " WHERE CCTV_CTLR_ID = :p01 \r\n"; try { pADO->Close(); pADO->SQL->Clear(); pADO->Connection = ITSDb_GetConnection(); pADO->SQL->Text = sQry; pADO->Parameters->ParamByName("p01")->Value = FObj->CCTV_CTLR_ID; pADO->Open(); } catch(EDatabaseError &E) { PnlBlob->Caption = "´ëü¿µ»ó À̹ÌÁö Á¤º¸ ÀÐ±â ½ÇÆÐ"; ShowMessage(String(E.ClassName()) + E.Message); return; } if (pADO->RecordCount == 0) { pADO->Close(); return; } ForceDirectories(g_sTempDir); TADOBlobStream *BS; int nFileSize = 0; String sImgFile = g_sTempDir + "CCTVB_" + FObj->CCTV_CTLR_ID + ".bmp"; try { DeleteFile(sImgFile); } catch(...) {} String sDispBlob; try { sDispBlob = pADO->FieldByName("CCTV_SBST_DSPL_YN")->AsString; if (sDispBlob == "Y") { BS = (TADOBlobStream *)pADO->CreateBlobStream(pADO->FieldByName("CCTV_SBST_IMGN"), bmRead); //ImgBlob->Picture->Graphic->LoadFromStream(BS); BS->SaveToFile(sImgFile); nFileSize = BS->Size; delete BS; } pADO->Close(); } catch(Exception &e) { delete BS; PnlBlob->Caption = "´ëü¿µ»ó À̹ÌÁö ½ºÆ®¸² ·Îµù ½ÇÆÐ"; return; } if (sDispBlob == "Y") { FDispBlob = true; PnlBlob->Visible = true; PnlBack->Visible = false; if (nFileSize) { try { ImgBlob->Picture->LoadFromFile(sImgFile); return; } catch(...) { ImgBlob->Visible = false; PnlBlob->Caption = "´ëü¿µ»ó À̹ÌÁö ÆÄÀÏ ·Îµù ½ÇÆÐ"; return; } } else { ImgBlob->Visible = false; PnlBlob->Caption = "´ëü¿µ»ó À̹ÌÁö »çÀÌÁî ¿À·ù"; } } else { FDispBlob = false; PnlBlob->Visible = false; PnlBack->Visible = true; } } //---------------------------------------------------------------------------