//---------------------------------------------------------------------------

#ifndef FrmCrsStreamPlayer2FH
#define FrmCrsStreamPlayer2FH
//---------------------------------------------------------------------------
#include "FFBaseComponent.hpp"
#include "FFBasePlay.hpp"
#include "FFPlay.hpp"
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <OleCtrls.hpp>
#include <ADODB.hpp>
#include <DB.hpp>
#include <Menus.hpp>
#include "cxContainer.hpp"
#include "cxControls.hpp"
#include "cxEdit.hpp"
#include "cxGraphics.hpp"
#include "cxLabel.hpp"
#include "cxLookAndFeelPainters.hpp"
#include "cxLookAndFeels.hpp"
#include "dxSkinBlack.hpp"
#include "dxSkinBlue.hpp"
#include "dxSkinsCore.hpp"
//---------------------------------------------------------------------------
#include "CDSObjectF.h"
#include "CDSCrossF.h"
#include "dxSkinMcSkin.hpp"
#include "AcesTechXPlayer2Lib_OCX.h"
//---------------------------------------------------------------------------

#define FFPLAY  0
#define ACES    1
#define MAX_CRSCAM 4
typedef struct _tagCrsCamInfo {
    bool        Installed;
    TPanel     *PnlStream;
    TPanel     *PnlTitle;
    String      ID;
    String      NAME;
    String      STRM_ADDR;
    String      FULL_STRM_ADDR;
    String      FCLT_TYPE;
    String      STRM_TYPE;
    TCrossCam  *Cmra;
    long        FConHandle;
    TTimer     *Timer;
#if FFPLAY
    TFFPlayer *FFPlayer;
#endif
#if ACES
    TAcesTechXPlayer2 *AcesTechXPlayer;
#endif
} CRSCAM_PLAYER_INFO;

typedef struct tagCrsPlayerinfo
{
    CRSCAM_PLAYER_INFO info[MAX_CRSCAM];
} CRS_PLAYER_INFO;

class TFrmCrsStreamPlayer2 : public TForm
{
__published:	// IDE-managed Components
    TADOQuery *pADO;
    TPopupMenu *PopupMenu1;
    TMenuItem *MnuConnect;
    TMenuItem *MnuDisconnect;
    TFFPlayer *FFPlayer1;
    TPanel *Panel1;
    TPanel *PnlBlob;
    TImage *ImgBlob;
    TcxLabel *lblErr1;
    TcxLabel *lblErr2;
    TcxLabel *lblErr3;
    TcxLabel *lblErr4;
    TcxLabel *lblErr5;
    TcxLabel *lblErr6;
    TGridPanel *GridPanel1;
    TPanel *PnlCam1;
    TPanel *PnlCam2;
    TcxLabel *cxLabel1;
    TcxLabel *cxLabel2;
    TPanel *PnlCam3;
    TPanel *PnlCam4;
    TPanel *PnlTitle1;
    TPanel *PnlTitle2;
    TPanel *PnlTitle3;
    TPanel *PnlTitle4;
    TFFPlayer *FFPlayer2;
    TFFPlayer *FFPlayer3;
    TFFPlayer *FFPlayer4;
    TAcesTechXPlayer2 *AcesTechXPlayer21;
    TAcesTechXPlayer2 *AcesTechXPlayer22;
    TAcesTechXPlayer2 *AcesTechXPlayer23;
    TAcesTechXPlayer2 *AcesTechXPlayer24;
    TTimer *Timer1;
    TTimer *Timer2;
    TTimer *Timer3;
    TTimer *Timer4;
    void __fastcall TmrShowTimer(TObject *Sender);
    void __fastcall FormShow(TObject *Sender);
    void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
    void __fastcall FormDestroy(TObject *Sender);
    void __fastcall MnuConnectClick(TObject *Sender);
    void __fastcall MnuDisconnectClick(TObject *Sender);
    void __fastcall FFPlayer1State(TObject *Sender, TPlayState APlayState);
private:	// User declarations

    bool    FPlay;
    bool    FDispBlob;
    HWND    FWnd;
public:		// User declarations

    bool    FFullScreen;
    TRect   FLastBounds;
    TWinControl *FParent;

    TCross *FCross;
    CRS_PLAYER_INFO FObj;

    bool    FAutoPlay;


    void __fastcall InitCamera(void *ACctv, bool AAutoPlay=true);

    void __fastcall Connect(int AIdx);
    void __fastcall Disconnect(int AIdx);
    void __fastcall ReleaseCamera();

    __fastcall TFrmCrsStreamPlayer2(TComponent* Owner);
};
//---------------------------------------------------------------------------
//extern PACKAGE TFrmCrsStreamPlayer *FrmCrsStreamPlayer;
//---------------------------------------------------------------------------
#endif

