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

  1. //======================================================================
  2. // -- VideoDlg.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. // VideoDlg.cpp : インプリメンテーション ファイル
  19. //
  20.  
  21. #include "stdafx.h"
  22. #include "Encode.h"
  23. #include "VideoDlg.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. // CVideoDlg ダイアログ
  35.  
  36.  
  37. CVideoDlg::CVideoDlg(CWnd* pParent /*=NULL*/)
  38.     : CDialog(CVideoDlg::IDD, pParent)
  39. {
  40.     //{{AFX_DATA_INIT(CVideoDlg)
  41.     //}}AFX_DATA_INIT
  42. }
  43.  
  44.  
  45. void CVideoDlg::DoDataExchange(CDataExchange* pDX)
  46. {
  47.     CDialog::DoDataExchange(pDX);
  48.     //{{AFX_DATA_MAP(CVideoDlg)
  49.     DDX_Control(pDX, IDC_EDIT_CONTRAST, m_Edit_Contrast);
  50.     DDX_Control(pDX, IDC_EDIT_SATURATION, m_Edit_Saturation);
  51.     DDX_Control(pDX, IDC_EDIT_HUE, m_Edit_Hue);
  52.     DDX_Control(pDX, IDC_EDIT_BRIGHTNESS, m_Edit_Brightness);
  53.     DDX_Control(pDX, IDC_CHECK_MONITOR, m_Check_Monitor);
  54.     //}}AFX_DATA_MAP
  55. }
  56.  
  57.  
  58. BEGIN_MESSAGE_MAP(CVideoDlg, CDialog)
  59.     //{{AFX_MSG_MAP(CVideoDlg)
  60.     //}}AFX_MSG_MAP
  61. END_MESSAGE_MAP()
  62.  
  63. /////////////////////////////////////////////////////////////////////////////
  64. // CVideoDlg メッセージ ハンドラ
  65.  
  66. //----------------------------------------------------------------------
  67. // #[ CVideoDlg::OnInitDialog ]                                         
  68. //                                                                      
  69. // 機能     ビデオパラメータの設定                                      
  70. //                                                                      
  71. //  引数:      なし                                                    
  72. //                                                                      
  73. //  戻り値:    BOOL    TRUE                                            
  74. //                      FALSE                                           
  75. //                                                                      
  76. //----------------------------------------------------------------------
  77. // #[ CVideoDlg::OnInitDialog ]                                         
  78. //                                                                      
  79. //  Function:   Initialize video dialog                                 
  80. //                                                                      
  81. //      Parameters:     none                                            
  82. //                                                                      
  83. //      Return value:   BOOL    TRUE                                    
  84. //                              FALSE                                   
  85. //                                                                      
  86. //----------------------------------------------------------------------
  87. BOOL CVideoDlg::OnInitDialog() 
  88. {
  89.     ENC_VIDEO_PARAMETER enc_video_param;
  90.     ENC_RETURN      enc_return;
  91.     CString     strMessage;
  92.     char    szText[32];
  93.  
  94.     CDialog::OnInitDialog();
  95.  
  96.     // ビデオパラメータの取得
  97.     // Get video parameters
  98.     enc_return = ENC_Get_Video_Parameter(ENC_ID, &enc_video_param);
  99.     if(enc_return != ENC_SUCCESS)
  100.     {
  101.         strMessage.LoadString(IDC_ERROR_GET_PARAMETER);
  102.         MessageBox(strMessage);
  103.         return FALSE;
  104.     }
  105.  
  106.     // 入力ソースの設定
  107.     // Set input source
  108.     switch(enc_video_param.fInputSource)
  109.     {
  110.     case ENC_VIDEO_INPUT_SOURCE_COMPOSITE:
  111.         CheckRadioButton(IDC_RADIO_COMPOSITE, IDC_RADIO_SVIDEO, IDC_RADIO_COMPOSITE);
  112.         break;
  113.     default:
  114.         CheckRadioButton(IDC_RADIO_COMPOSITE, IDC_RADIO_SVIDEO, IDC_RADIO_SVIDEO);
  115.         break;
  116.     }
  117.  
  118.     // 放送規格の設定
  119.     // Set Color System
  120.     switch(enc_video_param.TV_System)
  121.     {
  122.     case ENC_VIDEO_TV_SYSTEM_NTSC:
  123.         CheckRadioButton(IDC_RADIO_NTSC, IDC_RADIO_PAL, IDC_RADIO_NTSC);
  124.         break;
  125.     default:
  126.         CheckRadioButton(IDC_RADIO_NTSC, IDC_RADIO_PAL, IDC_RADIO_PAL);
  127.         break;
  128.     }
  129.  
  130.     // モニター出力の設定
  131.     // Set output monitor
  132.     m_Check_Monitor.SetCheck(enc_video_param.fOutputMonitor ? TRUE : FALSE);
  133.  
  134.     wsprintf(szText, "%ld", enc_video_param.nInputBrightness);
  135.     m_Edit_Brightness.SetWindowText(szText);
  136.     wsprintf(szText, "%ld", enc_video_param.nInputContrast);
  137.     m_Edit_Contrast.SetWindowText(szText);
  138.     wsprintf(szText, "%ld", enc_video_param.nInputHue);
  139.     m_Edit_Hue.SetWindowText(szText);
  140.     wsprintf(szText, "%ld", enc_video_param.nInputSaturation);
  141.     m_Edit_Saturation.SetWindowText(szText);
  142.  
  143.     return TRUE;  // コントロールにフォーカスを設定しないとき、戻り値は TRUE となります
  144.                   // 例外: OCX プロパティ ページの戻り値は FALSE となります
  145. }
  146.  
  147. //----------------------------------------------------------------------
  148. // #[ CVideoDlg::OnOK ]                                                 
  149. //                                                                      
  150. // 機能     ビデオパラメータの設定を有効にする                          
  151. //                                                                      
  152. //  引数:      なし                                                    
  153. //                                                                      
  154. //  戻り値:    なし                                                    
  155. //                                                                      
  156. //----------------------------------------------------------------------
  157. // #[ CVideoDlg::OnOK ]                                                 
  158. //                                                                      
  159. //  Function:   Set video parameters                                    
  160. //                                                                      
  161. //      Parameters:     none                                            
  162. //                                                                      
  163. //      Return value:   none                                            
  164. //                                                                      
  165. //----------------------------------------------------------------------
  166. void CVideoDlg::OnOK() 
  167. {
  168.     ENC_VIDEO_PARAMETER enc_video_param;
  169.     ENC_RETURN      enc_return;
  170.     CString     strMessage;
  171.     char    szText[32];
  172.     int     nID;
  173.     UINT    fMonitor;
  174.  
  175.     // 現在の設定値を取得する
  176.     // Get video parameter
  177.     enc_return = ENC_Get_Video_Parameter(ENC_ID, &enc_video_param);
  178.     if(enc_return != ENC_SUCCESS)
  179.     {
  180.         strMessage.LoadString(IDC_ERROR_GET_PARAMETER);
  181.         MessageBox(strMessage);
  182.         return;
  183.     }
  184.  
  185.     // 入力ソースの設定
  186.     // Check input source
  187.     nID = GetCheckedRadioButton(IDC_RADIO_COMPOSITE, IDC_RADIO_SVIDEO);
  188.     if(nID == IDC_RADIO_COMPOSITE)
  189.         enc_video_param.fInputSource = ENC_VIDEO_INPUT_SOURCE_COMPOSITE;
  190.     else
  191.         enc_video_param.fInputSource = ENC_VIDEO_INPUT_SOURCE_SVIDEO;
  192.  
  193.     // 放送規格の設定
  194.     // Check color system
  195.     nID = GetCheckedRadioButton(IDC_RADIO_NTSC, IDC_RADIO_PAL);
  196.     if(nID == IDC_RADIO_NTSC)
  197.         enc_video_param.TV_System = ENC_VIDEO_TV_SYSTEM_NTSC;
  198.     else
  199.         enc_video_param.TV_System = ENC_VIDEO_TV_SYSTEM_PAL;
  200.  
  201.     // モニター出力の設定
  202.     // Check output monitor
  203.     if(m_Check_Monitor.GetCheck() == TRUE)
  204.         enc_video_param.fOutputMonitor = TRUE;
  205.     else
  206.         enc_video_param.fOutputMonitor = FALSE;
  207.  
  208.     m_Edit_Brightness.GetWindowText(szText, sizeof(szText));
  209.     enc_video_param.nInputBrightness = atol(szText);
  210.     m_Edit_Contrast.GetWindowText(szText, sizeof(szText));
  211.     enc_video_param.nInputContrast = atol(szText);
  212.     m_Edit_Hue.GetWindowText(szText, sizeof(szText));
  213.     enc_video_param.nInputHue = atol(szText);
  214.     m_Edit_Saturation.GetWindowText(szText, sizeof(szText));
  215.     enc_video_param.nInputSaturation = atol(szText);
  216.  
  217.     // モニターの状態の取得
  218.     // Get monitor state
  219.     enc_return = ENC_Get_Monitor_Status(ENC_ID, &fMonitor);
  220.     if(enc_return == ENC_SUCCESS)
  221.     {
  222.         if(fMonitor)
  223.         {
  224.             // モニター出力を止める
  225.             // Stop output monitor
  226.             ENC_Stop_Monitor(ENC_ID);
  227.         }
  228.     }
  229.  
  230.     // 新しい値を設定する
  231.     // Set video parameters
  232.     enc_return = ENC_Set_Video_Parameter(ENC_ID, &enc_video_param);
  233.     if(enc_return != ENC_SUCCESS)
  234.     {
  235.         strMessage.LoadString(IDC_ERROR_SET_PARAMETER);
  236.         MessageBox(strMessage);
  237.     }
  238.  
  239.     if(fMonitor)
  240.     {
  241.         // モニター出力を開始する
  242.         // Start output monitor
  243.         enc_return = ENC_Start_Monitor(ENC_ID);
  244.         if(enc_return != ENC_SUCCESS)
  245.         {
  246.             strMessage.LoadString(IDC_ERROR_START_MONITOR);
  247.             MessageBox(strMessage);
  248.         }
  249.     }
  250.  
  251.     CDialog::OnOK();
  252. }
  253.