// AudioGetDlg.h : header file
//

#if !defined(AFX_AUDIOGETDLG_H__A6D6BD2C_634C_4457_BB9D_6B3FFFE49A21__INCLUDED_)
#define AFX_AUDIOGETDLG_H__A6D6BD2C_634C_4457_BB9D_6B3FFFE49A21__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <mmsystem.h>
#include <mmreg.h>
#include <dsound.h>
#include "VAIBO.h"
#include "VAIBODef.h"
#include "ATPDirectSound.h"

/////////////////////////////////////////////////////////////////////////////
// CAudioGetDlg dialog

class CAudioGetDlg : public CDialog
{
// Construction
public:
	CAudioGetDlg(CWnd* pParent = NULL);	// standard constructor

// Dialog Data
	//{{AFX_DATA(CAudioGetDlg)
	enum { IDD = IDD_AUDIOGET_DIALOG };
	CProgressCtrl	m_progR;
	CProgressCtrl	m_progL;
	CIPAddressCtrl	m_ipAddress;
	CButton	m_btnStart;
	CButton	m_btnRemote;
	CButton	m_btnConnect;
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CAudioGetDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	HICON m_hIcon;

	// Generated message map functions
	//{{AFX_MSG(CAudioGetDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnBtnConnect();
	afx_msg void OnBtnRemote();
	afx_msg void OnBtnStart();
	afx_msg void OnDestroy();
	afx_msg void OnTimer(UINT nIDEvent);
	//}}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 OnVAIBORemoteNotify( WPARAM wParam, LPARAM lParam );
	afx_msg LRESULT OnATPWaveUpdate( WPARAM wParam, LPARAM lParam );
	DECLARE_MESSAGE_MAP()
public:
	CVAIBO *m_pVAibo;
protected:
	int m_nAiboID;			// AIBO ID
	BOOL m_bConnected;		// Connection flag
	BOOL m_bReceiving;		// Receiving audio flag
	int m_nAudioTPMode;		// Audio format (16kHz 16bit Stereo)
	BOOL m_myRequest;		// Connection is my request
	BOOL m_bGettingAudioData; // Getting Audio Data from AIBO
	BOOL m_bPlayingSoundStop; // Stopped playing Audio by PC Speaker 

	CATPDirectSound*	m_pATPDirectSound;	// DirectSound  wrapper

	// Output audio data from PC
	void	OutputWaveData( unsigned char *buff, int size );
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_AUDIOGETDLG_H__A6D6BD2C_634C_4457_BB9D_6B3FFFE49A21__INCLUDED_)
