summaryrefslogtreecommitdiffabout
path: root/PropsSounds.cpp
Side-by-side diff
Diffstat (limited to 'PropsSounds.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--PropsSounds.cpp146
1 files changed, 146 insertions, 0 deletions
diff --git a/PropsSounds.cpp b/PropsSounds.cpp
new file mode 100644
index 0000000..a6f68d7
--- a/dev/null
+++ b/PropsSounds.cpp
@@ -0,0 +1,146 @@
+// PropsSounds.cpp : implementation file
+//
+
+#include "stdafx.h"
+#include "PumpKIN.h"
+#include "PropsSounds.h"
+#include "PumpKINDlg.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#undef THIS_FILE
+static char THIS_FILE[] = __FILE__;
+#endif
+
+/////////////////////////////////////////////////////////////////////////////
+// CPropsSounds property page
+
+IMPLEMENT_DYNCREATE(CPropsSounds, CPropertyPage)
+
+CPropsSounds::CPropsSounds() : CPropertyPage(CPropsSounds::IDD)
+{
+ //{{AFX_DATA_INIT(CPropsSounds)
+ m_Abort = _T("");
+ m_Success = _T("");
+ m_Request = _T("");
+ //}}AFX_DATA_INIT
+}
+
+CPropsSounds::~CPropsSounds()
+{
+}
+
+void CPropsSounds::DoDataExchange(CDataExchange* pDX)
+{
+ CPropertyPage::DoDataExchange(pDX);
+ //{{AFX_DATA_MAP(CPropsSounds)
+ DDX_Control(pDX, IDC_RING_PLAY, m_RequestPlayCtl);
+ DDX_Control(pDX, IDC_RING_BROWSE, m_RequestBrowseCtl);
+ DDX_Control(pDX, IDC_RING, m_RequestCtl);
+ DDX_Control(pDX, IDC_FINISHED_PLAY, m_SuccessPlayCtl);
+ DDX_Control(pDX, IDC_FINISHED_BROWSE, m_SuccessBrowseCtl);
+ DDX_Control(pDX, IDC_FINISHED, m_SuccessCtl);
+ DDX_Control(pDX, IDC_ABORTED_PLAY, m_AbortPlayCtl);
+ DDX_Control(pDX, IDC_ABORTED_BROWSE, m_AbortBrowseCtl);
+ DDX_Control(pDX, IDC_ABORTED, m_AbortCtl);
+ DDX_CBString(pDX, IDC_ABORTED, m_Abort);
+ DDX_CBString(pDX, IDC_FINISHED, m_Success);
+ DDX_CBString(pDX, IDC_RING, m_Request);
+ //}}AFX_DATA_MAP
+}
+
+
+BEGIN_MESSAGE_MAP(CPropsSounds, CPropertyPage)
+ //{{AFX_MSG_MAP(CPropsSounds)
+ ON_BN_CLICKED(IDC_ABORTED_BROWSE, OnAbortedBrowse)
+ ON_BN_CLICKED(IDC_FINISHED_BROWSE, OnFinishedBrowse)
+ ON_BN_CLICKED(IDC_RING_BROWSE, OnRingBrowse)
+ ON_BN_CLICKED(IDC_ABORTED_PLAY, OnAbortedPlay)
+ ON_BN_CLICKED(IDC_FINISHED_PLAY, OnFinishedPlay)
+ ON_BN_CLICKED(IDC_RING_PLAY, OnRingPlay)
+ //}}AFX_MSG_MAP
+END_MESSAGE_MAP()
+
+/////////////////////////////////////////////////////////////////////////////
+// CPropsSounds message handlers
+
+BOOL CPropsSounds::OnInitDialog()
+{
+ CPropertyPage::OnInitDialog();
+
+HICON hP = AfxGetApp()->LoadIcon(IDI_PLAY);
+HICON hB = AfxGetApp()->LoadIcon(IDI_BROWSE);
+ m_RequestPlayCtl.SetIcon(hP);
+ m_SuccessPlayCtl.SetIcon(hP);
+ m_AbortPlayCtl.SetIcon(hP);
+ m_RequestBrowseCtl.SetIcon(hB);
+ m_SuccessBrowseCtl.SetIcon(hB);
+ m_AbortBrowseCtl.SetIcon(hB);
+
+CPumpKINDlg* pd = (CPumpKINDlg*)AfxGetMainWnd();
+// ASSERT_KINDOF(CPumpKINDlg,pd);
+ m_bnw=&pd->m_bnw;
+
+ m_bnw->FillInCombo(&m_RequestCtl);
+ m_bnw->FillInCombo(&m_SuccessCtl);
+ m_bnw->FillInCombo(&m_AbortCtl);
+
+ return TRUE; // return TRUE unless you set the focus to a control
+ // EXCEPTION: OCX Property Pages should return FALSE
+}
+
+void CPropsSounds::OnAbortedBrowse()
+{
+ Browse(m_AbortCtl);
+}
+void CPropsSounds::OnFinishedBrowse()
+{
+ Browse(m_SuccessCtl);
+}
+void CPropsSounds::OnRingBrowse()
+{
+ Browse(m_RequestCtl);
+}
+
+void CPropsSounds::OnAbortedPlay()
+{
+ Play(m_AbortCtl);
+}
+
+void CPropsSounds::OnFinishedPlay()
+{
+ Play(m_SuccessCtl);
+}
+
+void CPropsSounds::OnRingPlay()
+{
+ Play(m_RequestCtl);
+}
+
+void CPropsSounds::Browse(CComboBox& ctl)
+{
+CString f;
+ ctl.GetWindowText(f);
+CString filter;
+ filter.LoadString(IDS_FILTER_WAV);
+CFileDialog fd(TRUE,NULL,(LPCTSTR)f,
+ OFN_EXPLORER|OFN_FILEMUSTEXIST|OFN_HIDEREADONLY
+ |OFN_LONGNAMES|OFN_NOCHANGEDIR|OFN_PATHMUSTEXIST,
+ filter,this);
+CString title;
+ title.LoadString(IDS_TITLE_WAV);
+ fd.m_ofn.lpstrTitle=(LPCTSTR)title;
+ if(fd.DoModal()==IDOK)
+ ctl.SetWindowText(fd.GetPathName());
+}
+
+void CPropsSounds::Play(CComboBox& ctl)
+{
+CString s;
+ ctl.GetWindowText(s);
+CBellsNWhistles::Whistling w = m_bnw->StartSound(s);
+ if(w){
+ Sleep(5000);
+ m_bnw->StopSound(w);
+ }
+}