home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 15: Shareware / PC Actual CDT 15.iso / files / Windows_95_98 / Programacion / ActiveX / NCTWavPlayer.exe / Main / TestVCView.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2000-03-06  |  12.6 KB  |  570 lines

  1. // TestVCView.cpp : implementation of the CTestVCView class
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "TestVC.h"
  6.  
  7. #include "TestVCDoc.h"
  8. #include "TestVCView.h"
  9. #include "TestSheet.h"
  10.  
  11.  
  12. #ifdef _DEBUG
  13. #define new DEBUG_NEW
  14. #undef THIS_FILE
  15. static char THIS_FILE[] = __FILE__;
  16. #endif
  17.  
  18. /////////////////////////////////////////////////////////////////////////////
  19. // CTestVCView
  20.  
  21. IMPLEMENT_DYNCREATE(CTestVCView, CFormView)
  22.  
  23. BEGIN_MESSAGE_MAP(CTestVCView, CFormView)
  24.     //{{AFX_MSG_MAP(CTestVCView)
  25.     ON_COMMAND(ID_PLAY, OnPlay)
  26.     ON_COMMAND(ID_PAUSE, OnPause)
  27.     ON_COMMAND(ID_STOP, OnStop)
  28.     ON_COMMAND(ID_RECORD, OnRecord)
  29.     ON_COMMAND(ID_CUT, OnCut)
  30.     ON_COMMAND(ID_COPY, OnCopy)
  31.     ON_COMMAND(ID_PASTE, OnPaste)
  32.     ON_COMMAND(ID_UNDO, OnUndo)
  33.     ON_COMMAND(ID_REDO, OnRedo)
  34.     ON_COMMAND(ID_LEFT, OnLeft)
  35.     ON_COMMAND(ID_RIGHT, OnRight)
  36.     ON_COMMAND(ID_ZOOMIN, OnZoomin)
  37.     ON_COMMAND(ID_ZOOMOUT, OnZoomout)
  38.     ON_COMMAND(ID_FULL, OnFull)
  39.     ON_COMMAND(ID_AMPLINC, OnAmplinc)
  40.     ON_COMMAND(ID_AMPLDEC, OnAmpldec)
  41.     ON_COMMAND(ID_NULL, OnNull)
  42.     ON_COMMAND(ID_NEW, OnNew)
  43.     ON_COMMAND(ID_OPEN, OnOpen)
  44.     ON_COMMAND(ID_SAVE, OnSave)
  45.     ON_COMMAND(ID_CLOSE, OnClose)
  46.     ON_COMMAND(ID_SAVESELECT, OnSaveselect)
  47.     ON_COMMAND(ID_FADEIN, OnFadein)
  48.     ON_COMMAND(ID_FADEOUT, OnFadeout)
  49.     ON_COMMAND(ID_INVERT, OnInvert)
  50.     ON_COMMAND(ID_REVERSE, OnReverse)
  51.     ON_COMMAND(ID_NORMALIZE, OnNormalize)
  52.     ON_COMMAND(ID_MIX, OnMix)
  53.     ON_COMMAND(ID_ECHO, OnEcho)
  54.     ON_COMMAND(ID_STRETCH, OnStretch)
  55.     ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLIDER1, OnReleasedcaptureSlider1)
  56.     ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLIDER2, OnReleasedcaptureSlider2)
  57.     ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLIDER3, OnReleasedcaptureSlider3)
  58.     ON_BN_CLICKED(IDC_CHECK1, OnCheck1)
  59.     ON_COMMAND(ID_SETUP, OnSetup)
  60.     ON_COMMAND(ID_CONVERT, OnConvert)
  61.     ON_COMMAND(ID_INSSILENCE, OnInssilence)
  62.     ON_COMMAND(ID_CONVERTS, OnConvertSample)
  63.     ON_COMMAND(ID_COPY_CB, OnCopyClipBoard)
  64.     ON_COMMAND(ID_PASTE_CB, OnPasteClipBoard)
  65.     ON_COMMAND(ID_PASTE_FL, OnPasteFromFile)
  66.     ON_COMMAND(ID_MIX_FL, OnMixFromFile)
  67.     //}}AFX_MSG_MAP
  68. END_MESSAGE_MAP()
  69.  
  70. /////////////////////////////////////////////////////////////////////////////
  71. // CTestVCView construction/destruction
  72.  
  73. CTestVCView::CTestVCView()
  74.     : CFormView(CTestVCView::IDD)
  75. {
  76.     //{{AFX_DATA_INIT(CTestVCView)
  77.     //}}AFX_DATA_INIT
  78.     // TODO: add construction code here
  79.  
  80. }
  81.  
  82. CTestVCView::~CTestVCView()
  83. {
  84. }
  85.  
  86. void CTestVCView::DoDataExchange(CDataExchange* pDX)
  87. {
  88.     CFormView::DoDataExchange(pDX);
  89.     //{{AFX_DATA_MAP(CTestVCView)
  90.     DDX_Control(pDX, IDC_PROGRESS2, m_level);
  91.     DDX_Control(pDX, IDC_PROGRESS1, m_block);
  92.     DDX_Control(pDX, IDC_CHECK1, m_agc);
  93.     DDX_Control(pDX, IDC_SLIDER3, m_balance);
  94.     DDX_Control(pDX, IDC_SLIDER2, m_volume);
  95.     DDX_Control(pDX, IDC_SLIDER1, m_gain);
  96.     DDX_Control(pDX, IDC_NCTWAVPLAYERCTRL1, m_player);
  97.     //}}AFX_DATA_MAP
  98. }
  99.  
  100. BOOL CTestVCView::PreCreateWindow(CREATESTRUCT& cs)
  101. {
  102.     // TODO: Modify the Window class or styles here by modifying
  103.     //  the CREATESTRUCT cs
  104.  
  105.     return CFormView::PreCreateWindow(cs);
  106. }
  107.  
  108. void CTestVCView::OnInitialUpdate()
  109. {
  110.     CFrameWnd* pf = STATIC_DOWNCAST(CFrameWnd,GetParentFrame());
  111.     m_frame = DYNAMIC_DOWNCAST(CMainFrame,pf);
  112.  
  113.     CFormView::OnInitialUpdate();
  114.  
  115.     m_frame->RecalcLayout();
  116.     ResizeParentToFit(FALSE);
  117.  
  118.     m_frame->m_wndStatusBar.SetPaneInfo(0,ID_INDICATOR_I1,SBPS_STRETCH,100);
  119.     m_frame->m_wndStatusBar.SetPaneInfo(1,ID_INDICATOR_I2,SBPS_NORMAL,110);
  120.     m_frame->m_wndStatusBar.SetPaneInfo(2,ID_INDICATOR_I3,SBPS_NORMAL,110);
  121.     m_frame->m_wndStatusBar.SetPaneInfo(3,ID_INDICATOR_I4,SBPS_NORMAL,110);
  122.     m_frame->m_wndStatusBar.SetPaneInfo(4,ID_INDICATOR_I5,SBPS_NORMAL,110);
  123.  
  124.     m_gain.SetRange(0,65535);
  125.     m_gain.SetTicFreq(6000); 
  126.     m_volume.SetRange(0,65535);
  127.     m_volume.SetTicFreq(6000); 
  128.     m_balance.SetRange(0,100);
  129.     m_balance.SetTicFreq(25); 
  130.     m_balance.SetPos(50); 
  131.  
  132.     m_block.SetRange32(0,100); 
  133.     m_level.SetRange32(0,32768); 
  134.  
  135.     ClearParam();
  136.  
  137. }
  138.  
  139. /////////////////////////////////////////////////////////////////////////////
  140. // CTestVCView diagnostics
  141.  
  142. #ifdef _DEBUG
  143. void CTestVCView::AssertValid() const
  144. {
  145.     CFormView::AssertValid();
  146. }
  147.  
  148. void CTestVCView::Dump(CDumpContext& dc) const
  149. {
  150.     CFormView::Dump(dc);
  151. }
  152.  
  153. CTestVCDoc* CTestVCView::GetDocument() // non-debug version is inline
  154. {
  155.     ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CTestVCDoc)));
  156.     return (CTestVCDoc*)m_pDocument;
  157. }
  158. #endif //_DEBUG
  159.  
  160. /////////////////////////////////////////////////////////////////////////////
  161. // CTestVCView message handlers
  162.  
  163. void CTestVCView::OnNew() 
  164. {
  165.     m_player.New(8000,1); 
  166.     fName="New WAV file";
  167.     ShowParam();
  168. }
  169.  
  170. void CTestVCView::OnOpen() 
  171. {
  172.     CString szFilter = "WAV Files (*.wav)|*.wav|MP3 Files (*.mp3)|*.mp3|";
  173.     CFileDialog getFile(TRUE,NULL,NULL,
  174.                         OFN_HIDEREADONLY |
  175.                         OFN_OVERWRITEPROMPT |
  176.                         OFN_FILEMUSTEXIST, szFilter);
  177.     if(getFile.DoModal()!=IDOK) return;
  178.     UpdateWindow( );
  179.     m_player.Open(getFile.GetPathName()); 
  180.     fName=getFile.GetPathName();
  181.     ShowParam();
  182. }
  183.  
  184. void CTestVCView::OnClose() 
  185. {
  186.     m_player.Close(); 
  187.     ClearParam();
  188. }
  189.  
  190. void CTestVCView::OnSave() 
  191. {
  192.     CString szFilter = "WAV Files (*.wav)|*.wav|MP3 Files (*.mp3)|*.mp3|";
  193.     CFileDialog getFile(FALSE,NULL,NULL,
  194.                         OFN_PATHMUSTEXIST|
  195.                         OFN_OVERWRITEPROMPT,szFilter);
  196.     if(getFile.DoModal()!=IDOK) return;
  197.     UpdateWindow( );    
  198.     m_player.Save(getFile.GetPathName()); 
  199.     fName=getFile.GetPathName();
  200.     ShowParam();
  201. }
  202. void CTestVCView::OnSaveselect() 
  203. {
  204.     CString szFilter = "WAV Files (*.wav)|*.wav|MP3 Files (*.mp3)|*.mp3|";
  205.     CFileDialog getFile(FALSE,NULL,NULL,
  206.                         OFN_PATHMUSTEXIST|
  207.                         OFN_OVERWRITEPROMPT,szFilter);
  208.     if(getFile.DoModal()!=IDOK) return;
  209.     UpdateWindow( );    
  210.     m_player.SaveSelect(getFile.GetPathName()); 
  211.     ShowParam();
  212. }
  213.  
  214. void CTestVCView::OnConvert() 
  215. {
  216.     m_player.ConvertFromMenu(); 
  217.     ShowParam();
  218. }
  219.  
  220. void CTestVCView::OnConvertSample() 
  221. {
  222.     CString szFilter = "WAV Files (*.wav)|*.wav|";
  223.     CFileDialog getFile(TRUE,NULL,NULL,
  224.                         OFN_PATHMUSTEXIST|
  225.                         OFN_OVERWRITEPROMPT,szFilter);
  226.     if(getFile.DoModal()!=IDOK) return;
  227.     UpdateWindow( );    
  228.     m_player.ConvertLikeSample(getFile.GetPathName()); 
  229.     ShowParam();
  230. }
  231.  
  232. void CTestVCView::OnPlay() 
  233. {
  234.     if (flgPause==0) m_player.Play(); 
  235.     if (flgPause==1) m_player.ContinuePlay(); 
  236.     ShowParam();
  237. }
  238.  
  239. void CTestVCView::OnPause() 
  240. {
  241.     m_player.PausePlay();
  242.     flgPause=1;
  243.     ShowParam();
  244. }
  245.  
  246. void CTestVCView::OnStop() 
  247. {
  248.     m_player.Stop(); 
  249.     flgPause=0;
  250.     ShowParam();
  251. }
  252.  
  253. void CTestVCView::OnRecord() 
  254. {
  255.     m_player.Record(); 
  256.     ShowParam();
  257. }
  258.  
  259. void CTestVCView::OnCut() 
  260. {
  261.     m_player.Cut(); 
  262.     ShowParam();
  263. }
  264.  
  265. void CTestVCView::OnCopy() 
  266. {
  267.     m_player.Copy(); 
  268.     ShowParam();
  269. }
  270.  
  271. void CTestVCView::OnPaste() 
  272. {
  273.     m_player.Paste(); 
  274.     ShowParam();
  275. }
  276.  
  277. void CTestVCView::OnMix() 
  278. {
  279.     m_player.Mix(50,50); 
  280.     ShowParam();
  281. }
  282.  
  283. void CTestVCView::OnCopyClipBoard() 
  284. {
  285.     m_player.CopyToClipboard(); 
  286.     ShowParam();
  287. }
  288.  
  289. void CTestVCView::OnPasteClipBoard() 
  290. {
  291.     m_player.PasteFromClipboard(); 
  292.     ShowParam();
  293. }
  294.  
  295. void CTestVCView::OnPasteFromFile() 
  296. {
  297.     CString szFilter = "WAV Files (*.wav)|*.wav|";
  298.     CFileDialog getFile(TRUE,NULL,NULL,
  299.                         OFN_PATHMUSTEXIST|
  300.                         OFN_OVERWRITEPROMPT,szFilter);
  301.     if(getFile.DoModal()!=IDOK) return;
  302.     UpdateWindow( );    
  303.     m_player.PasteFromFile(getFile.GetPathName()); 
  304.     ShowParam();
  305. }
  306.  
  307. void CTestVCView::OnMixFromFile() 
  308. {
  309.     CString szFilter = "WAV Files (*.wav)|*.wav|";
  310.     CFileDialog getFile(TRUE,NULL,NULL,
  311.                         OFN_PATHMUSTEXIST|
  312.                         OFN_OVERWRITEPROMPT,szFilter);
  313.     if(getFile.DoModal()!=IDOK) return;
  314.     UpdateWindow( );    
  315.     m_player.MixFromFile(getFile.GetPathName(),50,50); 
  316.     ShowParam();
  317. }
  318.  
  319. void CTestVCView::OnUndo() 
  320. {
  321.     if (m_player.GetUndoEnable()==TRUE) m_player.Undo(); 
  322.     ShowParam();
  323. }
  324.  
  325. void CTestVCView::OnRedo() 
  326. {
  327.     if (m_player.GetRedoEnable()==TRUE) m_player.Redo(); 
  328.     ShowParam();
  329. }
  330.  
  331. void CTestVCView::OnLeft() 
  332. {
  333.     m_player.SetStereoChannel(0); 
  334.     ShowParam();
  335. }
  336.  
  337. void CTestVCView::OnRight() 
  338. {
  339.     m_player.SetStereoChannel(1); 
  340.     ShowParam();
  341. }
  342.  
  343. void CTestVCView::OnZoomin() 
  344. {
  345.     m_player.ZoomIn(); 
  346.     ShowParam();
  347. }
  348.  
  349. void CTestVCView::OnZoomout() 
  350. {
  351.     m_player.ZoomOut(); 
  352.     ShowParam();
  353. }
  354.  
  355. void CTestVCView::OnFull() 
  356. {
  357.     m_player.Full(); 
  358.     ShowParam();
  359. }
  360.  
  361. void CTestVCView::OnAmplinc() 
  362. {
  363.     m_player.Amplify(125); 
  364.     ShowParam();
  365. }
  366.  
  367. void CTestVCView::OnAmpldec() 
  368. {
  369.     m_player.Amplify(80); 
  370.     ShowParam();
  371. }
  372.  
  373. void CTestVCView::OnNull() 
  374. {
  375.     m_player.Silence(); 
  376.     ShowParam();
  377. }
  378. void CTestVCView::OnInssilence() 
  379. {
  380.     m_player.InsertSilence(1000); 
  381.     ShowParam();
  382. }
  383.  
  384. void CTestVCView::OnFadein() 
  385. {
  386.     m_player.Fade(0,100); 
  387.     ShowParam();
  388. }
  389.  
  390. void CTestVCView::OnFadeout() 
  391. {
  392.     m_player.Fade(100,0); 
  393.     ShowParam();
  394. }
  395.  
  396. void CTestVCView::OnInvert() 
  397. {
  398.     m_player.Invert(); 
  399.     ShowParam();
  400. }
  401.  
  402. void CTestVCView::OnReverse() 
  403. {
  404.     m_player.Reverse(); 
  405.     ShowParam();
  406. }
  407.  
  408. void CTestVCView::OnNormalize() 
  409. {
  410.     m_player.Normalize(70); 
  411.     ShowParam();
  412. }
  413.  
  414. void CTestVCView::OnEcho() 
  415. {
  416.     m_player.Echo(200,50); 
  417.     ShowParam();
  418. }
  419.  
  420. void CTestVCView::OnStretch() 
  421. {
  422.     m_player.Stretch(120); 
  423.     ShowParam();
  424. }
  425.  
  426. void CTestVCView::OnCheck1() 
  427. {
  428.     if (m_agc.GetCheck()!=0) {
  429.         m_player.SetAutoGainControl(TRUE);
  430.     } else {
  431.         m_player.SetAutoGainControl(FALSE);
  432.     }
  433. }
  434.  
  435. void CTestVCView::OnReleasedcaptureSlider1(NMHDR* pNMHDR, LRESULT* pResult) 
  436. {
  437.     m_player.SetGain(65535-m_gain.GetPos()); 
  438.     *pResult = 0;
  439. }
  440.  
  441. void CTestVCView::OnReleasedcaptureSlider2(NMHDR* pNMHDR, LRESULT* pResult) 
  442. {
  443.     m_player.SetVolume(65535-m_volume.GetPos()); 
  444.     *pResult = 0;
  445. }
  446.  
  447. void CTestVCView::OnReleasedcaptureSlider3(NMHDR* pNMHDR, LRESULT* pResult) 
  448. {
  449.     m_player.SetVolumeBalance(65535-m_balance.GetPos()); 
  450.     *pResult = 0;
  451. }
  452.  
  453.  
  454. void CTestVCView::OnSetup() 
  455. {
  456.     CTestSheet ts(_T("Setup NCTWavPlayer ActiveX Control"));
  457.     ts.m_player = &m_player;
  458.     ts.DoModal(); 
  459. }
  460.  
  461.  
  462. BEGIN_EVENTSINK_MAP(CTestVCView, CFormView)
  463.     //{{AFX_EVENTSINK_MAP(CTestVCView)
  464.     ON_EVENT(CTestVCView, IDC_NCTWAVPLAYERCTRL1, 2 /* ChangePlayPos */, OnChangePlayPos, VTS_NONE)
  465.     ON_EVENT(CTestVCView, IDC_NCTWAVPLAYERCTRL1, 3 /* ChangePos */, OnChangePos, VTS_NONE)
  466.     ON_EVENT(CTestVCView, IDC_NCTWAVPLAYERCTRL1, 1 /* EndPlay */, OnEndPlay, VTS_NONE)
  467.     ON_EVENT(CTestVCView, IDC_NCTWAVPLAYERCTRL1, 8 /* EndRecordBlock */, OnEndRecordBlock, VTS_NONE)
  468.     ON_EVENT(CTestVCView, IDC_NCTWAVPLAYERCTRL1, 4 /* GainChange */, OnGainChange, VTS_NONE)
  469.     ON_EVENT(CTestVCView, IDC_NCTWAVPLAYERCTRL1, 6 /* OperationBlock */, OnOperationBlock, VTS_I2)
  470.     ON_EVENT(CTestVCView, IDC_NCTWAVPLAYERCTRL1, 5 /* VolumeChange */, OnVolumeChange, VTS_NONE)
  471.     ON_EVENT(CTestVCView, IDC_NCTWAVPLAYERCTRL1, 7 /* LevelPlay */, OnLevelPlay, VTS_I4)
  472.     //}}AFX_EVENTSINK_MAP
  473. END_EVENTSINK_MAP()
  474.  
  475. void CTestVCView::OnGainChange() 
  476. {
  477.     m_gain.SetPos(65535-m_player.GetGain()); 
  478. }
  479.  
  480. void CTestVCView::OnVolumeChange() 
  481. {
  482.     m_volume.SetPos(65535-m_player.GetVolume()); 
  483. }
  484.  
  485. void CTestVCView::OnChangePlayPos() 
  486. {
  487.     ShowParam();
  488. }
  489.  
  490. void CTestVCView::OnChangePos() 
  491. {
  492.     ShowParam();
  493. }
  494.  
  495. void CTestVCView::OnEndPlay() 
  496. {
  497. }
  498.  
  499. void CTestVCView::OnEndRecordBlock() 
  500. {
  501. }
  502.  
  503. void CTestVCView::OnLevelPlay(long Level) 
  504. {
  505.     m_level.SetPos(Level);
  506. }
  507.  
  508. void CTestVCView::OnOperationBlock(short Percent) 
  509. {
  510.     m_block.SetPos(Percent); 
  511. }
  512.  
  513. void CTestVCView::ClearParam()
  514. {
  515.  
  516.     m_block.SetPos(0); 
  517.     m_level.SetPos(0); 
  518.  
  519.     m_gain.SetPos(65536-m_player.GetGain()); 
  520.     m_volume.SetPos(65535-m_player.GetVolume()); 
  521.     m_balance.SetPos(m_player.GetVolumeBalance()); 
  522.     if (m_player.GetAutoGainControl()==TRUE) {
  523.         m_agc.SetCheck(1); 
  524.     } else {
  525.         m_agc.SetCheck(0); 
  526.     }
  527.  
  528.     flgPause=0;
  529.     m_frame->m_wndStatusBar.SetPaneText(0," "); 
  530.     m_frame->m_wndStatusBar.SetPaneText(1," "); 
  531.     m_frame->m_wndStatusBar.SetPaneText(2," "); 
  532.     m_frame->m_wndStatusBar.SetPaneText(3," "); 
  533.     m_frame->m_wndStatusBar.SetPaneText(4," "); 
  534.  
  535.     AfxGetMainWnd()->SetWindowText("NCTWavPlayer ActiveX Control - Test MS VC++ 6.0");  
  536. }
  537.  
  538. void CTestVCView::ShowParam()
  539. {
  540.     CString str;
  541.  
  542.     m_block.SetPos(0); 
  543.  
  544.     m_gain.SetPos(65536-m_player.GetGain()); 
  545.     m_volume.SetPos(65535-m_player.GetVolume()); 
  546.     m_balance.SetPos(m_player.GetVolumeBalance()); 
  547.  
  548.     m_frame->m_wndStatusBar.SetPaneText(0,m_player.GetFormatString()); 
  549.  
  550.     str.Format("nSamples: %d",m_player.GetNSamples());
  551.     m_frame->m_wndStatusBar.SetPaneText(1,str); 
  552.  
  553.     str.Format("StartPos: %d",m_player.GetStartPos());
  554.     m_frame->m_wndStatusBar.SetPaneText(2,str); 
  555.  
  556.     str.Format("EndPos: %d",m_player.GetEndPos());
  557.     m_frame->m_wndStatusBar.SetPaneText(3,str); 
  558.  
  559.     str.Format("Time: %.2f sec",m_player.SamplToSec(m_player.GetNSamples()));
  560.     m_frame->m_wndStatusBar.SetPaneText(4,str); 
  561.  
  562.     m_frame->UpdateWindow(); 
  563.  
  564.     str="NCTWavPlayer ActiveX Control - Test MS VC++ 6.0 - "+fName;  
  565.     AfxGetMainWnd()->SetWindowText(str);  
  566. }
  567.  
  568.  
  569.  
  570.