home *** CD-ROM | disk | FTP | other *** search
/ Mastering Visual Basic 6 / mastvb6.iso / leadtools / ocx32.lt / MMSAVE.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1998-03-25  |  4.3 KB  |  163 lines

  1. // MMSave.cpp : implementation file
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "MMApp.h"
  6. #include "MMDlg.h"
  7. #include "MMSave.h"
  8.  
  9. typedef struct _WAVE_AUDIO_FORMAT
  10. {
  11.    int   nType;
  12.    char *szDescription;
  13. } WAVE_AUDIO_FORMAT;
  14.  
  15. static WAVE_AUDIO_FORMAT WaveAudioFormat[] =
  16. {
  17.    FILE_WAV_1M08, "11.025 kHz, Mono,   8-bit",
  18.    FILE_WAV_1S08, "11.025 kHz, Stereo, 8-bit",
  19.    FILE_WAV_1M16, "11.025 kHz, Mono,   16-bit",
  20.    FILE_WAV_1S16, "11.025 kHz, Stereo, 16-bit",
  21.    FILE_WAV_2M08, "22.05  kHz, Mono,   8-bit",
  22.    FILE_WAV_2S08, "22.05  kHz, Stereo, 8-bit",
  23.    FILE_WAV_2M16, "22.05  kHz, Mono,   16-bit",
  24.    FILE_WAV_2S16, "22.05  kHz, Stereo, 16-bit",
  25.    FILE_WAV_4M08, "44.1   kHz, Mono,   8-bit",
  26.    FILE_WAV_4S08, "44.1   kHz, Stereo, 8-bit",
  27.    FILE_WAV_4M16, "44.1   kHz, Mono,   16-bit",
  28.    FILE_WAV_4S16, "44.1   kHz, Stereo, 16-bit",
  29. };
  30.  
  31. char szVideoSaveFilter[] = 
  32. {
  33.    "AVI Files (*.avi)\0" "*.avi\0\0"
  34. };
  35.  
  36. /////////////////////////////////////////////////////////////////////////////
  37. // CMMSave dialog
  38.  
  39.  
  40. CMMSave::CMMSave(LPCTSTR lpszFileName /*=NULL*/, CWnd* pParent /*=NULL*/) :
  41.                    CFileDialog(FALSE,NULL,lpszFileName, OFN_EXPLORER | OFN_HIDEREADONLY | OFN_ENABLETEMPLATE)
  42. {
  43.     //{{AFX_DATA_INIT(CMMSave)
  44.     //}}AFX_DATA_INIT
  45.  
  46.     m_ofn.hInstance       = AfxGetInstanceHandle();
  47.     m_ofn.lpTemplateName  = MAKEINTRESOURCE(IDD_SAVE_DIALOG);    
  48.     m_ofn.lpstrFilter     = szVideoSaveFilter;
  49.     m_ofn.nFilterIndex    = 0;
  50.     m_ofn.lpstrInitialDir = NULL;
  51.     m_ofn.lpstrDefExt     = NULL;
  52.  
  53.     if (lpszFileName == NULL)
  54.     {
  55.         m_ofn.Flags |= OFN_OVERWRITEPROMPT;
  56.     }
  57. }
  58.  
  59. void CMMSave::DoDataExchange(CDataExchange* pDX)
  60. {
  61.     CDialog::DoDataExchange(pDX);
  62.     //{{AFX_DATA_MAP(CMMSave)
  63.     DDX_Control(pDX, IDC_VIDEO_COMPRESSOR, m_VideoCompressor);
  64.     DDX_Control(pDX, IDC_AUDIO_FORMAT, m_AudioFormat);
  65.     DDX_Control(pDX, IDC_AUDIO_COMPRESSOR, m_AudioCompressor);
  66.     //}}AFX_DATA_MAP
  67. }
  68.  
  69.  
  70. BEGIN_MESSAGE_MAP(CMMSave, CDialog)
  71.     //{{AFX_MSG_MAP(CMMSave)
  72.     ON_CBN_SELCHANGE(IDC_AUDIO_COMPRESSOR, OnSelchangeAudioCompressor)
  73.     ON_CBN_SELCHANGE(IDC_AUDIO_FORMAT, OnSelchangeAudioFormat)
  74.     ON_CBN_SELCHANGE(IDC_VIDEO_COMPRESSOR, OnSelchangeVideoCompressor)
  75.     //}}AFX_MSG_MAP
  76. END_MESSAGE_MAP()
  77.  
  78. /////////////////////////////////////////////////////////////////////////////
  79. // CMMSave message handlers
  80.  
  81. BOOL CMMSave::OnInitDialog() 
  82. {
  83.    int i;
  84.  
  85.     CFileDialog::OnInitDialog();
  86.  
  87.    for (i = 0; i < sizeof(WaveAudioFormat) / sizeof(WaveAudioFormat[0]); i++)
  88.    {
  89.       m_AudioFormat.AddString(WaveAudioFormat[i].szDescription);
  90.       m_AudioFormat.SetItemData(i, WaveAudioFormat[i].nType);
  91.       if (m_nAudioFormat == WaveAudioFormat[i].nType)
  92.       {
  93.          m_AudioFormat.SetCurSel(i);
  94.       }
  95.    }
  96.  
  97.    if (m_nAudioFormat = -1)
  98.    {
  99.       m_AudioFormat.SetCurSel(0);
  100.    }
  101.  
  102.    for (i = 0; i < m_nVideoIndex; i++)
  103.    {
  104.       m_VideoCompressor.AddString(m_strVideoCompressor[i]);
  105.    }
  106.    for (i = 0; i < m_nAudioIndex; i++)
  107.    {
  108.       m_AudioCompressor.AddString(m_strAudioCompressor[i]);
  109.    }
  110.  
  111.    if (m_szVideoCompressor[0] == 0)
  112.    {
  113.       i = m_VideoCompressor.FindString(-1, "Cinepak Codec by Radius");
  114.       if (i < 0)
  115.       {
  116.          i = 0;
  117.       }
  118.  
  119.       m_VideoCompressor.SetCurSel(i);
  120.    }
  121.    else
  122.    {
  123.       m_VideoCompressor.SelectString(-1, m_szVideoCompressor);
  124.    }
  125.  
  126.    if (m_szAudioCompressor[0] == 0)
  127.    {
  128.       i = m_AudioCompressor.FindString(-1, "PCM");
  129.       if (i < 0)
  130.       {
  131.          i = 0;
  132.       }
  133.  
  134.       m_AudioCompressor.SetCurSel(i);
  135.    }
  136.    else
  137.    {
  138.       m_AudioCompressor.SelectString(-1, m_szAudioCompressor);
  139.    }
  140.  
  141.    m_VideoCompressor.GetLBText(m_VideoCompressor.GetCurSel(), m_szVideoCompressor);
  142.    m_AudioCompressor.GetLBText(m_AudioCompressor.GetCurSel(), m_szAudioCompressor);
  143.    m_nAudioFormat = m_AudioFormat.GetItemData(m_AudioFormat.GetCurSel());
  144.     
  145.     return TRUE;  // return TRUE unless you set the focus to a control
  146.                   // EXCEPTION: OCX Property Pages should return FALSE
  147. }
  148.  
  149. void CMMSave::OnSelchangeAudioCompressor() 
  150. {
  151.    m_AudioCompressor.GetLBText(m_AudioCompressor.GetCurSel(), m_szAudioCompressor);
  152. }
  153.  
  154. void CMMSave::OnSelchangeAudioFormat() 
  155. {
  156.    m_nAudioFormat = m_AudioFormat.GetItemData(m_AudioFormat.GetCurSel());
  157. }
  158.  
  159. void CMMSave::OnSelchangeVideoCompressor() 
  160. {
  161.    m_VideoCompressor.GetLBText(m_VideoCompressor.GetCurSel(), m_szVideoCompressor);
  162. }
  163.