home *** CD-ROM | disk | FTP | other *** search
- // MMSave.cpp : implementation file
- //
-
- #include "stdafx.h"
- #include "MMApp.h"
- #include "MMDlg.h"
- #include "MMSave.h"
-
- typedef struct _WAVE_AUDIO_FORMAT
- {
- int nType;
- char *szDescription;
- } WAVE_AUDIO_FORMAT;
-
- static WAVE_AUDIO_FORMAT WaveAudioFormat[] =
- {
- FILE_WAV_1M08, "11.025 kHz, Mono, 8-bit",
- FILE_WAV_1S08, "11.025 kHz, Stereo, 8-bit",
- FILE_WAV_1M16, "11.025 kHz, Mono, 16-bit",
- FILE_WAV_1S16, "11.025 kHz, Stereo, 16-bit",
- FILE_WAV_2M08, "22.05 kHz, Mono, 8-bit",
- FILE_WAV_2S08, "22.05 kHz, Stereo, 8-bit",
- FILE_WAV_2M16, "22.05 kHz, Mono, 16-bit",
- FILE_WAV_2S16, "22.05 kHz, Stereo, 16-bit",
- FILE_WAV_4M08, "44.1 kHz, Mono, 8-bit",
- FILE_WAV_4S08, "44.1 kHz, Stereo, 8-bit",
- FILE_WAV_4M16, "44.1 kHz, Mono, 16-bit",
- FILE_WAV_4S16, "44.1 kHz, Stereo, 16-bit",
- };
-
- char szVideoSaveFilter[] =
- {
- "AVI Files (*.avi)\0" "*.avi\0\0"
- };
-
- /////////////////////////////////////////////////////////////////////////////
- // CMMSave dialog
-
-
- CMMSave::CMMSave(LPCTSTR lpszFileName /*=NULL*/, CWnd* pParent /*=NULL*/) :
- CFileDialog(FALSE,NULL,lpszFileName, OFN_EXPLORER | OFN_HIDEREADONLY | OFN_ENABLETEMPLATE)
- {
- //{{AFX_DATA_INIT(CMMSave)
- //}}AFX_DATA_INIT
-
- m_ofn.hInstance = AfxGetInstanceHandle();
- m_ofn.lpTemplateName = MAKEINTRESOURCE(IDD_SAVE_DIALOG);
- m_ofn.lpstrFilter = szVideoSaveFilter;
- m_ofn.nFilterIndex = 0;
- m_ofn.lpstrInitialDir = NULL;
- m_ofn.lpstrDefExt = NULL;
-
- if (lpszFileName == NULL)
- {
- m_ofn.Flags |= OFN_OVERWRITEPROMPT;
- }
- }
-
- void CMMSave::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CMMSave)
- DDX_Control(pDX, IDC_VIDEO_COMPRESSOR, m_VideoCompressor);
- DDX_Control(pDX, IDC_AUDIO_FORMAT, m_AudioFormat);
- DDX_Control(pDX, IDC_AUDIO_COMPRESSOR, m_AudioCompressor);
- //}}AFX_DATA_MAP
- }
-
-
- BEGIN_MESSAGE_MAP(CMMSave, CDialog)
- //{{AFX_MSG_MAP(CMMSave)
- ON_CBN_SELCHANGE(IDC_AUDIO_COMPRESSOR, OnSelchangeAudioCompressor)
- ON_CBN_SELCHANGE(IDC_AUDIO_FORMAT, OnSelchangeAudioFormat)
- ON_CBN_SELCHANGE(IDC_VIDEO_COMPRESSOR, OnSelchangeVideoCompressor)
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
-
- /////////////////////////////////////////////////////////////////////////////
- // CMMSave message handlers
-
- BOOL CMMSave::OnInitDialog()
- {
- int i;
-
- CFileDialog::OnInitDialog();
-
- for (i = 0; i < sizeof(WaveAudioFormat) / sizeof(WaveAudioFormat[0]); i++)
- {
- m_AudioFormat.AddString(WaveAudioFormat[i].szDescription);
- m_AudioFormat.SetItemData(i, WaveAudioFormat[i].nType);
- if (m_nAudioFormat == WaveAudioFormat[i].nType)
- {
- m_AudioFormat.SetCurSel(i);
- }
- }
-
- if (m_nAudioFormat = -1)
- {
- m_AudioFormat.SetCurSel(0);
- }
-
- for (i = 0; i < m_nVideoIndex; i++)
- {
- m_VideoCompressor.AddString(m_strVideoCompressor[i]);
- }
- for (i = 0; i < m_nAudioIndex; i++)
- {
- m_AudioCompressor.AddString(m_strAudioCompressor[i]);
- }
-
- if (m_szVideoCompressor[0] == 0)
- {
- i = m_VideoCompressor.FindString(-1, "Cinepak Codec by Radius");
- if (i < 0)
- {
- i = 0;
- }
-
- m_VideoCompressor.SetCurSel(i);
- }
- else
- {
- m_VideoCompressor.SelectString(-1, m_szVideoCompressor);
- }
-
- if (m_szAudioCompressor[0] == 0)
- {
- i = m_AudioCompressor.FindString(-1, "PCM");
- if (i < 0)
- {
- i = 0;
- }
-
- m_AudioCompressor.SetCurSel(i);
- }
- else
- {
- m_AudioCompressor.SelectString(-1, m_szAudioCompressor);
- }
-
- m_VideoCompressor.GetLBText(m_VideoCompressor.GetCurSel(), m_szVideoCompressor);
- m_AudioCompressor.GetLBText(m_AudioCompressor.GetCurSel(), m_szAudioCompressor);
- m_nAudioFormat = m_AudioFormat.GetItemData(m_AudioFormat.GetCurSel());
-
- return TRUE; // return TRUE unless you set the focus to a control
- // EXCEPTION: OCX Property Pages should return FALSE
- }
-
- void CMMSave::OnSelchangeAudioCompressor()
- {
- m_AudioCompressor.GetLBText(m_AudioCompressor.GetCurSel(), m_szAudioCompressor);
- }
-
- void CMMSave::OnSelchangeAudioFormat()
- {
- m_nAudioFormat = m_AudioFormat.GetItemData(m_AudioFormat.GetCurSel());
- }
-
- void CMMSave::OnSelchangeVideoCompressor()
- {
- m_VideoCompressor.GetLBText(m_VideoCompressor.GetCurSel(), m_szVideoCompressor);
- }
-