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 >
C/C++ Source or Header  |  2001-02-09  |  12KB  |  302 lines

  1. //======================================================================
  2. // -- AudioEncDlg.cpp --                                                
  3. //                                                                      
  4. //  MVR-D2000                                                           
  5. //                                  エンコード  サンプルプログラム      
  6. //                                  Encode      sample program          
  7. //                                                                      
  8. // Copyright (C) 1999-2000 Canopus Co., Ltd. All rights reserved.       
  9. //======================================================================
  10. //                                                                      
  11. // -- サンプルプログラムをご使用になる前に ---                          
  12. // -- Before use this sample program... --                              
  13. //                                                                      
  14. // このサンプルプログラムは、カノープス製品を使うためにご使用ください。 
  15. //  Please use this sample progeam to use products of canopus.          
  16. //                                                                      
  17. //======================================================================
  18. // AudioEncDlg.cpp : インプリメンテーション ファイル
  19. //
  20.  
  21. #include "stdafx.h"
  22. #include "Encode.h"
  23. #include "AudioEncDlg.h"
  24.  
  25. #ifdef _DEBUG
  26. #define new DEBUG_NEW
  27. #undef THIS_FILE
  28. static char THIS_FILE[] = __FILE__;
  29. #endif
  30.  
  31. extern    int    ENC_ID;
  32.  
  33. /////////////////////////////////////////////////////////////////////////////
  34. // CAudioEncDlg ダイアログ
  35.  
  36.  
  37. CAudioEncDlg::CAudioEncDlg(CWnd* pParent /*=NULL*/)
  38.     : CDialog(CAudioEncDlg::IDD, pParent)
  39. {
  40.     //{{AFX_DATA_INIT(CAudioEncDlg)
  41.     //}}AFX_DATA_INIT
  42. }
  43.  
  44.  
  45. void CAudioEncDlg::DoDataExchange(CDataExchange* pDX)
  46. {
  47.     CDialog::DoDataExchange(pDX);
  48.     //{{AFX_DATA_MAP(CAudioEncDlg)
  49.     DDX_Control(pDX, IDC_EDIT_FREQ, m_Edit_Freq);
  50.     DDX_Control(pDX, IDC_EDIT_BITRATE, m_Edit_Bitrate);
  51.     DDX_Control(pDX, IDC_CHECK_PROTECTION, m_Check_Protection);
  52.     DDX_Control(pDX, IDC_CHECK_ORIGINAL, m_Check_Original);
  53.     DDX_Control(pDX, IDC_CHECK_COPYRIGHT, m_Check_Copyright);
  54.     //}}AFX_DATA_MAP
  55. }
  56.  
  57.  
  58. BEGIN_MESSAGE_MAP(CAudioEncDlg, CDialog)
  59.     //{{AFX_MSG_MAP(CAudioEncDlg)
  60.     //}}AFX_MSG_MAP
  61. END_MESSAGE_MAP()
  62.  
  63. /////////////////////////////////////////////////////////////////////////////
  64. // CAudioEncDlg メッセージ ハンドラ
  65.  
  66. //----------------------------------------------------------------------
  67. // #[ CAudioEncDlg::OnInitDialog ]                                      
  68. //                                                                      
  69. // 機能     オーディオエンコードパラメータの設定                        
  70. //                                                                      
  71. //  引数:      なし                                                    
  72. //                                                                      
  73. //  戻り値:    BOOL    TRUE                                            
  74. //                      FALSE                                           
  75. //                                                                      
  76. //----------------------------------------------------------------------
  77. // #[ CAudioEncDlg::OnInitDialog ]                                      
  78. //                                                                      
  79. //  Function:   Initialize audio encode dialog                          
  80. //                                                                      
  81. //      Parameters:     none                                            
  82. //                                                                      
  83. //      Return value:   BOOL    TRUE                                    
  84. //                              FALSE                                   
  85. //                                                                      
  86. //----------------------------------------------------------------------
  87. BOOL CAudioEncDlg::OnInitDialog() 
  88. {
  89.     ENC_AUDIO_ENCODE_PARAMETER  enc_encode_param;
  90.     ENC_AUDIO_PARAMETER     enc_audio_param;
  91.     ENC_RETURN  enc_return;
  92.     CString     strMessage;
  93.     char    szText[32];
  94.  
  95.     CDialog::OnInitDialog();
  96.  
  97.     // TODO: この位置に初期化の補足処理を追加してください
  98.     enc_return = ENC_Get_Audio_Parameter(ENC_ID, &enc_audio_param);
  99.     if(enc_return != ENC_SUCCESS)
  100.     {
  101.         strMessage.LoadString(IDC_ERROR_GET_PARAMETER);
  102.         MessageBox(strMessage);
  103.         return FALSE;
  104.     }
  105.  
  106.     enc_return = ENC_Get_Audio_Encode_Parameter(ENC_ID, & enc_encode_param);
  107.     if(enc_return != ENC_SUCCESS)
  108.     {
  109.         strMessage.LoadString(IDC_ERROR_GET_PARAMETER);
  110.         MessageBox(strMessage);
  111.         return FALSE;
  112.     }
  113.  
  114.     // 周波数の現在値の設定
  115.     // Set Frequency
  116.     wsprintf(szText, "%ld", enc_audio_param.dwSamplingFrequency);
  117.     m_Edit_Freq.SetWindowText(szText);
  118.  
  119.     // ビットレートの現在値の設定
  120.     // Set Bitrate
  121.     wsprintf(szText, "%ld", enc_encode_param.AudioBitrate);
  122.     m_Edit_Bitrate.SetWindowText(szText);
  123.  
  124.     // プロテクション、コピーライト、オリジナルの設定
  125.     // Check Protection,CopyRight,Original
  126.     m_Check_Protection.SetCheck(enc_encode_param.fProtection ? TRUE : FALSE);
  127.     m_Check_Copyright.SetCheck(enc_encode_param.fCopyright ? TRUE : FALSE);
  128.     m_Check_Original.SetCheck(enc_encode_param.fOriginal ? TRUE : FALSE);
  129.  
  130.     // チャネルの設定
  131.     // Set chanel
  132.     switch(enc_encode_param.Channel_Num)
  133.     {
  134.     case ENCAEPARAM_CHANNEL_NUM_STEREO:
  135.         CheckRadioButton(IDC_RADIO_STEREO, IDC_RADIO_JOINT, IDC_RADIO_STEREO);
  136.         break;
  137.     case ENCAEPARAM_CHANNEL_NUM_MONO:
  138.         CheckRadioButton(IDC_RADIO_STEREO, IDC_RADIO_JOINT, IDC_RADIO_MONO);
  139.         break;
  140.     case ENCAEPARAM_CHANNEL_NUM_DUAL_MONO:
  141.         CheckRadioButton(IDC_RADIO_STEREO, IDC_RADIO_JOINT, IDC_RADIO_DUAL);
  142.         break;
  143.     case ENCAEPARAM_CHANNEL_NUM_JOINT_STEREO:
  144.         CheckRadioButton(IDC_RADIO_STEREO, IDC_RADIO_JOINT, IDC_RADIO_JOINT);
  145.         break;
  146.     default:
  147.         break;
  148.     }
  149.  
  150.     // エンファシスの設定
  151.     // Set Emphasis
  152.     switch(enc_encode_param.fEmphasis)
  153.     {
  154.     case ENCAEPARAM_EMPHASIS_NONE:
  155.         CheckRadioButton(IDC_RADIO_NONE, IDC_RADIO_CCITT, IDC_RADIO_NONE);
  156.         break;
  157.     case ENCAEPARAM_EMPHASIS_5015:
  158.         CheckRadioButton(IDC_RADIO_NONE, IDC_RADIO_CCITT, IDC_RADIO_5015);
  159.         break;
  160.     case ENCAEPARAM_EMPHASIS_CCITT:
  161.         CheckRadioButton(IDC_RADIO_NONE, IDC_RADIO_CCITT, IDC_RADIO_CCITT);
  162.         break;
  163.     default:
  164.         break;
  165.     }
  166.  
  167.     return TRUE;  // コントロールにフォーカスを設定しないとき、戻り値は TRUE となります
  168.                   // 例外: OCX プロパティ ページの戻り値は FALSE となります
  169. }
  170.  
  171. //----------------------------------------------------------------------
  172. // #[ CAudioEncDlg::OnOK ]                                              
  173. //                                                                      
  174. //  機能        オーディオエンコードパラメータの設定を有効にする        
  175. //                                                                      
  176. //  引数:      なし                                                    
  177. //                                                                      
  178. //  戻り値:    なし                                                    
  179. //                                                                      
  180. //----------------------------------------------------------------------
  181. // #[ CAudioEncDlg::OnOK ]                                              
  182. //                                                                      
  183. //  Function:   Set audio encode parameters                             
  184. //                                                                      
  185. //      Parameters:     none                                            
  186. //                                                                      
  187. //      Return value:   none                                            
  188. //                                                                      
  189. //----------------------------------------------------------------------
  190. void CAudioEncDlg::OnOK() 
  191. {
  192.     ENC_AUDIO_ENCODE_PARAMETER  enc_encode_param;
  193.     ENC_AUDIO_PARAMETER     enc_audio_param;
  194.     ENC_RETURN  enc_return;
  195.     CString     strMessage;
  196.     char    szText[32];
  197.     int     nID;
  198.  
  199.     // オーディオパラメータの取得
  200.     // Get audio parameters
  201.     enc_return = ENC_Get_Audio_Parameter(ENC_ID, &enc_audio_param);
  202.     if(enc_return != ENC_SUCCESS)
  203.     {
  204.         strMessage.LoadString(IDC_ERROR_GET_PARAMETER);
  205.         MessageBox(strMessage);
  206.         return;
  207.     }
  208.  
  209.     // オーディオエンコードパラメータの取得
  210.     // Get audio encode parameters
  211.     enc_return = ENC_Get_Audio_Encode_Parameter(ENC_ID, & enc_encode_param);
  212.     if(enc_return != ENC_SUCCESS)
  213.     {
  214.         strMessage.LoadString(IDC_ERROR_GET_PARAMETER);
  215.         MessageBox(strMessage);
  216.         return;
  217.     }
  218.  
  219.     // 周波数の設定を取得
  220.     // Get Frequency
  221.     m_Edit_Freq.GetWindowText(szText,sizeof(szText));
  222.     enc_audio_param.dwSamplingFrequency = atol(szText);
  223.  
  224.     // ビットレートの値を取得
  225.     // Get bitrate
  226.     m_Edit_Bitrate.GetWindowText(szText,sizeof(szText));
  227.     enc_encode_param.AudioBitrate = atol(szText);
  228.  
  229.     // プロテクション、コピーライト、オリジナルを調べる
  230.     // Check Protection, CopyRight, Original
  231.     enc_encode_param.fProtection = m_Check_Protection.GetCheck();
  232.     enc_encode_param.fCopyright = m_Check_Copyright.GetCheck();
  233.     enc_encode_param.fOriginal = m_Check_Original.GetCheck();
  234.  
  235.     // チャネルを調べる
  236.     // Check chanel
  237.     nID = GetCheckedRadioButton(IDC_RADIO_STEREO, IDC_RADIO_JOINT);
  238.     switch(nID)
  239.     {
  240.     case IDC_RADIO_STEREO:
  241.         enc_encode_param.Channel_Num = ENCAEPARAM_CHANNEL_NUM_STEREO;
  242.         break;
  243.     case IDC_RADIO_MONO:
  244.         enc_encode_param.Channel_Num = ENCAEPARAM_CHANNEL_NUM_MONO;
  245.         break;
  246.     case IDC_RADIO_DUAL:
  247.         enc_encode_param.Channel_Num = ENCAEPARAM_CHANNEL_NUM_DUAL_MONO;
  248.         break;
  249.     case IDC_RADIO_JOINT:
  250.         enc_encode_param.Channel_Num = ENCAEPARAM_CHANNEL_NUM_JOINT_STEREO;
  251.         break;
  252.     default:
  253.         break;
  254.     }
  255.  
  256.     // エンファシスを調べる
  257.     // Check Emphasis
  258.     nID = GetCheckedRadioButton(IDC_RADIO_NONE, IDC_RADIO_CCITT);
  259.     switch(nID)
  260.     {
  261.     case IDC_RADIO_NONE:
  262.         enc_encode_param.fEmphasis = ENCAEPARAM_EMPHASIS_NONE;
  263.         break;
  264.     case IDC_RADIO_5015:
  265.         enc_encode_param.fEmphasis = ENCAEPARAM_EMPHASIS_5015;
  266.         break;
  267.     case IDC_RADIO_CCITT:
  268.         enc_encode_param.fEmphasis = ENCAEPARAM_EMPHASIS_CCITT;
  269.         break;
  270.     default:
  271.         break;
  272.     }
  273.  
  274.     // モニターを停止する
  275.     // Stop output monitor
  276.     ENC_Stop_Monitor(ENC_ID);
  277.  
  278.     // オーディオパラメータを設定する
  279.     // Set audio parameters
  280.     enc_return = ENC_Set_Audio_Parameter(ENC_ID, &enc_audio_param);
  281.     if(enc_return != ENC_SUCCESS)
  282.     {
  283.         strMessage.LoadString(IDC_ERROR_SET_PARAMETER);
  284.         MessageBox(strMessage);
  285.         return;
  286.     }
  287.  
  288.     // オーディオエンコードパラメータを設定する
  289.     // Set audio encode parameters
  290.     enc_return = ENC_Set_Audio_Encode_Parameter(ENC_ID, &enc_encode_param);
  291.     if(enc_return != ENC_SUCCESS)
  292.     {
  293.         strMessage.LoadString(IDC_ERROR_SET_PARAMETER);
  294.         MessageBox(strMessage);
  295.         return;
  296.     }
  297.  
  298.     ENC_Start_Monitor(ENC_ID);
  299.  
  300.     CDialog::OnOK();
  301. }
  302.