/* * $Id$ * * (C) 2006-2010 see AUTHORS * * This file is part of mplayerc. * * Mplayerc is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * Mplayerc is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ // PPageTuner.cpp : implementation file // #include "stdafx.h" #include #include #include #include #include #include "mplayerc.h" #include "PPageCapture.h" #include "../../DSUtil/DSUtil.h" static struct cc_t { long code; AnalogVideoStandard standard; const TCHAR* str; } s_countrycodes[] = { {1, AnalogVideo_NTSC_M, _T("USA")}, {2, AnalogVideo_NTSC_M, _T("Canada")}, {7, AnalogVideo_SECAM_D, _T("Russia")}, {20, AnalogVideo_SECAM_B, _T("Egypt")}, {27, AnalogVideo_PAL_I, _T("South Africa")}, {30, AnalogVideo_SECAM_B, _T("Greece")}, {31, AnalogVideo_PAL_B, _T("Netherlands")}, {32, AnalogVideo_PAL_B, _T("Belgium")}, {33, AnalogVideo_SECAM_L, _T("France")}, {34, AnalogVideo_PAL_B, _T("Spain")}, {36, AnalogVideo_SECAM_D, _T("Hungary")}, {39, AnalogVideo_PAL_B, _T("Italy")}, {39, AnalogVideo_PAL_B, _T("Vatican City")}, {40, AnalogVideo_PAL_D, _T("Romania")}, {41, AnalogVideo_PAL_B, _T("Switzerland")}, {41, AnalogVideo_PAL_B, _T("Liechtenstein")}, {43, AnalogVideo_PAL_B, _T("Austria")}, {44, AnalogVideo_PAL_I, _T("United Kingdom")}, {45, AnalogVideo_PAL_B, _T("Denmark")}, {46, AnalogVideo_PAL_B, _T("Sweden")}, {47, AnalogVideo_PAL_B, _T("Norway")}, {48, AnalogVideo_PAL_B, _T("Poland")}, {49, AnalogVideo_PAL_B, _T("Germany")}, {51, AnalogVideo_NTSC_M, _T("Peru")}, {52, AnalogVideo_NTSC_M, _T("Mexico")}, {53, AnalogVideo_NTSC_M, _T("Cuba")}, {53, AnalogVideo_NTSC_M, _T("Guantanamo Bay")}, {54, AnalogVideo_PAL_N, _T("Argentina")}, {55, AnalogVideo_PAL_M, _T("Brazil")}, {56, AnalogVideo_NTSC_M, _T("Chile")}, {57, AnalogVideo_NTSC_M, _T("Colombia")}, {58, AnalogVideo_NTSC_M, _T("Bolivarian Republic of Venezuela")}, {60, AnalogVideo_PAL_B, _T("Malaysia")}, {61, AnalogVideo_PAL_B, _T("Australia")}, {62, AnalogVideo_PAL_B, _T("Indonesia")}, {63, AnalogVideo_NTSC_M, _T("Philippines")}, {64, AnalogVideo_PAL_B, _T("New Zealand")}, {65, AnalogVideo_PAL_B, _T("Singapore")}, {66, AnalogVideo_PAL_B, _T("Thailand")}, {81, AnalogVideo_NTSC_M_J, _T("Japan")}, {82, AnalogVideo_NTSC_M, _T("Korea (South)")}, {84, AnalogVideo_NTSC_M, _T("Vietnam")}, {86, AnalogVideo_PAL_D, _T("China")}, {90, AnalogVideo_PAL_B, _T("Turkey")}, {91, AnalogVideo_PAL_B, _T("India")}, {92, AnalogVideo_PAL_B, _T("Pakistan")}, {93, AnalogVideo_PAL_B, _T("Afghanistan")}, {94, AnalogVideo_PAL_B, _T("Sri Lanka")}, {95, AnalogVideo_NTSC_M, _T("Myanmar")}, {98, AnalogVideo_SECAM_B, _T("Iran")}, {212, AnalogVideo_SECAM_B, _T("Morocco")}, {213, AnalogVideo_PAL_B, _T("Algeria")}, {216, AnalogVideo_SECAM_B, _T("Tunisia")}, {218, AnalogVideo_SECAM_B, _T("Libya")}, {220, AnalogVideo_SECAM_K, _T("Gambia")}, {221, AnalogVideo_SECAM_K, _T("Senegal Republic")}, {222, AnalogVideo_SECAM_B, _T("Mauritania")}, {223, AnalogVideo_SECAM_K, _T("Mali")}, {224, AnalogVideo_SECAM_K, _T("Guinea")}, {225, AnalogVideo_SECAM_K, _T("Cote D'Ivoire")}, {226, AnalogVideo_SECAM_K, _T("Burkina Faso")}, {227, AnalogVideo_SECAM_K, _T("Niger")}, {228, AnalogVideo_SECAM_K, _T("Togo")}, {229, AnalogVideo_SECAM_K, _T("Benin")}, {230, AnalogVideo_SECAM_B, _T("Mauritius")}, {231, AnalogVideo_PAL_B, _T("Liberia")}, {232, AnalogVideo_PAL_B, _T("Sierra Leone")}, {233, AnalogVideo_PAL_B, _T("Ghana")}, {234, AnalogVideo_PAL_B, _T("Nigeria")}, {235, AnalogVideo_PAL_B, _T("Chad")}, {236, AnalogVideo_PAL_B, _T("Central African Republic")}, {237, AnalogVideo_PAL_B, _T("Cameroon")}, {238, AnalogVideo_NTSC_M, _T("Cape Verde Islands")}, {239, AnalogVideo_PAL_B, _T("Sao Tome and Principe")}, {240, AnalogVideo_SECAM_B, _T("Equatorial Guinea")}, {241, AnalogVideo_SECAM_K, _T("Gabon")}, {242, AnalogVideo_SECAM_D, _T("Congo")}, {243, AnalogVideo_SECAM_K, _T("Congo(DRC)")}, {244, AnalogVideo_PAL_I, _T("Angola")}, {245, AnalogVideo_NTSC_M, _T("Guinea-Bissau")}, {246, AnalogVideo_NTSC_M, _T("Diego Garcia")}, {247, AnalogVideo_NTSC_M, _T("Ascension Island")}, {248, AnalogVideo_PAL_B, _T("Seychelle Islands")}, {249, AnalogVideo_PAL_B, _T("Sudan")}, {250, AnalogVideo_PAL_B, _T("Rwanda")}, {251, AnalogVideo_PAL_B, _T("Ethiopia")}, {252, AnalogVideo_PAL_B, _T("Somalia")}, {253, AnalogVideo_SECAM_K, _T("Djibouti")}, {254, AnalogVideo_PAL_B, _T("Kenya")}, {255, AnalogVideo_PAL_B, _T("Tanzania")}, {256, AnalogVideo_PAL_B, _T("Uganda")}, {257, AnalogVideo_SECAM_K, _T("Burundi")}, {258, AnalogVideo_PAL_B, _T("Mozambique")}, {260, AnalogVideo_PAL_B, _T("Zambia")}, {261, AnalogVideo_SECAM_K, _T("Madagascar")}, {262, AnalogVideo_SECAM_K, _T("Reunion Island")}, {263, AnalogVideo_PAL_B, _T("Zimbabwe")}, {264, AnalogVideo_PAL_I, _T("Namibia")}, {265, AnalogVideo_NTSC_M, _T("Malawi")}, {266, AnalogVideo_PAL_I, _T("Lesotho")}, {267, AnalogVideo_SECAM_K, _T("Botswana")}, {268, AnalogVideo_PAL_B, _T("Swaziland")}, {269, AnalogVideo_SECAM_K, _T("Mayotte Island")}, {290, AnalogVideo_NTSC_M, _T("St. Helena")}, {291, AnalogVideo_NTSC_M, _T("Eritrea")}, {297, AnalogVideo_NTSC_M, _T("Aruba")}, {298, AnalogVideo_PAL_B, _T("Faroe Islands")}, {299, AnalogVideo_NTSC_M, _T("Greenland")}, {350, AnalogVideo_PAL_B, _T("Gibraltar")}, {351, AnalogVideo_PAL_B, _T("Portugal")}, {352, AnalogVideo_PAL_B, _T("Luxembourg")}, {353, AnalogVideo_PAL_I, _T("Ireland")}, {354, AnalogVideo_PAL_B, _T("Iceland")}, {355, AnalogVideo_PAL_B, _T("Albania")}, {356, AnalogVideo_PAL_B, _T("Malta")}, {357, AnalogVideo_PAL_B, _T("Cyprus")}, {358, AnalogVideo_PAL_B, _T("Finland")}, {359, AnalogVideo_SECAM_D, _T("Bulgaria")}, {370, AnalogVideo_PAL_B, _T("Lithuania")}, {371, AnalogVideo_SECAM_D, _T("Latvia")}, {372, AnalogVideo_PAL_B, _T("Estonia")}, {373, AnalogVideo_SECAM_D, _T("Moldova")}, {374, AnalogVideo_SECAM_D, _T("Armenia")}, {375, AnalogVideo_SECAM_D, _T("Belarus")}, {376, AnalogVideo_NTSC_M, _T("Andorra")}, {377, AnalogVideo_SECAM_G, _T("Monaco")}, {378, AnalogVideo_PAL_B, _T("San Marino")}, {380, AnalogVideo_SECAM_D, _T("Ukraine")}, {381, AnalogVideo_PAL_B, _T("Serbia and Montenegro")}, {385, AnalogVideo_PAL_B, _T("Croatia")}, {386, AnalogVideo_PAL_B, _T("Slovenia")}, {387, AnalogVideo_PAL_B, _T("Bosnia and Herzegovina")}, {389, AnalogVideo_PAL_B, _T("F.Y.R.O.M. (Former Yugoslav Republic of Macedonia)")}, {420, AnalogVideo_PAL_D, _T("Czech Republic")}, {421, AnalogVideo_PAL_B, _T("Slovak Republic")}, {500, AnalogVideo_PAL_I, _T("Falkland Islands (Islas Malvinas)")}, {501, AnalogVideo_NTSC_M, _T("Belize")}, {502, AnalogVideo_NTSC_M, _T("Guatemala")}, {503, AnalogVideo_NTSC_M, _T("El Salvador")}, {504, AnalogVideo_NTSC_M, _T("Honduras")}, {505, AnalogVideo_NTSC_M, _T("Nicaragua")}, {506, AnalogVideo_NTSC_M, _T("Costa Rica")}, {507, AnalogVideo_NTSC_M, _T("Panama")}, {508, AnalogVideo_SECAM_K, _T("St. Pierre and Miquelon")}, {509, AnalogVideo_NTSC_M, _T("Haiti")}, {590, AnalogVideo_SECAM_K, _T("Guadeloupe")}, {591, AnalogVideo_PAL_N, _T("Bolivia")}, {592, AnalogVideo_SECAM_K, _T("Guyana")}, {593, AnalogVideo_NTSC_M, _T("Ecuador")}, {594, AnalogVideo_SECAM_K, _T("French Guiana")}, {595, AnalogVideo_PAL_N, _T("Paraguay")}, {596, AnalogVideo_SECAM_K, _T("Martinique")}, {597, AnalogVideo_NTSC_M, _T("Suriname")}, {598, AnalogVideo_PAL_N, _T("Uruguay")}, {599, AnalogVideo_NTSC_M, _T("Netherlands Antilles")}, {670, AnalogVideo_NTSC_M, _T("Saipan Island")}, {671, AnalogVideo_NTSC_M, _T("Guam")}, {672, AnalogVideo_NTSC_M, _T("Christmas Island")}, {672, AnalogVideo_NTSC_M, _T("Australian Antarctic Territory")}, {673, AnalogVideo_PAL_B, _T("Brunei")}, {674, AnalogVideo_NTSC_M, _T("Nauru")}, {675, AnalogVideo_PAL_B, _T("Papua New Guinea")}, {676, AnalogVideo_NTSC_M, _T("Tonga")}, {677, AnalogVideo_NTSC_M, _T("Solomon Islands")}, {678, AnalogVideo_NTSC_M, _T("Vanuatu")}, {679, AnalogVideo_NTSC_M, _T("Fiji Islands")}, {680, AnalogVideo_NTSC_M, _T("Palau")}, {681, AnalogVideo_SECAM_K, _T("Wallis and Futuna Islands")}, {682, AnalogVideo_PAL_B, _T("Cook Islands")}, {683, AnalogVideo_NTSC_M, _T("Niue")}, {684, AnalogVideo_NTSC_M, _T("Territory of American Samoa")}, {685, AnalogVideo_PAL_B, _T("Samoa")}, {686, AnalogVideo_PAL_B, _T("Kiribati Republic")}, {687, AnalogVideo_SECAM_K, _T("New Caledonia")}, {688, AnalogVideo_NTSC_M, _T("Tuvalu")}, {689, AnalogVideo_SECAM_K, _T("French Polynesia")}, {690, AnalogVideo_NTSC_M, _T("Tokelau")}, {691, AnalogVideo_NTSC_M, _T("Micronesia")}, {692, AnalogVideo_NTSC_M, _T("Marshall Islands")}, {850, AnalogVideo_SECAM_D, _T("Korea (North)")}, {852, AnalogVideo_PAL_I, _T("Hong Kong SAR")}, {853, AnalogVideo_PAL_I, _T("Macao SAR")}, {855, AnalogVideo_PAL_B, _T("Cambodia")}, {856, AnalogVideo_PAL_B, _T("Laos")}, {871, AnalogVideo_NTSC_M, _T("INMARSAT (Atlantic-East)")}, {872, AnalogVideo_NTSC_M, _T("INMARSAT (Pacific)")}, {873, AnalogVideo_NTSC_M, _T("INMARSAT (Indian)")}, {874, AnalogVideo_NTSC_M, _T("INMARSAT (Atlantic-West)")}, {880, AnalogVideo_PAL_B, _T("Bangladesh")}, {886, AnalogVideo_NTSC_M, _T("Taiwan")}, {960, AnalogVideo_PAL_B, _T("Maldives")}, {961, AnalogVideo_SECAM_B, _T("Lebanon")}, {962, AnalogVideo_PAL_B, _T("Jordan")}, {963, AnalogVideo_SECAM_B, _T("Syria")}, {964, AnalogVideo_SECAM_B, _T("Iraq")}, {965, AnalogVideo_PAL_B, _T("Kuwait")}, {966, AnalogVideo_SECAM_B, _T("Saudi Arabia")}, {967, AnalogVideo_PAL_B, _T("Yemen")}, {968, AnalogVideo_PAL_B, _T("Oman")}, {971, AnalogVideo_PAL_B, _T("United Arab Emirates")}, {972, AnalogVideo_PAL_B, _T("Israel")}, {973, AnalogVideo_PAL_B, _T("Bahrain")}, {974, AnalogVideo_PAL_B, _T("Qatar")}, {975, AnalogVideo_NTSC_M, _T("Bhutan")}, {976, AnalogVideo_SECAM_D, _T("Mongolia")}, {977, AnalogVideo_PAL_B, _T("Nepal")}, {994, AnalogVideo_SECAM_D, _T("Azerbaijan")}, {995, AnalogVideo_SECAM_D,_T("Georgia")}, }; // CPPageCapture dialog IMPLEMENT_DYNAMIC(CPPageCapture, CPPageBase) CPPageCapture::CPPageCapture() : CPPageBase(CPPageCapture::IDD, CPPageCapture::IDD) , m_iDefaultDevice(0) { } CPPageCapture::~CPPageCapture() { } void CPPageCapture::DoDataExchange(CDataExchange* pDX) { CPPageBase::DoDataExchange(pDX); DDX_Control(pDX, IDC_COMBO1, m_cbAnalogVideo); DDX_Control(pDX, IDC_COMBO2, m_cbAnalogAudio); DDX_Control(pDX, IDC_COMBO9, m_cbAnalogCountry); DDX_Control(pDX, IDC_COMBO4, m_cbDigitalNetworkProvider); DDX_Control(pDX, IDC_COMBO5, m_cbDigitalTuner); DDX_Control(pDX, IDC_COMBO3, m_cbDigitalReceiver); DDX_Radio(pDX, IDC_RADIO1, m_iDefaultDevice); } BEGIN_MESSAGE_MAP(CPPageCapture, CPPageBase) END_MESSAGE_MAP() // CPPageCapture message handlers BOOL CPPageCapture::OnInitDialog() { __super::OnInitDialog(); SetHandCursor(m_hWnd, IDC_COMBO1); AppSettings& s = AfxGetAppSettings(); FindAnalogDevices(); FindDigitalDevices(); m_iDefaultDevice = s.iDefaultCaptureDevice; UpdateData(FALSE); return TRUE; } void CPPageCapture::FindAnalogDevices() { AppSettings& s = AfxGetAppSettings(); int iSel = 0; // List video deviced BeginEnumSysDev(CLSID_VideoInputDeviceCategory, pMoniker) { CComPtr pPB; pMoniker->BindToStorage(0, 0, IID_IPropertyBag, (void**)&pPB); CComVariant var; pPB->Read(CComBSTR(_T("FriendlyName")), &var, NULL); int i = m_cbAnalogVideo.AddString(CString(var.bstrVal)); LPOLESTR strName = NULL; if(SUCCEEDED(pMoniker->GetDisplayName(NULL, NULL, &strName))) { m_vidnames.Add(CString(strName)); if(s.strAnalogVideo == CString(strName)) iSel = i; CoTaskMemFree(strName); } } EndEnumSysDev { int i = m_cbAnalogAudio.AddString(_T("