// ATPDlg.h :  Header file
//

#if !defined(AFX_ATPDLG_H__A6FB3BC4_5504_4438_A4E4_32679F53B688__INCLUDED_)
#define AFX_ATPDLG_H__A6FB3BC4_5504_4438_A4E4_32679F53B688__INCLUDED_

#include <mmsystem.h>
#include <mmreg.h>
#include <dsound.h>
#include "resource.h"
#include "VAIBO.h"
#include "ATPDirectSound.h"

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

/////////////////////////////////////////////////////////////////////////////
// CATPDlg  dialog

class CATPDlg : public CDialog
{
// Construction
public:
	CATPDlg(CVAIBO *vaibo, CWnd* pParent = NULL);   // standard constructor

// Dialog Data
	//{{AFX_DATA(CATPDlg)
	enum { IDD = IDD_DLG_ATP };
	CComboBox	m_comboNetAu;
	CComboBox	m_comboATP;
	//}}AFX_DATA


	//{{AFX_VIRTUAL(CATPDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

//  Implementation
protected:

	// Generated message map functions
	//{{AFX_MSG(CATPDlg)
	virtual void OnOK();
	afx_msg void OnBtnATPReq();
	afx_msg void OnBtnNetAudioReq();
	afx_msg void OnBtnATPStart();
	afx_msg void OnBtnNetAudioSend();
	afx_msg void OnDestroy();
	virtual BOOL OnInitDialog();
	afx_msg void OnRadioRecv();
	afx_msg void OnRadioSend();
	afx_msg LRESULT OnMsgStopCapture( WPARAM wParam, LPARAM lParam );
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()

	CButton& buttonATPReq() { return *(CButton*) GetDlgItem( IDC_BTN_ATPREQ ); };
	CButton& buttonNetAuReq() { return *(CButton*) GetDlgItem( IDC_BTN_ATPREQ2 ); };
	CButton& buttonStart() { return *(CButton*) GetDlgItem( IDC_BTN_START ); };
	CButton& buttonSend() { return *(CButton*) GetDlgItem( IDC_BTN_SEND ); };

public:

	// Virtual AIBO
	CVAIBO *m_vaibo;

private:

	BOOL			m_isAudioInStart;	// AudioTP start flag
	BOOL			m_isNetAudioStart;	// NetAudio start flag
	BOOL			m_wavePlayingF;		// Wave data playing flag
	BOOL			m_captureF;			// Capture flag

	// Voice data format
	int				m_nAudioTPMode;		// For AudioTP
	int				m_nNetAudioMode;	// For NetAudio

	// DirectSound  wrapper
	CATPDirectSound*	m_pATPDirectSound;


public:

	// The start/end of AudioTP
	void	StartAudioTP( BOOL bStart );
	// The start/end of NetAudio
	void	StartNetAudio( BOOL bStart );

	// Output audio data from PC
	void	OutputWaveData( unsigned char *buff, int size );

	void	StopDirectSound() { m_pATPDirectSound->EndPlay(); }

};

//{{AFX_INSERT_LOCATION}}

#endif // !defined(AFX_ATPDLG_H__A6FB3BC4_5504_4438_A4E4_32679F53B688__INCLUDED_)
