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
/
AudioEncDlg.cpp
< prev
next >
Wrap
C/C++ Source or Header
|
2001-02-09
|
12KB
|
302 lines
//======================================================================
// -- AudioEncDlg.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.
//
//======================================================================
// AudioEncDlg.cpp : インプリメンテーション ファイル
//
#include "stdafx.h"
#include "Encode.h"
#include "AudioEncDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern int ENC_ID;
/////////////////////////////////////////////////////////////////////////////
// CAudioEncDlg ダイアログ
CAudioEncDlg::CAudioEncDlg(CWnd* pParent /*=NULL*/)
: CDialog(CAudioEncDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CAudioEncDlg)
//}}AFX_DATA_INIT
}
void CAudioEncDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAudioEncDlg)
DDX_Control(pDX, IDC_EDIT_FREQ, m_Edit_Freq);
DDX_Control(pDX, IDC_EDIT_BITRATE, m_Edit_Bitrate);
DDX_Control(pDX, IDC_CHECK_PROTECTION, m_Check_Protection);
DDX_Control(pDX, IDC_CHECK_ORIGINAL, m_Check_Original);
DDX_Control(pDX, IDC_CHECK_COPYRIGHT, m_Check_Copyright);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAudioEncDlg, CDialog)
//{{AFX_MSG_MAP(CAudioEncDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CAudioEncDlg メッセージ ハンドラ
//----------------------------------------------------------------------
// #[ CAudioEncDlg::OnInitDialog ]
//
// 機能 オーディオエンコードパラメータの設定
//
// 引数: なし
//
// 戻り値: BOOL TRUE
// FALSE
//
//----------------------------------------------------------------------
// #[ CAudioEncDlg::OnInitDialog ]
//
// Function: Initialize audio encode dialog
//
// Parameters: none
//
// Return value: BOOL TRUE
// FALSE
//
//----------------------------------------------------------------------
BOOL CAudioEncDlg::OnInitDialog()
{
ENC_AUDIO_ENCODE_PARAMETER enc_encode_param;
ENC_AUDIO_PARAMETER enc_audio_param;
ENC_RETURN enc_return;
CString strMessage;
char szText[32];
CDialog::OnInitDialog();
// TODO: この位置に初期化の補足処理を追加してください
enc_return = ENC_Get_Audio_Parameter(ENC_ID, &enc_audio_param);
if(enc_return != ENC_SUCCESS)
{
strMessage.LoadString(IDC_ERROR_GET_PARAMETER);
MessageBox(strMessage);
return FALSE;
}
enc_return = ENC_Get_Audio_Encode_Parameter(ENC_ID, & enc_encode_param);
if(enc_return != ENC_SUCCESS)
{
strMessage.LoadString(IDC_ERROR_GET_PARAMETER);
MessageBox(strMessage);
return FALSE;
}
// 周波数の現在値の設定
// Set Frequency
wsprintf(szText, "%ld", enc_audio_param.dwSamplingFrequency);
m_Edit_Freq.SetWindowText(szText);
// ビットレートの現在値の設定
// Set Bitrate
wsprintf(szText, "%ld", enc_encode_param.AudioBitrate);
m_Edit_Bitrate.SetWindowText(szText);
// プロテクション、コピーライト、オリジナルの設定
// Check Protection,CopyRight,Original
m_Check_Protection.SetCheck(enc_encode_param.fProtection ? TRUE : FALSE);
m_Check_Copyright.SetCheck(enc_encode_param.fCopyright ? TRUE : FALSE);
m_Check_Original.SetCheck(enc_encode_param.fOriginal ? TRUE : FALSE);
// チャネルの設定
// Set chanel
switch(enc_encode_param.Channel_Num)
{
case ENCAEPARAM_CHANNEL_NUM_STEREO:
CheckRadioButton(IDC_RADIO_STEREO, IDC_RADIO_JOINT, IDC_RADIO_STEREO);
break;
case ENCAEPARAM_CHANNEL_NUM_MONO:
CheckRadioButton(IDC_RADIO_STEREO, IDC_RADIO_JOINT, IDC_RADIO_MONO);
break;
case ENCAEPARAM_CHANNEL_NUM_DUAL_MONO:
CheckRadioButton(IDC_RADIO_STEREO, IDC_RADIO_JOINT, IDC_RADIO_DUAL);
break;
case ENCAEPARAM_CHANNEL_NUM_JOINT_STEREO:
CheckRadioButton(IDC_RADIO_STEREO, IDC_RADIO_JOINT, IDC_RADIO_JOINT);
break;
default:
break;
}
// エンファシスの設定
// Set Emphasis
switch(enc_encode_param.fEmphasis)
{
case ENCAEPARAM_EMPHASIS_NONE:
CheckRadioButton(IDC_RADIO_NONE, IDC_RADIO_CCITT, IDC_RADIO_NONE);
break;
case ENCAEPARAM_EMPHASIS_5015:
CheckRadioButton(IDC_RADIO_NONE, IDC_RADIO_CCITT, IDC_RADIO_5015);
break;
case ENCAEPARAM_EMPHASIS_CCITT:
CheckRadioButton(IDC_RADIO_NONE, IDC_RADIO_CCITT, IDC_RADIO_CCITT);
break;
default:
break;
}
return TRUE; // コントロールにフォーカスを設定しないとき、戻り値は TRUE となります
// 例外: OCX プロパティ ページの戻り値は FALSE となります
}
//----------------------------------------------------------------------
// #[ CAudioEncDlg::OnOK ]
//
// 機能 オーディオエンコードパラメータの設定を有効にする
//
// 引数: なし
//
// 戻り値: なし
//
//----------------------------------------------------------------------
// #[ CAudioEncDlg::OnOK ]
//
// Function: Set audio encode parameters
//
// Parameters: none
//
// Return value: none
//
//----------------------------------------------------------------------
void CAudioEncDlg::OnOK()
{
ENC_AUDIO_ENCODE_PARAMETER enc_encode_param;
ENC_AUDIO_PARAMETER enc_audio_param;
ENC_RETURN enc_return;
CString strMessage;
char szText[32];
int nID;
// オーディオパラメータの取得
// Get audio parameters
enc_return = ENC_Get_Audio_Parameter(ENC_ID, &enc_audio_param);
if(enc_return != ENC_SUCCESS)
{
strMessage.LoadString(IDC_ERROR_GET_PARAMETER);
MessageBox(strMessage);
return;
}
// オーディオエンコードパラメータの取得
// Get audio encode parameters
enc_return = ENC_Get_Audio_Encode_Parameter(ENC_ID, & enc_encode_param);
if(enc_return != ENC_SUCCESS)
{
strMessage.LoadString(IDC_ERROR_GET_PARAMETER);
MessageBox(strMessage);
return;
}
// 周波数の設定を取得
// Get Frequency
m_Edit_Freq.GetWindowText(szText,sizeof(szText));
enc_audio_param.dwSamplingFrequency = atol(szText);
// ビットレートの値を取得
// Get bitrate
m_Edit_Bitrate.GetWindowText(szText,sizeof(szText));
enc_encode_param.AudioBitrate = atol(szText);
// プロテクション、コピーライト、オリジナルを調べる
// Check Protection, CopyRight, Original
enc_encode_param.fProtection = m_Check_Protection.GetCheck();
enc_encode_param.fCopyright = m_Check_Copyright.GetCheck();
enc_encode_param.fOriginal = m_Check_Original.GetCheck();
// チャネルを調べる
// Check chanel
nID = GetCheckedRadioButton(IDC_RADIO_STEREO, IDC_RADIO_JOINT);
switch(nID)
{
case IDC_RADIO_STEREO:
enc_encode_param.Channel_Num = ENCAEPARAM_CHANNEL_NUM_STEREO;
break;
case IDC_RADIO_MONO:
enc_encode_param.Channel_Num = ENCAEPARAM_CHANNEL_NUM_MONO;
break;
case IDC_RADIO_DUAL:
enc_encode_param.Channel_Num = ENCAEPARAM_CHANNEL_NUM_DUAL_MONO;
break;
case IDC_RADIO_JOINT:
enc_encode_param.Channel_Num = ENCAEPARAM_CHANNEL_NUM_JOINT_STEREO;
break;
default:
break;
}
// エンファシスを調べる
// Check Emphasis
nID = GetCheckedRadioButton(IDC_RADIO_NONE, IDC_RADIO_CCITT);
switch(nID)
{
case IDC_RADIO_NONE:
enc_encode_param.fEmphasis = ENCAEPARAM_EMPHASIS_NONE;
break;
case IDC_RADIO_5015:
enc_encode_param.fEmphasis = ENCAEPARAM_EMPHASIS_5015;
break;
case IDC_RADIO_CCITT:
enc_encode_param.fEmphasis = ENCAEPARAM_EMPHASIS_CCITT;
break;
default:
break;
}
// モニターを停止する
// Stop output monitor
ENC_Stop_Monitor(ENC_ID);
// オーディオパラメータを設定する
// Set audio parameters
enc_return = ENC_Set_Audio_Parameter(ENC_ID, &enc_audio_param);
if(enc_return != ENC_SUCCESS)
{
strMessage.LoadString(IDC_ERROR_SET_PARAMETER);
MessageBox(strMessage);
return;
}
// オーディオエンコードパラメータを設定する
// Set audio encode parameters
enc_return = ENC_Set_Audio_Encode_Parameter(ENC_ID, &enc_encode_param);
if(enc_return != ENC_SUCCESS)
{
strMessage.LoadString(IDC_ERROR_SET_PARAMETER);
MessageBox(strMessage);
return;
}
ENC_Start_Monitor(ENC_ID);
CDialog::OnOK();
}