www.pudn.com > DalsaNetlink.rar > CyMovieSelectionDialog.cpp


// CyMovieSelectionDialog.cpp : implementation file 
// 
 
#include "stdafx.h" 
 
#include  
 
#include "CyVideoCompressor.h" 
 
#include "CyMovieSelectionDialog.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CCyMovieSelectionDialog dialog 
 
 
CyMovieSelectionDialog::CyMovieSelectionDialog(CWnd* pParent /*=NULL*/) 
	: CDialog(CyMovieSelectionDialog::IDD, pParent) 
{ 
	//{{AFX_DATA_INIT(CyMovieSelectionDialog) 
	mCodecName = _T(""); 
	mMoviePathname = _T(""); 
	//}}AFX_DATA_INIT 
 
	memset( &mCOMPVARS, 0, sizeof( COMPVARS ) ); 
} 
 
 
void CyMovieSelectionDialog::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CyMovieSelectionDialog) 
	DDX_Control(pDX, IDOK, mOKBtn); 
	DDX_Text(pDX, IDC_CODEC, mCodecName); 
	DDX_Text(pDX, IDC_MOVIE_FILENAME, mMoviePathname); 
	//}}AFX_DATA_MAP 
} 
 
 
BEGIN_MESSAGE_MAP(CyMovieSelectionDialog, CDialog) 
	//{{AFX_MSG_MAP(CyMovieSelectionDialog) 
	ON_BN_CLICKED(IDC_MOVIE_BROWSE_BTN, OnMovieBrowseBtn) 
	ON_BN_CLICKED(IDC_CHOOSE_CODEC_BTN, OnChooseCodecBtn) 
	ON_EN_CHANGE(IDC_MOVIE_FILENAME, OnChangeMovieFilename) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CyMovieSelectionDialog message handlers 
 
BOOL CyMovieSelectionDialog::OnInitDialog()  
{ 
	CDialog::OnInitDialog(); 
 
	UpdateCodecName(); 
	 
	return TRUE;  // return TRUE unless you set the focus to a control 
	              // EXCEPTION: OCX Property Pages should return FALSE 
} 
 
void CyMovieSelectionDialog::OnMovieBrowseBtn()  
{ 
	static char BASED_CODE szFilter[] =  
		"Movie files (*.avi)|*.avi|All Files (*.*)|*.*||"; 
 
	CFileDialog lDlg( true, 
                      "avi", 
                      NULL, 
                      OFN_CREATEPROMPT | OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY, 
                      szFilter, 
                      this ); 
 
	if( lDlg.DoModal() != IDOK ) 
		return; 
 
	UpdateData(TRUE); 
	mMoviePathname = lDlg.GetPathName(); 
	UpdateData(FALSE); 
 
	mOKBtn.EnableWindow( !mMoviePathname.IsEmpty() && !mCodecName.IsEmpty() ); 
} 
 
void CyMovieSelectionDialog::OnChooseCodecBtn()  
{ 
	if( CyVideoCompressor::ChooseCompressor( &mCOMPVARS, GetSafeHwnd() ) != CY_RESULT_OK ) 
		return; 
 
	UpdateCodecName(); 
} 
 
void CyMovieSelectionDialog::UpdateCodecName()  
{ 
	string lCodecName; 
 
	if( CyVideoCompressor::GetCompressorName( &mCOMPVARS, lCodecName ) != CY_RESULT_OK ) 
	{ 
		// TODO:Proper error handling 
		return; 
	} 
 
	UpdateData( TRUE ); 
	mCodecName = lCodecName.c_str(); 
	UpdateData( FALSE ); 
 
	mOKBtn.EnableWindow( !mMoviePathname.IsEmpty() && !mCodecName.IsEmpty() ); 
} 
 
void CyMovieSelectionDialog::OnChangeMovieFilename() 
{ 
	UpdateData( TRUE ); 
	mOKBtn.EnableWindow( !mMoviePathname.IsEmpty() && !mCodecName.IsEmpty() ); 
}