2025-11-28 00:35:46 +09:00

139 lines
4.3 KiB
C++

// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Copyright (c) Microsoft Corporation. All rights reserved.
#if !defined(AFX_DLGSRC_H__D1BB3766_96B0_11D2_9012_00C04FC2D3B8__INCLUDED_)
#define AFX_DLGSRC_H__D1BB3766_96B0_11D2_9012_00C04FC2D3B8__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// DlgSrc.h : header file
//
/////////////////////////////////////////////////////////////////////////////
// CDlgSrc dialog
/*
*
* Class : CDlgSrc
* Purpose : represents one audio channel along with its UI
*
*/
class CDlgSrc : public CDialog
{
//
// Construction
//
public:
CDlgSrc ( CWnd * );
~CDlgSrc ( void );
void Create ( LPCSTR, SIZE, DWORD );
//
// Attributes
//
public:
CWnd* m_pwndParent; // link to parent
LPWAVEHDR m_lpwhdr; // ptr to a wave header
PVOID m_pvData; // ptr to data buffer
ULONG m_cbData; // size of the data buffer
ULONG m_cSamples; // estimated number of samples
DWORD m_dwChannelMask; // speakers used
WAVEFORMATEX m_wfx; // waveformatex structure
UINT m_nChannel; // channel's ID
BOOL m_fDragging; // dragging flag
BOOL m_fPlayable; // play flag
CPoint m_ptPosInCaption; //
//
// Accessors
//
public:
void SetChannelNum ( UINT ); // sets the channel ID
BOOL AquireData ( WAVEFORMATEX *, PVOID, ULONG, UINT ); // acquire data off of the multichan input wave
// Overrides
virtual LRESULT WindowProc ( UINT, WPARAM, LPARAM ); // message processing procedure
// Dialog Data
public: // MFC/UI stuff
//{{AFX_DATA(CDlgSrc)
enum { IDD = IDD_SRC }; // Identifier
CButton m_butClose; // close button
CButton m_butPlay; // start button
CButton m_butStop; // stop button
CStatic m_cInput;
CComboBox m_comboSpeaker; // speaker selection list
BOOL m_fUse; // include flag; not used
int m_nSpeaker; // selected speaker
CString m_strName; // window title
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CDlgSrc)
protected:
virtual void DoDataExchange (CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CDlgSrc)
afx_msg void OnComboSpeaker (); // speaker selection function
afx_msg void OnPlay (); // play function
afx_msg void OnStop (); // stop function
virtual void OnOK (); //
virtual void OnCancel (); //
afx_msg HBRUSH OnCtlColor ( CDC*, CWnd*, UINT ); //
afx_msg void OnLButtonDown (UINT, CPoint ); //
afx_msg void OnLButtonUp (UINT, CPoint ); //
afx_msg void OnMouseMove (UINT, CPoint ); //
virtual BOOL OnInitDialog (); //
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
}; // CDlgSrc
//
// list of opened channels
//
extern CList<CDlgSrc*,CDlgSrc*> g_listSources;
/*
* Inlines
*/
//
// ----------------------------------------------------------------------------------
// CDlgSrc::SetChannelNum
// Updates m_nChannel and corresponding UI
// ----------------------------------------------------------------------------------
inline
void
CDlgSrc::SetChannelNum
(
UINT nChannel
)
{
char sz[10];
m_nChannel = nChannel;
if (SUCCEEDED(StringCchPrintfA(sz, 10, "%d", nChannel)))
{
SetDlgItemText( IDC_CHANNELNUM, sz );
}
} // CDglSrc::SetChannelNum
//{{AFX_INSERT_LOCATION}}
#endif // !defined(AFX_DLGSRC_H__D1BB3766_96B0_11D2_9012_00C04FC2D3B8__INCLUDED_)