OpenCapDeviceDlg.cpp

00001 /* 
00002  *      Copyright (C) 2003-2005 Gabest
00003  *      http://www.gabest.org
00004  *
00005  *  This Program is free software; you can redistribute it and/or modify
00006  *  it under the terms of the GNU General Public License as published by
00007  *  the Free Software Foundation; either version 2, or (at your option)
00008  *  any later version.
00009  *   
00010  *  This Program is distributed in the hope that it will be useful,
00011  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
00013  *  GNU General Public License for more details.
00014  *   
00015  *  You should have received a copy of the GNU General Public License
00016  *  along with GNU Make; see the file COPYING.  If not, write to
00017  *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. 
00018  *  http://www.gnu.org/copyleft/gpl.html
00019  *
00020  */
00021 
00022 // OpenCapDeviceDlg.cpp : implementation file
00023 //
00024 
00025 #include "stdafx.h"
00026 #include "mplayerc.h"
00027 #include "OpenCapDeviceDlg.h"
00028 #include "..\..\DSUtil\DSUtil.h"
00029 
00030 static struct cc_t {long code; AnalogVideoStandard standard; const TCHAR* str;} s_countrycodes[] = 
00031 {
00032         {1, AnalogVideo_NTSC_M, _T("USA")},
00033 /*      {1, AnalogVideo_NTSC_M, _T("Anguilla")},
00034         {1, AnalogVideo_NTSC_M, _T("Antigua")},
00035         {1, AnalogVideo_NTSC_M, _T("Bahamas")},
00036         {1, AnalogVideo_NTSC_M, _T("Barbados")},
00037         {1, AnalogVideo_NTSC_M, _T("Bermuda")},
00038         {1, AnalogVideo_NTSC_M, _T("British Virgin Islands")},
00039         {1, AnalogVideo_NTSC_M, _T("Canada")},
00040         {1, AnalogVideo_NTSC_M, _T("Cayman Islands")},
00041         {1, AnalogVideo_NTSC_M, _T("Dominica")},
00042         {1, AnalogVideo_NTSC_M, _T("Dominican Republic")},
00043         {1, AnalogVideo_NTSC_M, _T("Grenada")},
00044         {1, AnalogVideo_NTSC_M, _T("Jamaica")},
00045         {1, AnalogVideo_NTSC_M, _T("Montserrat")},
00046         {1, AnalogVideo_NTSC_M, _T("Nevis")},
00047         {1, AnalogVideo_NTSC_M, _T("St. Kitts")},
00048         {1, AnalogVideo_NTSC_M, _T("St. Vincent and the Grenadines")},
00049         {1, AnalogVideo_NTSC_M, _T("Trinidad and Tobago")},
00050         {1, AnalogVideo_NTSC_M, _T("Turks and Caicos Islands")},
00051         {1, AnalogVideo_NTSC_M, _T("Barbuda")},
00052         {1, AnalogVideo_NTSC_M, _T("Puerto Rico")},
00053         {1, AnalogVideo_NTSC_M, _T("Saint Lucia")},
00054         {1, AnalogVideo_NTSC_M, _T("United States Virgin Islands")},
00055 */      {2, AnalogVideo_NTSC_M, _T("Canada")},
00056         {7, AnalogVideo_SECAM_D, _T("Russia")},
00057 /*      {7, AnalogVideo_SECAM_D, _T("Kazakhstan")},
00058         {7, AnalogVideo_SECAM_D, _T("Kyrgyzstan")},
00059         {7, AnalogVideo_SECAM_D, _T("Tajikistan")},
00060         {7, AnalogVideo_SECAM_D, _T("Turkmenistan")},
00061         {7, AnalogVideo_SECAM_D, _T("Uzbekistan")},
00062 */      {20, AnalogVideo_SECAM_B, _T("Egypt")},
00063         {27, AnalogVideo_PAL_I, _T("South Africa")},
00064         {30, AnalogVideo_SECAM_B, _T("Greece")},
00065         {31, AnalogVideo_PAL_B, _T("Netherlands")},
00066         {32, AnalogVideo_PAL_B, _T("Belgium")},
00067         {33, AnalogVideo_SECAM_L, _T("France")},
00068         {34, AnalogVideo_PAL_B, _T("Spain")},
00069         {36, AnalogVideo_SECAM_D, _T("Hungary")},
00070         {39, AnalogVideo_PAL_B, _T("Italy")},
00071         {39, AnalogVideo_PAL_B, _T("Vatican City")},
00072         {40, AnalogVideo_PAL_D, _T("Romania")},
00073         {41, AnalogVideo_PAL_B, _T("Switzerland")},
00074         {41, AnalogVideo_PAL_B, _T("Liechtenstein")},
00075         {43, AnalogVideo_PAL_B, _T("Austria")},
00076         {44, AnalogVideo_PAL_I, _T("United Kingdom")},
00077         {45, AnalogVideo_PAL_B, _T("Denmark")},
00078         {46, AnalogVideo_PAL_B, _T("Sweden")},
00079         {47, AnalogVideo_PAL_B, _T("Norway")},
00080         {48, AnalogVideo_PAL_B, _T("Poland")},
00081         {49, AnalogVideo_PAL_B, _T("Germany")},
00082         {51, AnalogVideo_NTSC_M, _T("Peru")},
00083         {52, AnalogVideo_NTSC_M, _T("Mexico")},
00084         {53, AnalogVideo_NTSC_M, _T("Cuba")},
00085         {53, AnalogVideo_NTSC_M, _T("Guantanamo Bay")},
00086         {54, AnalogVideo_PAL_N, _T("Argentina")},
00087         {55, AnalogVideo_PAL_M, _T("Brazil")},
00088         {56, AnalogVideo_NTSC_M, _T("Chile")},
00089         {57, AnalogVideo_NTSC_M, _T("Colombia")},
00090         {58, AnalogVideo_NTSC_M, _T("Bolivarian Republic of Venezuela")},
00091         {60, AnalogVideo_PAL_B, _T("Malaysia")},
00092         {61, AnalogVideo_PAL_B, _T("Australia")},
00093         {61, AnalogVideo_NTSC_M, _T("Cocos-Keeling Islands")},
00094         {62, AnalogVideo_PAL_B, _T("Indonesia")},
00095         {63, AnalogVideo_NTSC_M, _T("Philippines")},
00096         {64, AnalogVideo_PAL_B, _T("New Zealand")},
00097         {65, AnalogVideo_PAL_B, _T("Singapore")},
00098         {66, AnalogVideo_PAL_B, _T("Thailand")},
00099         {81, AnalogVideo_NTSC_M_J, _T("Japan")},
00100         {82, AnalogVideo_NTSC_M, _T("Korea (South)")},
00101         {84, AnalogVideo_NTSC_M, _T("Vietnam")},
00102         {86, AnalogVideo_PAL_D, _T("China")},
00103         {90, AnalogVideo_PAL_B, _T("Turkey")},
00104         {91, AnalogVideo_PAL_B, _T("India")},
00105         {92, AnalogVideo_PAL_B, _T("Pakistan")},
00106         {93, AnalogVideo_PAL_B, _T("Afghanistan")},
00107         {94, AnalogVideo_PAL_B, _T("Sri Lanka")},
00108         {95, AnalogVideo_NTSC_M, _T("Myanmar")},
00109         {98, AnalogVideo_SECAM_B, _T("Iran")},
00110         {212, AnalogVideo_SECAM_B, _T("Morocco")},
00111         {213, AnalogVideo_PAL_B, _T("Algeria")},
00112         {216, AnalogVideo_SECAM_B, _T("Tunisia")},
00113         {218, AnalogVideo_SECAM_B, _T("Libya")},
00114         {220, AnalogVideo_SECAM_K, _T("Gambia")},
00115         {221, AnalogVideo_SECAM_K, _T("Senegal Republic")},
00116         {222, AnalogVideo_SECAM_B, _T("Mauritania")},
00117         {223, AnalogVideo_SECAM_K, _T("Mali")},
00118         {224, AnalogVideo_SECAM_K, _T("Guinea")},
00119         {225, AnalogVideo_SECAM_K, _T("Cote D'Ivoire")},
00120         {226, AnalogVideo_SECAM_K, _T("Burkina Faso")},
00121         {227, AnalogVideo_SECAM_K, _T("Niger")},
00122         {228, AnalogVideo_SECAM_K, _T("Togo")},
00123         {229, AnalogVideo_SECAM_K, _T("Benin")},
00124         {230, AnalogVideo_SECAM_B, _T("Mauritius")},
00125         {231, AnalogVideo_PAL_B, _T("Liberia")},
00126         {232, AnalogVideo_PAL_B, _T("Sierra Leone")},
00127         {233, AnalogVideo_PAL_B, _T("Ghana")},
00128         {234, AnalogVideo_PAL_B, _T("Nigeria")},
00129         {235, AnalogVideo_PAL_B, _T("Chad")},
00130         {236, AnalogVideo_PAL_B, _T("Central African Republic")},
00131         {237, AnalogVideo_PAL_B, _T("Cameroon")},
00132         {238, AnalogVideo_NTSC_M, _T("Cape Verde Islands")},
00133         {239, AnalogVideo_PAL_B, _T("Sao Tome and Principe")},
00134         {240, AnalogVideo_SECAM_B, _T("Equatorial Guinea")},
00135         {241, AnalogVideo_SECAM_K, _T("Gabon")},
00136         {242, AnalogVideo_SECAM_D, _T("Congo")},
00137         {243, AnalogVideo_SECAM_K, _T("Congo(DRC)")},
00138         {244, AnalogVideo_PAL_I, _T("Angola")},
00139         {245, AnalogVideo_NTSC_M, _T("Guinea-Bissau")},
00140         {246, AnalogVideo_NTSC_M, _T("Diego Garcia")},
00141         {247, AnalogVideo_NTSC_M, _T("Ascension Island")},
00142         {248, AnalogVideo_PAL_B, _T("Seychelle Islands")},
00143         {249, AnalogVideo_PAL_B, _T("Sudan")},
00144         {250, AnalogVideo_PAL_B, _T("Rwanda")},
00145         {251, AnalogVideo_PAL_B, _T("Ethiopia")},
00146         {252, AnalogVideo_PAL_B, _T("Somalia")},
00147         {253, AnalogVideo_SECAM_K, _T("Djibouti")},
00148         {254, AnalogVideo_PAL_B, _T("Kenya")},
00149         {255, AnalogVideo_PAL_B, _T("Tanzania")},
00150         {256, AnalogVideo_PAL_B, _T("Uganda")},
00151         {257, AnalogVideo_SECAM_K, _T("Burundi")},
00152         {258, AnalogVideo_PAL_B, _T("Mozambique")},
00153         {260, AnalogVideo_PAL_B, _T("Zambia")},
00154         {261, AnalogVideo_SECAM_K, _T("Madagascar")},
00155         {262, AnalogVideo_SECAM_K, _T("Reunion Island")},
00156         {263, AnalogVideo_PAL_B, _T("Zimbabwe")},
00157         {264, AnalogVideo_PAL_I, _T("Namibia")},
00158         {265, AnalogVideo_NTSC_M, _T("Malawi")},
00159         {266, AnalogVideo_PAL_I, _T("Lesotho")},
00160         {267, AnalogVideo_SECAM_K, _T("Botswana")},
00161         {268, AnalogVideo_PAL_B, _T("Swaziland")},
00162         {269, AnalogVideo_SECAM_K, _T("Mayotte Island")},
00163 //      {269, AnalogVideo_NTSC_M, _T("Comoros")},
00164         {290, AnalogVideo_NTSC_M, _T("St. Helena")},
00165         {291, AnalogVideo_NTSC_M, _T("Eritrea")},
00166         {297, AnalogVideo_NTSC_M, _T("Aruba")},
00167         {298, AnalogVideo_PAL_B, _T("Faroe Islands")},
00168         {299, AnalogVideo_NTSC_M, _T("Greenland")},
00169         {350, AnalogVideo_PAL_B, _T("Gibraltar")},
00170         {351, AnalogVideo_PAL_B, _T("Portugal")},
00171         {352, AnalogVideo_PAL_B, _T("Luxembourg")},
00172         {353, AnalogVideo_PAL_I, _T("Ireland")},
00173         {354, AnalogVideo_PAL_B, _T("Iceland")},
00174         {355, AnalogVideo_PAL_B, _T("Albania")},
00175         {356, AnalogVideo_PAL_B, _T("Malta")},
00176         {357, AnalogVideo_PAL_B, _T("Cyprus")},
00177         {358, AnalogVideo_PAL_B, _T("Finland")},
00178         {359, AnalogVideo_SECAM_D, _T("Bulgaria")},
00179         {370, AnalogVideo_PAL_B, _T("Lithuania")},
00180         {371, AnalogVideo_SECAM_D, _T("Latvia")},
00181         {372, AnalogVideo_PAL_B, _T("Estonia")},
00182         {373, AnalogVideo_SECAM_D, _T("Moldova")},
00183         {374, AnalogVideo_SECAM_D, _T("Armenia")},
00184         {375, AnalogVideo_SECAM_D, _T("Belarus")},
00185         {376, AnalogVideo_NTSC_M, _T("Andorra")},
00186         {377, AnalogVideo_SECAM_G, _T("Monaco")},
00187         {378, AnalogVideo_PAL_B, _T("San Marino")},
00188         {380, AnalogVideo_SECAM_D, _T("Ukraine")},
00189         {381, AnalogVideo_PAL_B, _T("Serbia and Montenegro")},
00190         {385, AnalogVideo_PAL_B, _T("Croatia")},
00191         {386, AnalogVideo_PAL_B, _T("Slovenia")},
00192         {387, AnalogVideo_PAL_B, _T("Bosnia and Herzegovina")},
00193         {389, AnalogVideo_PAL_B, _T("F.Y.R.O.M. (Former Yugoslav Republic of Macedonia)")},
00194         {420, AnalogVideo_PAL_D, _T("Czech Republic")},
00195         {421, AnalogVideo_PAL_B, _T("Slovak Republic")},
00196         {500, AnalogVideo_PAL_I, _T("Falkland Islands (Islas Malvinas)")},
00197         {501, AnalogVideo_NTSC_M, _T("Belize")},
00198         {502, AnalogVideo_NTSC_M, _T("Guatemala")},
00199         {503, AnalogVideo_NTSC_M, _T("El Salvador")},
00200         {504, AnalogVideo_NTSC_M, _T("Honduras")},
00201         {505, AnalogVideo_NTSC_M, _T("Nicaragua")},
00202         {506, AnalogVideo_NTSC_M, _T("Costa Rica")},
00203         {507, AnalogVideo_NTSC_M, _T("Panama")},
00204         {508, AnalogVideo_SECAM_K, _T("St. Pierre and Miquelon")},
00205         {509, AnalogVideo_NTSC_M, _T("Haiti")},
00206         {590, AnalogVideo_SECAM_K, _T("Guadeloupe")},
00207 //      {590, AnalogVideo_NTSC_M, _T("French Antilles")},
00208         {591, AnalogVideo_PAL_N, _T("Bolivia")},
00209         {592, AnalogVideo_SECAM_K, _T("Guyana")},
00210         {593, AnalogVideo_NTSC_M, _T("Ecuador")},
00211         {594, AnalogVideo_SECAM_K, _T("French Guiana")},
00212         {595, AnalogVideo_PAL_N, _T("Paraguay")},
00213         {596, AnalogVideo_SECAM_K, _T("Martinique")},
00214         {597, AnalogVideo_NTSC_M, _T("Suriname")},
00215         {598, AnalogVideo_PAL_N, _T("Uruguay")},
00216         {599, AnalogVideo_NTSC_M, _T("Netherlands Antilles")},
00217         {670, AnalogVideo_NTSC_M, _T("Saipan Island")},
00218 //      {670, AnalogVideo_NTSC_M, _T("Rota Island")},
00219 //      {670, AnalogVideo_NTSC_M, _T("Tinian Island")},
00220         {671, AnalogVideo_NTSC_M, _T("Guam")},
00221         {672, AnalogVideo_NTSC_M, _T("Christmas Island")},
00222         {672, AnalogVideo_NTSC_M, _T("Australian Antarctic Territory")},
00223         {672, AnalogVideo_PAL_B, _T("Norfolk Island")},
00224         {673, AnalogVideo_PAL_B, _T("Brunei")},
00225         {674, AnalogVideo_NTSC_M, _T("Nauru")},
00226         {675, AnalogVideo_PAL_B, _T("Papua New Guinea")},
00227         {676, AnalogVideo_NTSC_M, _T("Tonga")},
00228         {677, AnalogVideo_NTSC_M, _T("Solomon Islands")},
00229         {678, AnalogVideo_NTSC_M, _T("Vanuatu")},
00230         {679, AnalogVideo_NTSC_M, _T("Fiji Islands")},
00231         {680, AnalogVideo_NTSC_M, _T("Palau")},
00232         {681, AnalogVideo_SECAM_K, _T("Wallis and Futuna Islands")},
00233         {682, AnalogVideo_PAL_B, _T("Cook Islands")},
00234         {683, AnalogVideo_NTSC_M, _T("Niue")},
00235         {684, AnalogVideo_NTSC_M, _T("Territory of American Samoa")},
00236         {685, AnalogVideo_PAL_B, _T("Samoa")},
00237         {686, AnalogVideo_PAL_B, _T("Kiribati Republic")},
00238         {687, AnalogVideo_SECAM_K, _T("New Caledonia")},
00239         {688, AnalogVideo_NTSC_M, _T("Tuvalu")},
00240         {689, AnalogVideo_SECAM_K, _T("French Polynesia")},
00241         {690, AnalogVideo_NTSC_M, _T("Tokelau")},
00242         {691, AnalogVideo_NTSC_M, _T("Micronesia")},
00243         {692, AnalogVideo_NTSC_M, _T("Marshall Islands")},
00244         {850, AnalogVideo_SECAM_D, _T("Korea (North)")},
00245         {852, AnalogVideo_PAL_I, _T("Hong Kong SAR")},
00246         {853, AnalogVideo_PAL_I, _T("Macao SAR")},
00247         {855, AnalogVideo_PAL_B, _T("Cambodia")},
00248         {856, AnalogVideo_PAL_B, _T("Laos")},
00249         {871, AnalogVideo_NTSC_M, _T("INMARSAT (Atlantic-East)")},
00250         {872, AnalogVideo_NTSC_M, _T("INMARSAT (Pacific)")},
00251         {873, AnalogVideo_NTSC_M, _T("INMARSAT (Indian)")},
00252         {874, AnalogVideo_NTSC_M, _T("INMARSAT (Atlantic-West)")},
00253         {880, AnalogVideo_PAL_B, _T("Bangladesh")},
00254         {886, AnalogVideo_NTSC_M, _T("Taiwan")},
00255         {960, AnalogVideo_PAL_B, _T("Maldives")},
00256         {961, AnalogVideo_SECAM_B, _T("Lebanon")},
00257         {962, AnalogVideo_PAL_B, _T("Jordan")},
00258         {963, AnalogVideo_SECAM_B, _T("Syria")},
00259         {964, AnalogVideo_SECAM_B, _T("Iraq")},
00260         {965, AnalogVideo_PAL_B, _T("Kuwait")},
00261         {966, AnalogVideo_SECAM_B, _T("Saudi Arabia")},
00262         {967, AnalogVideo_PAL_B, _T("Yemen")},
00263         {968, AnalogVideo_PAL_B, _T("Oman")},
00264         {971, AnalogVideo_PAL_B, _T("United Arab Emirates")},
00265         {972, AnalogVideo_PAL_B, _T("Israel")},
00266         {973, AnalogVideo_PAL_B, _T("Bahrain")},
00267         {974, AnalogVideo_PAL_B, _T("Qatar")},
00268         {975, AnalogVideo_NTSC_M, _T("Bhutan")},
00269         {976, AnalogVideo_SECAM_D, _T("Mongolia")},
00270         {977, AnalogVideo_PAL_B, _T("Nepal")},
00271         {994, AnalogVideo_SECAM_D, _T("Azerbaijan")},
00272         {995, AnalogVideo_SECAM_D,_T("Georgia")},
00273 };
00274 
00275 // COpenCapDeviceDlg dialog
00276 
00277 //IMPLEMENT_DYNAMIC(COpenCapDeviceDlg, CResizableDialog)
00278 COpenCapDeviceDlg::COpenCapDeviceDlg(CWnd* pParent /*=NULL*/)
00279         : CResizableDialog(COpenCapDeviceDlg::IDD, pParent)
00280         , m_vidstr(_T(""))
00281         , m_audstr(_T(""))
00282         , m_country(1)
00283 {
00284 }
00285 
00286 COpenCapDeviceDlg::~COpenCapDeviceDlg()
00287 {
00288 }
00289 
00290 void COpenCapDeviceDlg::DoDataExchange(CDataExchange* pDX)
00291 {
00292         __super::DoDataExchange(pDX);
00293         DDX_Control(pDX, IDC_COMBO1, m_vidctrl);
00294         DDX_Control(pDX, IDC_COMBO2, m_audctrl);
00295         DDX_Control(pDX, IDC_COMBO9, m_countryctrl);
00296 }
00297 
00298 BEGIN_MESSAGE_MAP(COpenCapDeviceDlg, CResizableDialog)
00299         ON_BN_CLICKED(IDOK, OnBnClickedOk)
00300 END_MESSAGE_MAP()
00301 
00302 
00303 // COpenCapDeviceDlg message handlers
00304 
00305 BOOL COpenCapDeviceDlg::OnInitDialog()
00306 {
00307         __super::OnInitDialog();
00308 
00309         AddAnchor(m_vidctrl, TOP_LEFT, TOP_RIGHT);
00310         AddAnchor(m_audctrl, TOP_LEFT, TOP_RIGHT);
00311         AddAnchor(m_countryctrl, TOP_LEFT, TOP_RIGHT);
00312         AddAnchor(IDOK, TOP_CENTER);
00313         AddAnchor(IDCANCEL, TOP_CENTER);
00314 
00315         CRect r;
00316         GetWindowRect(r);
00317         CSize s = r.Size();
00318         SetMinTrackSize(s);
00319         s.cx = 1000;
00320         SetMaxTrackSize(s);
00321 
00322         CString dummy = _T("dummy");
00323         CString vidstr = AfxGetApp()->GetProfileString(_T("Capture"), _T("VidDispName"), dummy);
00324         CString audstr = AfxGetApp()->GetProfileString(_T("Capture"), _T("AudDispName"), dummy);
00325         long country = AfxGetApp()->GetProfileInt(_T("Capture"), _T("Country"), 1);
00326 
00327         int iSel = vidstr == dummy ? 0 : -1;
00328 
00329         BeginEnumSysDev(CLSID_VideoInputDeviceCategory, pMoniker)
00330         {
00331                 CComPtr<IPropertyBag> pPB;
00332                 pMoniker->BindToStorage(0, 0, IID_IPropertyBag, (void**)&pPB);
00333 
00334                 CComVariant var;
00335                 pPB->Read(CComBSTR(_T("FriendlyName")), &var, NULL);
00336                 int i = m_vidctrl.AddString(CString(var.bstrVal));
00337 
00338                 LPOLESTR strName = NULL;
00339                 if(SUCCEEDED(pMoniker->GetDisplayName(NULL, NULL, &strName)))
00340                 {
00341                         m_vidnames.Add(CString(strName));
00342                         if(vidstr == CString(strName)) iSel = i;
00343                         CoTaskMemFree(strName);
00344                 }
00345         }
00346         EndEnumSysDev
00347 
00348         if(m_vidctrl.GetCount())
00349                 m_vidctrl.SetCurSel(iSel);
00350 
00351         iSel = audstr == dummy ? 0 : -1;
00352 
00353         BeginEnumSysDev(CLSID_AudioInputDeviceCategory, pMoniker)
00354         {
00355                 CComPtr<IPropertyBag> pPB;
00356                 pMoniker->BindToStorage(0, 0, IID_IPropertyBag, (void**)&pPB);
00357 
00358                 CComVariant var;
00359                 pPB->Read(CComBSTR(_T("FriendlyName")), &var, NULL);
00360                 int i = m_audctrl.AddString(CString(var.bstrVal));
00361 
00362                 LPOLESTR strName = NULL;
00363                 if(SUCCEEDED(pMoniker->GetDisplayName(NULL, NULL, &strName)))
00364                 {
00365                         m_audnames.Add(CString(strName));
00366                         if(audstr == CString(strName)) iSel = i;
00367                         CoTaskMemFree(strName);
00368                 }
00369         }
00370         EndEnumSysDev
00371 
00372         if(m_audctrl.GetCount())
00373                 m_audctrl.SetCurSel(iSel);
00374 
00375         iSel = 0;
00376 
00377         for(int j = 0; j < countof(s_countrycodes); j++)
00378         {
00379                 CString standard;
00380                 switch(s_countrycodes[j].standard)
00381                 {
00382                 case AnalogVideo_NTSC_M: standard = _T("NTSC M"); break;
00383                 case AnalogVideo_NTSC_M_J: standard = _T("NTSC M J"); break;
00384                 case AnalogVideo_NTSC_433: standard = _T("NTSC 433"); break;
00385                 case AnalogVideo_PAL_B: standard = _T("PAL B"); break;
00386                 case AnalogVideo_PAL_D: standard = _T("PAL D"); break;
00387                 case AnalogVideo_PAL_G: standard = _T("PAL G"); break;
00388                 case AnalogVideo_PAL_H: standard = _T("PAL H"); break;
00389                 case AnalogVideo_PAL_I: standard = _T("PAL I"); break;
00390                 case AnalogVideo_PAL_M: standard = _T("PAL M"); break;
00391                 case AnalogVideo_PAL_N: standard = _T("PAL N"); break;
00392                 case AnalogVideo_PAL_60: standard = _T("PAL 60"); break;
00393                 case AnalogVideo_SECAM_B: standard = _T("SECAM B"); break;
00394                 case AnalogVideo_SECAM_D: standard = _T("SECAM D"); break;
00395                 case AnalogVideo_SECAM_G: standard = _T("SECAM G"); break;
00396                 case AnalogVideo_SECAM_H: standard = _T("SECAM H"); break;
00397                 case AnalogVideo_SECAM_K: standard = _T("SECAM K"); break;
00398                 case AnalogVideo_SECAM_K1: standard = _T("SECAM K1"); break;
00399                 case AnalogVideo_SECAM_L: standard = _T("SECAM L"); break;
00400                 case AnalogVideo_SECAM_L1: standard = _T("SECAM L1"); break;
00401                 case AnalogVideo_PAL_N_COMBO: standard = _T("PAL N COMBO"); break;
00402                 }
00403 
00404                 CString str;
00405                 str.Format(_T("%d - %s - %s"), s_countrycodes[j].code, s_countrycodes[j].str, standard);
00406 
00407                 int i = m_countryctrl.AddString(str);
00408                 m_countryctrl.SetItemDataPtr(i, &s_countrycodes[j]);
00409                 if(country == s_countrycodes[j].code) iSel = i;
00410         }
00411 
00412         if(m_countryctrl.GetCount())
00413                 m_countryctrl.SetCurSel(iSel);
00414 
00415         return TRUE;  // return TRUE unless you set the focus to a control
00416         // EXCEPTION: OCX Property Pages should return FALSE
00417 }
00418 
00419 void COpenCapDeviceDlg::OnBnClickedOk()
00420 {
00421         UpdateData();
00422 
00423         if(m_vidctrl.GetCurSel() >= 0) 
00424         {
00425                 m_vidstr = m_vidnames[m_vidctrl.GetCurSel()];
00426                 AfxGetApp()->WriteProfileString(_T("Capture"), _T("VidDispName"), m_vidstr);
00427         }
00428 
00429         if(m_audctrl.GetCurSel() >= 0)
00430         {
00431                 m_audstr = m_audnames[m_audctrl.GetCurSel()];
00432                 AfxGetApp()->WriteProfileString(_T("Capture"), _T("AudDispName"), m_audstr);
00433         }
00434 
00435         if(m_countryctrl.GetCurSel() >= 0)
00436         {
00437                 m_country = ((cc_t*)m_countryctrl.GetItemDataPtr(m_countryctrl.GetCurSel()))->code;
00438                 AfxGetApp()->WriteProfileInt(_T("Capture"), _T("Country"), m_country);
00439         }
00440 
00441         OnOK();
00442 }

Generated on Tue Dec 13 14:46:57 2005 for guliverkli by  doxygen 1.4.5