//--------------------------------------------------------------------------- #include #pragma hdrstop #include "FrmCameraF.h" #include "AppGlobalF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "AcesTechXPlayer2Lib_OCX" #pragma link "cxContainer" #pragma link "cxControls" #pragma link "cxEdit" #pragma link "cxGraphics" #pragma link "cxLabel" #pragma link "cxLookAndFeelPainters" #pragma link "cxLookAndFeels" #pragma link "dxSkinsCore" #pragma link "dxSkinBlack" #pragma link "dxSkinBlue" #pragma resource "*.dfm" TFrmCamera *FrmCamera = NULL; //--------------------------------------------------------------------------- __fastcall TFrmCamera::TFrmCamera(TComponent* Owner, TXCctv *ACctv, bool AAutoPlay) : TForm(Owner) { FPlay = false; FAutoPlay = AAutoPlay; FConHandle = 0; FInstalled = false; #if 0 AcesTechXPlayer21 = NULL; #else //AcesTechXPlayer21->DoubleBuffered = true; #endif InitCamera(ACctv, FAutoPlay); } //--------------------------------------------------------------------------- void __fastcall TFrmCamera::MnuConnectClick(TObject *Sender) { FAutoPlay = true; Connect(); } //--------------------------------------------------------------------------- void __fastcall TFrmCamera::MnuDisconnectClick(TObject *Sender) { FAutoPlay = false; Disconnect(); } //--------------------------------------------------------------------------- void __fastcall TFrmCamera::MnuReleaseClick(TObject *Sender) { CameraRelease(); } //--------------------------------------------------------------------------- void __fastcall TFrmCamera::Connect() { Disconnect(); if (FId.IsEmpty()) return; if (FViewAddress.IsEmpty()) return; PnlCamera->Caption = "Connect..."; if (AcesTechXPlayer21) AcesTechXPlayer21->Visible = true; try { if (AcesTechXPlayer21) { AcesTechXPlayer21->URL = FViewAddress; FConHandle = AcesTechXPlayer21->ConnectAsync(); } } catch(...) { } FPlay = true; } //--------------------------------------------------------------------------- void __fastcall TFrmCamera::Disconnect() { if (!FPlay) return; try { //if (FConHandle) { if (AcesTechXPlayer21) AcesTechXPlayer21->Close(); } FConHandle = 0; } catch(...) { } PnlCamera->Caption = "Disconnected"; if (AcesTechXPlayer21) AcesTechXPlayer21->Visible = false; FConHandle = 0; FPlay = false; } //--------------------------------------------------------------------------- void __fastcall TFrmCamera::CameraRelease() { Disconnect(); PnlCamera->Caption = ""; if (AcesTechXPlayer21) AcesTechXPlayer21->Visible = false; } //--------------------------------------------------------------------------- void __fastcall TFrmCamera::InitCamera(TXCctv *ACctv, bool AAutoPlay/*=true*/) { FAutoPlay = AAutoPlay; PopupMenu = NULL; if (!ACctv) { FId = ""; FGroup = ""; FName = ""; FStreamingType = ""; FViewAddress = ""; FFullAddress = ""; PnlCamera->Caption = "-Empty-"; DisplayName(" "); FInstalled = false; AcesTechXPlayer21->Visible = false; try { String sImageFile = ExtractFilePath(Application->ExeName) + "\\image\\vmscam.bmp"; ImgNoData->Picture->LoadFromFile(sImageFile); ImgNoData->Align = alClient; ImgNoData->Visible = true; LblName->Visible = false; PnlName->Visible = false; } catch(Exception &e) { ImgNoData->Visible = false; } } else { #if 0 AcesTechXPlayer21 = new TAcesTechXPlayer2(this); AcesTechXPlayer21->Parent = PnlCamera; AcesTechXPlayer21->Align = alClient; //AcesTechXPlayer21->DoubleBuffered = true; #endif //AcesTechXPlayer21->Visible = true; FId = ACctv->Id; FGroup = ACctv->Group; FName = "[" + ACctv->CAMID + "] " + ACctv->Name; FStreamingType = ACctv->StreamingType; FViewAddress = ACctv->ViewAddress; FFullAddress = ACctv->FullAddress; PnlCamera->Caption = "Disconnected"; DisplayName(FName); FInstalled = true; if (FViewAddress.IsEmpty()) { AcesTechXPlayer21->Visible = false; PnlCamera->Caption = "Streamming Address Error"; } else { PopupMenu = PopupMenu1; } } } //--------------------------------------------------------------------------- void __fastcall TFrmCamera::DisplayName(String AName) { PnlName->Caption = " " + FName; PnlName->Visible = true; PnlName->Refresh(); LblName->Visible = false; #if 0 LblName->Caption = FName; LblName->Transparent = false; LblName->Transparent = true; LblName->Visible = true; LblName->Refresh(); LblName->BringToFront(); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmCamera::TmrPlayTimer(TObject *Sender) { TmrStop->Enabled = false; TmrPlay->Enabled = false; Connect(); } //--------------------------------------------------------------------------- void __fastcall TFrmCamera::TmrStopTimer(TObject *Sender) { TmrPlay->Enabled = false; TmrStop->Enabled = false; Disconnect(); } //---------------------------------------------------------------------------