// BaseClientDlg.h : Header file
//

#if !defined(AFX_BASECLIENTDLG_H__0E5C17C2_2050_43EB_8606_B7D3992EDDF9__INCLUDED_)
#define AFX_BASECLIENTDLG_H__0E5C17C2_2050_43EB_8606_B7D3992EDDF9__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "VAIBO.h"
#include "VAIBODef.h"

class CListenSocket;

/////////////////////////////////////////////////////////////////////////////
// CBaseClientDlg dialog

class CBaseClientDlg : public CDialog
{
// Construction
public:
	CBaseClientDlg(CWnd* pParent = NULL);	// standard constructor

// Dialog Data
	//{{AFX_DATA(CBaseClientDlg)
	enum { IDD = IDD_BASECLIENT_DIALOG };
	CIPAddressCtrl	m_ipAddress;
	int		m_iRadio1;
	CString	m_sPlayStatus;
	//}}AFX_DATA

	//{{AFX_VIRTUAL(CBaseClientDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	//}}AFX_VIRTUAL

//  Implementation
protected:
	HICON m_hIcon;

public:
	// Generated message map functions
	//{{AFX_MSG(CBaseClientDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnBtnAutonomy();
	afx_msg void OnBtnConnect();
	afx_msg void OnBtnPlay();
	afx_msg void OnBtnRemote();
	afx_msg void OnDestroy();
	afx_msg void OnBtnSocket();
	//}}AFX_MSG
	afx_msg LRESULT OnVAIBOConnect( WPARAM wParam, LPARAM lParam );
	afx_msg LRESULT OnVAIBOConnectUpdate( WPARAM wParam, LPARAM lParam );
	afx_msg LRESULT OnVAIBODisconnect( WPARAM wParam, LPARAM lParam );
    afx_msg LRESULT OnVAIBOSemantics( WPARAM wParam, LPARAM lParam );
	afx_msg LRESULT OnVAIBORemoteNotify( WPARAM wParam, LPARAM lParam );

	DECLARE_MESSAGE_MAP()
public:
	CVAIBO *m_pVAibo;
protected:
	int m_nAiboID; 
	BOOL m_bConnected;
	BOOL m_bControl;
    int m_nPlayID;
	BOOL m_myRequest;
	CListenSocket *m_pListen;
	UINT m_uPort;

	CButton& buttonConnect()  { return *(CButton*) GetDlgItem( IDC_BTN_CONNECT ); };
	CButton& buttonRemote()   { return *(CButton*) GetDlgItem( IDC_BTN_REMOTE ); };
	CButton& buttonAutonomy() { return *(CButton*) GetDlgItem( IDC_BTN_AUTONOMY ); };
	CButton& buttonPlay()     { return *(CButton*) GetDlgItem( IDC_BTN_PLAY ); };
	CButton& buttonSocket()   { return *(CButton*) GetDlgItem( IDC_BTN_SOCKET ); };
	CStatic& SocketStatus()   { return *(CStatic*) GetDlgItem( IDC_SOCKET_STATUS); }
	void StopListening();
	BOOL StartListening();
};

//{{AFX_INSERT_LOCATION}}

#endif // !defined(AFX_BASECLIENTDLG_H__0E5C17C2_2050_43EB_8606_B7D3992EDDF9__INCLUDED_)
