home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 2001 July
/
VPR0107B.BIN
/
DRIVER
/
CANOPUS
/
MVR32
/
mvr32.exe
/
data1.cab
/
Development_Kit
/
Vc
/
Samples
/
Encode
/
VideoDlg.cpp
< prev
next >
Wrap
C/C++ Source or Header
|
2001-02-09
|
10KB
|
253 lines
//======================================================================
// -- VideoDlg.cpp --
//
// MVR-D2000
// エンコード サンプルプログラム
// Encode sample program
//
// Copyright (C) 1999-2000 Canopus Co., Ltd. All rights reserved.
//======================================================================
//
// -- サンプルプログラムをご使用になる前に ---
// -- Before use this sample program... --
//
// このサンプルプログラムは、カノープス製品を使うためにご使用ください。
// Please use this sample progeam to use products of canopus.
//
//======================================================================
// VideoDlg.cpp : インプリメンテーション ファイル
//
#include "stdafx.h"
#include "Encode.h"
#include "VideoDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern int ENC_ID;
/////////////////////////////////////////////////////////////////////////////
// CVideoDlg ダイアログ
CVideoDlg::CVideoDlg(CWnd* pParent /*=NULL*/)
: CDialog(CVideoDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CVideoDlg)
//}}AFX_DATA_INIT
}
void CVideoDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CVideoDlg)
DDX_Control(pDX, IDC_EDIT_CONTRAST, m_Edit_Contrast);
DDX_Control(pDX, IDC_EDIT_SATURATION, m_Edit_Saturation);
DDX_Control(pDX, IDC_EDIT_HUE, m_Edit_Hue);
DDX_Control(pDX, IDC_EDIT_BRIGHTNESS, m_Edit_Brightness);
DDX_Control(pDX, IDC_CHECK_MONITOR, m_Check_Monitor);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CVideoDlg, CDialog)
//{{AFX_MSG_MAP(CVideoDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CVideoDlg メッセージ ハンドラ
//----------------------------------------------------------------------
// #[ CVideoDlg::OnInitDialog ]
//
// 機能 ビデオパラメータの設定
//
// 引数: なし
//
// 戻り値: BOOL TRUE
// FALSE
//
//----------------------------------------------------------------------
// #[ CVideoDlg::OnInitDialog ]
//
// Function: Initialize video dialog
//
// Parameters: none
//
// Return value: BOOL TRUE
// FALSE
//
//----------------------------------------------------------------------
BOOL CVideoDlg::OnInitDialog()
{
ENC_VIDEO_PARAMETER enc_video_param;
ENC_RETURN enc_return;
CString strMessage;
char szText[32];
CDialog::OnInitDialog();
// ビデオパラメータの取得
// Get video parameters
enc_return = ENC_Get_Video_Parameter(ENC_ID, &enc_video_param);
if(enc_return != ENC_SUCCESS)
{
strMessage.LoadString(IDC_ERROR_GET_PARAMETER);
MessageBox(strMessage);
return FALSE;
}
// 入力ソースの設定
// Set input source
switch(enc_video_param.fInputSource)
{
case ENC_VIDEO_INPUT_SOURCE_COMPOSITE:
CheckRadioButton(IDC_RADIO_COMPOSITE, IDC_RADIO_SVIDEO, IDC_RADIO_COMPOSITE);
break;
default:
CheckRadioButton(IDC_RADIO_COMPOSITE, IDC_RADIO_SVIDEO, IDC_RADIO_SVIDEO);
break;
}
// 放送規格の設定
// Set Color System
switch(enc_video_param.TV_System)
{
case ENC_VIDEO_TV_SYSTEM_NTSC:
CheckRadioButton(IDC_RADIO_NTSC, IDC_RADIO_PAL, IDC_RADIO_NTSC);
break;
default:
CheckRadioButton(IDC_RADIO_NTSC, IDC_RADIO_PAL, IDC_RADIO_PAL);
break;
}
// モニター出力の設定
// Set output monitor
m_Check_Monitor.SetCheck(enc_video_param.fOutputMonitor ? TRUE : FALSE);
wsprintf(szText, "%ld", enc_video_param.nInputBrightness);
m_Edit_Brightness.SetWindowText(szText);
wsprintf(szText, "%ld", enc_video_param.nInputContrast);
m_Edit_Contrast.SetWindowText(szText);
wsprintf(szText, "%ld", enc_video_param.nInputHue);
m_Edit_Hue.SetWindowText(szText);
wsprintf(szText, "%ld", enc_video_param.nInputSaturation);
m_Edit_Saturation.SetWindowText(szText);
return TRUE; // コントロールにフォーカスを設定しないとき、戻り値は TRUE となります
// 例外: OCX プロパティ ページの戻り値は FALSE となります
}
//----------------------------------------------------------------------
// #[ CVideoDlg::OnOK ]
//
// 機能 ビデオパラメータの設定を有効にする
//
// 引数: なし
//
// 戻り値: なし
//
//----------------------------------------------------------------------
// #[ CVideoDlg::OnOK ]
//
// Function: Set video parameters
//
// Parameters: none
//
// Return value: none
//
//----------------------------------------------------------------------
void CVideoDlg::OnOK()
{
ENC_VIDEO_PARAMETER enc_video_param;
ENC_RETURN enc_return;
CString strMessage;
char szText[32];
int nID;
UINT fMonitor;
// 現在の設定値を取得する
// Get video parameter
enc_return = ENC_Get_Video_Parameter(ENC_ID, &enc_video_param);
if(enc_return != ENC_SUCCESS)
{
strMessage.LoadString(IDC_ERROR_GET_PARAMETER);
MessageBox(strMessage);
return;
}
// 入力ソースの設定
// Check input source
nID = GetCheckedRadioButton(IDC_RADIO_COMPOSITE, IDC_RADIO_SVIDEO);
if(nID == IDC_RADIO_COMPOSITE)
enc_video_param.fInputSource = ENC_VIDEO_INPUT_SOURCE_COMPOSITE;
else
enc_video_param.fInputSource = ENC_VIDEO_INPUT_SOURCE_SVIDEO;
// 放送規格の設定
// Check color system
nID = GetCheckedRadioButton(IDC_RADIO_NTSC, IDC_RADIO_PAL);
if(nID == IDC_RADIO_NTSC)
enc_video_param.TV_System = ENC_VIDEO_TV_SYSTEM_NTSC;
else
enc_video_param.TV_System = ENC_VIDEO_TV_SYSTEM_PAL;
// モニター出力の設定
// Check output monitor
if(m_Check_Monitor.GetCheck() == TRUE)
enc_video_param.fOutputMonitor = TRUE;
else
enc_video_param.fOutputMonitor = FALSE;
m_Edit_Brightness.GetWindowText(szText, sizeof(szText));
enc_video_param.nInputBrightness = atol(szText);
m_Edit_Contrast.GetWindowText(szText, sizeof(szText));
enc_video_param.nInputContrast = atol(szText);
m_Edit_Hue.GetWindowText(szText, sizeof(szText));
enc_video_param.nInputHue = atol(szText);
m_Edit_Saturation.GetWindowText(szText, sizeof(szText));
enc_video_param.nInputSaturation = atol(szText);
// モニターの状態の取得
// Get monitor state
enc_return = ENC_Get_Monitor_Status(ENC_ID, &fMonitor);
if(enc_return == ENC_SUCCESS)
{
if(fMonitor)
{
// モニター出力を止める
// Stop output monitor
ENC_Stop_Monitor(ENC_ID);
}
}
// 新しい値を設定する
// Set video parameters
enc_return = ENC_Set_Video_Parameter(ENC_ID, &enc_video_param);
if(enc_return != ENC_SUCCESS)
{
strMessage.LoadString(IDC_ERROR_SET_PARAMETER);
MessageBox(strMessage);
}
if(fMonitor)
{
// モニター出力を開始する
// Start output monitor
enc_return = ENC_Start_Monitor(ENC_ID);
if(enc_return != ENC_SUCCESS)
{
strMessage.LoadString(IDC_ERROR_START_MONITOR);
MessageBox(strMessage);
}
}
CDialog::OnOK();
}