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

#ifndef FrmStreamPlayerFH
#define FrmStreamPlayerFH
//---------------------------------------------------------------------------
#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"
//---------------------------------------------------------------------------
typedef struct tagPlayerinfo
{
    bool        Installed;
    bool        IsCctv;
    String      ID;
    String      NAME;
    String      RTSP_ADDR;
    TCDSObject *Data;
} PLAYER_INFO;

class TFrmStreamPlayer : public TForm
{
__published:	// IDE-managed Components
    TPanel *PnlStream;
    TTimer *TmrShow;
    TPanel *PnlBlob;
    TADOQuery *pADO;
    TImage *ImgBlob;
    TPopupMenu *PopupMenu1;
    TMenuItem *MnuConnect;
    TMenuItem *MnuDisconnect;
    TFFPlayer *FFPlayer1;
    TcxLabel *lblErr1;
    TcxLabel *lblErr2;
    TcxLabel *lblErr3;
    TcxLabel *lblErr4;
    TcxLabel *lblErr5;
    TcxLabel *lblErr6;
    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 PnlStreamDblClick(TObject *Sender);
    void __fastcall FFPlayer1State(TObject *Sender, TPlayState APlayState);
private:	// User declarations

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

    bool    FFullScreen;
    TRect   FLastBounds;
    TWinControl *FParent;

    PLAYER_INFO FObj;

    bool    FAutoPlay;
    long    FConHandle;

    //bool    FInstalled;
    String  FId;
    String  FGroup;
    String  FName;
    String  FStreamingType;
    String  FViewAddress;
    String  FFullAddress;

    void __fastcall MaxOrNormalForm(TForm *AForm, bool AMax);

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

    void __fastcall Connect();
    void __fastcall Disconnect();
    void __fastcall CameraRelease();

    void __fastcall RefreshPlayer();

    __fastcall TFrmStreamPlayer(TComponent* Owner);
};
//---------------------------------------------------------------------------
//extern PACKAGE TFrmStreamPlayer *FrmStreamPlayer;
//---------------------------------------------------------------------------
#endif

