1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "media/video/capture/video_capture_device.h"
7 #include "base/i18n/timezone.h"
8 #include "base/strings/string_util.h"
12 const std::string VideoCaptureDevice::Name::GetNameAndModel() const {
13 const std::string model_id = GetModel();
16 const std::string suffix = " (" + model_id + ")";
17 if (EndsWith(device_name_, suffix, true)) // |true| means case-sensitive.
19 return device_name_ + suffix;
22 VideoCaptureDevice::Name::Name() {}
24 VideoCaptureDevice::Name::Name(const std::string& name, const std::string& id)
25 : device_name_(name), unique_id_(id) {}
28 VideoCaptureDevice::Name::Name(const std::string& name,
29 const std::string& id,
30 const CaptureApiType api_type)
31 : device_name_(name), unique_id_(id), capture_api_class_(api_type) {}
34 #if defined(OS_MACOSX)
35 VideoCaptureDevice::Name::Name(const std::string& name,
36 const std::string& id,
37 const CaptureApiType api_type)
40 capture_api_class_(api_type),
41 transport_type_(OTHER_TRANSPORT),
42 is_blacklisted_(false) {}
44 VideoCaptureDevice::Name::Name(const std::string& name,
45 const std::string& id,
46 const CaptureApiType api_type,
47 const TransportType transport_type)
50 capture_api_class_(api_type),
51 transport_type_(transport_type),
52 is_blacklisted_(false) {}
55 VideoCaptureDevice::Name::~Name() {}
57 VideoCaptureDevice::~VideoCaptureDevice() {}
59 int VideoCaptureDevice::GetPowerLineFrequencyForLocation() const {
60 std::string current_country = base::CountryCodeForCurrentTimezone();
61 if (current_country.empty())
63 // Sorted out list of countries with 60Hz power line frequency, from
64 // http://en.wikipedia.org/wiki/Mains_electricity_by_country
65 const char* countries_using_60Hz[] = {
66 "AI", "AO", "AS", "AW", "AZ", "BM", "BR", "BS", "BZ", "CA", "CO",
67 "CR", "CU", "DO", "EC", "FM", "GT", "GU", "GY", "HN", "HT", "JP",
68 "KN", "KR", "KY", "MS", "MX", "NI", "PA", "PE", "PF", "PH", "PR",
69 "PW", "SA", "SR", "SV", "TT", "TW", "UM", "US", "VG", "VI", "VE"};
70 const char** countries_using_60Hz_end =
71 countries_using_60Hz + arraysize(countries_using_60Hz);
72 if (std::find(countries_using_60Hz, countries_using_60Hz_end,
73 current_country) == countries_using_60Hz_end) {
74 return kPowerLine50Hz;
76 return kPowerLine60Hz;