home *** CD-ROM | disk | FTP | other *** search
/ Game Audio Programming / GameAudioProgramming.iso / Game_Audio / AudioTest / ZoomFX.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2002-06-29  |  7.6 KB  |  285 lines

  1. // ZoomFX.cpp : implementation file
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "audiotest.h"
  6. #include "ZoomFX.h"
  7. #include "AudioTestDlg.h"
  8. #include "Sound3D.h"
  9.  
  10. using namespace Audio;
  11.  
  12. #ifdef _DEBUG
  13. #define new DEBUG_NEW
  14. #undef THIS_FILE
  15. static char THIS_FILE[] = __FILE__;
  16. #endif
  17.  
  18. /////////////////////////////////////////////////////////////////////////////
  19. // CZoomFX dialog
  20.  
  21.  
  22. CZoomFX::CZoomFX(CWnd* pParent /*=NULL*/)
  23.     : CDialog(CZoomFX::IDD, pParent)
  24. {
  25.     //{{AFX_DATA_INIT(CZoomFX)
  26.         // NOTE: the ClassWizard will add member initialization here
  27.     //}}AFX_DATA_INIT
  28.     m_bInit = false;
  29. }
  30.  
  31.  
  32. void CZoomFX::DoDataExchange(CDataExchange* pDX)
  33. {
  34.     CDialog::DoDataExchange(pDX);
  35.     //{{AFX_DATA_MAP(CZoomFX)
  36.     DDX_Control(pDX, IDC_SPIN_MACRO_FX, m_MacroFX);
  37.     DDX_Control(pDX, IDC_EDIT_ZOOMFX_TOP_Z, m_TopZ);
  38.     DDX_Control(pDX, IDC_EDIT_ZOOMFX_TOP_Y, m_TopY);
  39.     DDX_Control(pDX, IDC_EDIT_ZOOMFX_TOP_X, m_TopX);
  40.     DDX_Control(pDX, IDC_EDIT_ZOOMFX_MIN_Z, m_MinZ);
  41.     DDX_Control(pDX, IDC_EDIT_ZOOMFX_MIN_Y, m_MinY);
  42.     DDX_Control(pDX, IDC_EDIT_ZOOMFX_MIN_X, m_MinX);
  43.     DDX_Control(pDX, IDC_EDIT_ZOOMFX_MAX_Z, m_MaxZ);
  44.     DDX_Control(pDX, IDC_EDIT_ZOOMFX_MAX_Y, m_MaxY);
  45.     DDX_Control(pDX, IDC_EDIT_ZOOMFX_MAX_X, m_MaxX);
  46.     DDX_Control(pDX, IDC_EDIT_ZOOMFX_FRONT_Z, m_FrontZ);
  47.     DDX_Control(pDX, IDC_EDIT_ZOOMFX_FRONT_Y, m_FrontY);
  48.     DDX_Control(pDX, IDC_EDIT_ZOOMFX_FRONT_X, m_FrontX);
  49.     //}}AFX_DATA_MAP
  50. }
  51.  
  52.  
  53. BEGIN_MESSAGE_MAP(CZoomFX, CDialog)
  54.     //{{AFX_MSG_MAP(CZoomFX)
  55.     ON_EN_CHANGE(IDC_EDIT_MACRO_FX, OnChangeEditMacroFx)
  56.     ON_EN_CHANGE(IDC_EDIT_ZOOMFX_MIN_X, OnChangeEditZoomfxMinX)
  57.     ON_EN_CHANGE(IDC_EDIT_ZOOMFX_MIN_Y, OnChangeEditZoomfxMinY)
  58.     ON_EN_CHANGE(IDC_EDIT_ZOOMFX_MIN_Z, OnChangeEditZoomfxMinZ)
  59.     ON_EN_CHANGE(IDC_EDIT_ZOOMFX_MAX_X, OnChangeEditZoomfxMaxX)
  60.     ON_EN_CHANGE(IDC_EDIT_ZOOMFX_MAX_Y, OnChangeEditZoomfxMaxY)
  61.     ON_EN_CHANGE(IDC_EDIT_ZOOMFX_MAX_Z, OnChangeEditZoomfxMaxZ)
  62.     ON_EN_CHANGE(IDC_EDIT_ZOOMFX_FRONT_X, OnChangeEditZoomfxFrontX)
  63.     ON_EN_CHANGE(IDC_EDIT_ZOOMFX_FRONT_Y, OnChangeEditZoomfxFrontY)
  64.     ON_EN_CHANGE(IDC_EDIT_ZOOMFX_FRONT_Z, OnChangeEditZoomfxFrontZ)
  65.     ON_EN_CHANGE(IDC_EDIT_ZOOMFX_TOP_X, OnChangeEditZoomfxTopX)
  66.     ON_EN_CHANGE(IDC_EDIT_ZOOMFX_TOP_Y, OnChangeEditZoomfxTopY)
  67.     ON_EN_CHANGE(IDC_EDIT_ZOOMFX_TOP_Z, OnChangeEditZoomfxTopZ)
  68.     //}}AFX_MSG_MAP
  69. END_MESSAGE_MAP()
  70.  
  71.  
  72. /////////////////////////////////////////////////////////////////////////////
  73. // CZoomFX message handlers
  74.  
  75. BOOL CZoomFX::OnInitDialog() 
  76. {
  77.     CDialog::OnInitDialog();
  78.     
  79.     m_bInit = true;
  80.  
  81.     m_Props.Clear();
  82.  
  83.     m_MacroFX.SetRange(0, 200);
  84.     m_MacroFX.SetPos(100);
  85.     
  86.     UpdateControls();
  87.     return TRUE;  // return TRUE unless you set the focus to a control
  88.                   // EXCEPTION: OCX Property Pages should return FALSE
  89. }
  90. void CZoomFX::PostNcDestroy() 
  91. {
  92.     CDialog::PostNcDestroy();
  93.     if(m_pTestDlg)
  94.         m_pTestDlg->m_pZoomFX = 0;
  95.     delete this;
  96. }
  97.  
  98. void CZoomFX::OnOK() 
  99. {
  100.     CDialog::DestroyWindow();
  101. }
  102.  
  103. void CZoomFX::UpdateControls()
  104. {
  105.     ISound3D* pSound3D = m_pTestDlg->m_pSound3D->GetCurrentSound();
  106.  
  107.     if(pSound3D)
  108.         pSound3D->ZoomFX()->GetProperties(m_Props);
  109.  
  110.     CString sVal;
  111.  
  112.     sVal.Format("%.2f", m_Props.box.vMin.x);
  113.     m_MinX.SetWindowText(sVal);
  114.     sVal.Format("%.2f", m_Props.box.vMin.y);
  115.     m_MinY.SetWindowText(sVal);
  116.     sVal.Format("%.2f", m_Props.box.vMin.z);
  117.     m_MinZ.SetWindowText(sVal);
  118.  
  119.     sVal.Format("%.2f", m_Props.box.vMax.x);
  120.     m_MaxX.SetWindowText(sVal);
  121.     sVal.Format("%.2f", m_Props.box.vMax.y);
  122.     m_MaxY.SetWindowText(sVal);
  123.     sVal.Format("%.2f", m_Props.box.vMax.z);
  124.     m_MaxZ.SetWindowText(sVal);
  125.  
  126.     sVal.Format("%.2f", m_Props.orientation.vTop.x);
  127.     m_TopX.SetWindowText(sVal);
  128.     sVal.Format("%.2f", m_Props.orientation.vTop.y);
  129.     m_TopY.SetWindowText(sVal);
  130.     sVal.Format("%.2f", m_Props.orientation.vTop.z);
  131.     m_TopZ.SetWindowText(sVal);
  132.  
  133.     sVal.Format("%.2f", m_Props.orientation.vFront.x);
  134.     m_FrontX.SetWindowText(sVal);
  135.     sVal.Format("%.2f", m_Props.orientation.vFront.y);
  136.     m_FrontY.SetWindowText(sVal);
  137.     sVal.Format("%.2f", m_Props.orientation.vFront.z);
  138.     m_FrontZ.SetWindowText(sVal);
  139.  
  140.     m_MacroFX.SetPos(m_Props.lMacroFx);
  141. }
  142.  
  143.  
  144.  
  145. void CZoomFX::OnChangeEditMacroFx() 
  146. {
  147.     if(!m_bInit) return;
  148.     m_Props.lMacroFx = m_MacroFX.GetPos();
  149.     ISound3D* pSound3D = m_pTestDlg->m_pSound3D->GetCurrentSound();
  150.     if(pSound3D)
  151.         pSound3D->ZoomFX()->SetProperties(m_Props);
  152. }
  153.  
  154. void CZoomFX::OnChangeEditZoomfxMinX() 
  155. {
  156.     if(!m_bInit) return;
  157.     CString sVal;
  158.     m_MinX.GetWindowText(sVal);
  159.     m_Props.box.vMin.x = atof(sVal);
  160.     ISound3D* pSound3D = m_pTestDlg->m_pSound3D->GetCurrentSound();
  161.     if(pSound3D)
  162.         pSound3D->ZoomFX()->SetProperties(m_Props);
  163. }
  164.  
  165. void CZoomFX::OnChangeEditZoomfxMinY() 
  166. {
  167.     if(!m_bInit) return;
  168.     CString sVal;
  169.     m_MinY.GetWindowText(sVal);
  170.     m_Props.box.vMin.y = atof(sVal);
  171.     ISound3D* pSound3D = m_pTestDlg->m_pSound3D->GetCurrentSound();
  172.     if(pSound3D)
  173.         pSound3D->ZoomFX()->SetProperties(m_Props);
  174. }
  175.  
  176. void CZoomFX::OnChangeEditZoomfxMinZ() 
  177. {
  178.     if(!m_bInit) return;
  179.     CString sVal;
  180.     m_MinZ.GetWindowText(sVal);
  181.     m_Props.box.vMin.z = atof(sVal);
  182.     ISound3D* pSound3D = m_pTestDlg->m_pSound3D->GetCurrentSound();
  183.     if(pSound3D)
  184.         pSound3D->ZoomFX()->SetProperties(m_Props);
  185. }
  186.  
  187. void CZoomFX::OnChangeEditZoomfxMaxX() 
  188. {
  189.     if(!m_bInit) return;
  190.     CString sVal;
  191.     m_MaxX.GetWindowText(sVal);
  192.     m_Props.box.vMax.x = atof(sVal);
  193.     ISound3D* pSound3D = m_pTestDlg->m_pSound3D->GetCurrentSound();
  194.     if(pSound3D)
  195.         pSound3D->ZoomFX()->SetProperties(m_Props);
  196. }
  197.  
  198. void CZoomFX::OnChangeEditZoomfxMaxY() 
  199. {
  200.     if(!m_bInit) return;
  201.     CString sVal;
  202.     m_MaxY.GetWindowText(sVal);
  203.     m_Props.box.vMax.y = atof(sVal);
  204.     ISound3D* pSound3D = m_pTestDlg->m_pSound3D->GetCurrentSound();
  205.     if(pSound3D)
  206.         pSound3D->ZoomFX()->SetProperties(m_Props);
  207. }
  208.  
  209. void CZoomFX::OnChangeEditZoomfxMaxZ() 
  210. {
  211.     if(!m_bInit) return;
  212.     CString sVal;
  213.     m_MaxZ.GetWindowText(sVal);
  214.     m_Props.box.vMax.z = atof(sVal);
  215.     ISound3D* pSound3D = m_pTestDlg->m_pSound3D->GetCurrentSound();
  216.     if(pSound3D)
  217.         pSound3D->ZoomFX()->SetProperties(m_Props);
  218. }
  219.  
  220. void CZoomFX::OnChangeEditZoomfxFrontX() 
  221. {
  222.     if(!m_bInit) return;
  223.     CString sVal;
  224.     m_FrontX.GetWindowText(sVal);
  225.     m_Props.orientation.vFront.x = atof(sVal);
  226.     ISound3D* pSound3D = m_pTestDlg->m_pSound3D->GetCurrentSound();
  227.     if(pSound3D)
  228.         pSound3D->ZoomFX()->SetProperties(m_Props);
  229. }
  230.  
  231. void CZoomFX::OnChangeEditZoomfxFrontY() 
  232. {
  233.     if(!m_bInit) return;
  234.     CString sVal;
  235.     m_FrontY.GetWindowText(sVal);
  236.     m_Props.orientation.vFront.y = atof(sVal);
  237.     ISound3D* pSound3D = m_pTestDlg->m_pSound3D->GetCurrentSound();
  238.     if(pSound3D)
  239.         pSound3D->ZoomFX()->SetProperties(m_Props);
  240. }
  241.  
  242. void CZoomFX::OnChangeEditZoomfxFrontZ() 
  243. {
  244.     if(!m_bInit) return;
  245.     CString sVal;
  246.     m_FrontZ.GetWindowText(sVal);
  247.     m_Props.orientation.vFront.z = atof(sVal);
  248.     ISound3D* pSound3D = m_pTestDlg->m_pSound3D->GetCurrentSound();
  249.     if(pSound3D)
  250.         pSound3D->ZoomFX()->SetProperties(m_Props);
  251. }
  252.  
  253. void CZoomFX::OnChangeEditZoomfxTopX() 
  254. {
  255.     if(!m_bInit) return;
  256.     CString sVal;
  257.     m_TopX.GetWindowText(sVal);
  258.     m_Props.orientation.vTop.x = atof(sVal);
  259.     ISound3D* pSound3D = m_pTestDlg->m_pSound3D->GetCurrentSound();
  260.     if(pSound3D)
  261.         pSound3D->ZoomFX()->SetProperties(m_Props);
  262. }
  263.  
  264. void CZoomFX::OnChangeEditZoomfxTopY() 
  265. {
  266.     if(!m_bInit) return;
  267.     CString sVal;
  268.     m_TopY.GetWindowText(sVal);
  269.     m_Props.orientation.vTop.y = atof(sVal);
  270.     ISound3D* pSound3D = m_pTestDlg->m_pSound3D->GetCurrentSound();
  271.     if(pSound3D)
  272.         pSound3D->ZoomFX()->SetProperties(m_Props);
  273. }
  274.  
  275. void CZoomFX::OnChangeEditZoomfxTopZ() 
  276. {
  277.     if(!m_bInit) return;
  278.     CString sVal;
  279.     m_TopZ.GetWindowText(sVal);
  280.     m_Props.orientation.vTop.z = atof(sVal);
  281.     ISound3D* pSound3D = m_pTestDlg->m_pSound3D->GetCurrentSound();
  282.     if(pSound3D)
  283.         pSound3D->ZoomFX()->SetProperties(m_Props);
  284. }
  285.