Chromium Code Reviews| Index: webrtc/modules/utility/source/helpers_ios.mm |
| diff --git a/webrtc/modules/utility/source/helpers_ios.mm b/webrtc/modules/utility/source/helpers_ios.mm |
| index 2d0ac098c1daeefd8cf86de8687bd9f4138b3de1..4b28cee3dc97e0f3afd132d95f121d35b6d27a32 100644 |
| --- a/webrtc/modules/utility/source/helpers_ios.mm |
| +++ b/webrtc/modules/utility/source/helpers_ios.mm |
| @@ -23,6 +23,64 @@ |
| namespace webrtc { |
| namespace ios { |
| +// Internal helper method used by GetDeviceName() to return device name. |
| +const char* LookUpRealName(const char* raw_name) { |
| + // Lookup table which maps raw device names to real (human readable) names. |
| + struct { |
| + const char* raw_name; |
| + const char* real_name; |
| + } device_names[] = { |
| + {"iPhone1,1", "iPhone 1G"}, |
| + {"iPhone1,2", "iPhone 3G"}, |
| + {"iPhone2,1", "iPhone 3GS"}, |
| + {"iPhone3,1", "iPhone 4"}, |
| + {"iPhone3,3", "Verizon iPhone 4"}, |
| + {"iPhone4,1", "iPhone 4S"}, |
| + {"iPhone5,1", "iPhone 5 (GSM)"}, |
| + {"iPhone5,2", "iPhone 5 (GSM+CDMA)"}, |
| + {"iPhone5,3", "iPhone 5c (GSM)"}, |
| + {"iPhone5,4", "iPhone 5c (GSM+CDMA)"}, |
| + {"iPhone6,1", "iPhone 5s (GSM)"}, |
| + {"iPhone6,2", "iPhone 5s (GSM+CDMA)"}, |
| + {"iPhone7,1", "iPhone 6 Plus"}, |
| + {"iPhone7,2", "iPhone 6"}, |
| + {"iPhone8,1", "iPhone 6s"}, |
| + {"iPhone8,2", "iPhone 6s Plus"}, |
| + {"iPod1,1", "iPod Touch 1G"}, |
| + {"iPod2,1", "iPod Touch 2G"}, |
| + {"iPod3,1", "iPod Touch 3G"}, |
| + {"iPod4,1", "iPod Touch 4G"}, |
| + {"iPod5,1", "iPod Touch 5G"}, |
| + {"iPad1,1", "iPad"}, |
| + {"iPad2,1", "iPad 2 (WiFi)"}, |
| + {"iPad2,2", "iPad 2 (GSM)"}, |
| + {"iPad2,3", "iPad 2 (CDMA)"}, |
| + {"iPad2,4", "iPad 2 (WiFi)"}, |
| + {"iPad2,5", "iPad Mini (WiFi)"}, |
| + {"iPad2,6", "iPad Mini (GSM)"}, |
| + {"iPad2,7", "iPad Mini (GSM+CDMA)"}, |
| + {"iPad3,1", "iPad 3 (WiFi)"}, |
| + {"iPad3,2", "iPad 3 (GSM+CDMA)"}, |
| + {"iPad3,3", "iPad 3 (GSM)"}, |
| + {"iPad3,4", "iPad 4 (WiFi)"}, |
| + {"iPad3,5", "iPad 4 (GSM)"}, |
| + {"iPad3,6", "iPad 4 (GSM+CDMA)"}, |
| + {"iPad4,1", "iPad Air (WiFi)"}, |
| + {"iPad4,2", "iPad Air (Cellular)"}, |
| + {"iPad4,4", "iPad mini 2G (WiFi)"}, |
| + {"iPad4,5", "iPad mini 2G (Cellular)"}, |
| + {"i386", "Simulator"}, |
| + {"x86_64", "Simulator"}, |
| + }; |
| + |
| + for (auto& d : device_names) { |
| + if (strcmp(d.raw_name, raw_name) == 0) |
| + return d.real_name; |
| + } |
| + LOG(LS_WARNING) << "Failed to find device name (" << raw_name << ")"; |
| + return ""; |
| +} |
| + |
| // TODO(henrika): move to shared location. |
| // See https://code.google.com/p/webrtc/issues/detail?id=4773 for details. |
| NSString* NSStringFromStdString(const std::string& stdString) { |
| @@ -89,91 +147,30 @@ std::string GetDeviceName() { |
| rtc::scoped_ptr<char[]> machine; |
| machine.reset(new char[size]); |
| sysctlbyname("hw.machine", machine.get(), &size, NULL, 0); |
| - std::string raw_name(machine.get()); |
| - if (!raw_name.compare("iPhone1,1")) |
| - return std::string("iPhone 1G"); |
| - if (!raw_name.compare("iPhone1,2")) |
| - return std::string("iPhone 3G"); |
| - if (!raw_name.compare("iPhone2,1")) |
| - return std::string("iPhone 3GS"); |
| - if (!raw_name.compare("iPhone3,1")) |
| - return std::string("iPhone 4"); |
| - if (!raw_name.compare("iPhone3,3")) |
| - return std::string("Verizon iPhone 4"); |
| - if (!raw_name.compare("iPhone4,1")) |
| - return std::string("iPhone 4S"); |
| - if (!raw_name.compare("iPhone5,1")) |
| - return std::string("iPhone 5 (GSM)"); |
| - if (!raw_name.compare("iPhone5,2")) |
| - return std::string("iPhone 5 (GSM+CDMA)"); |
| - if (!raw_name.compare("iPhone5,3")) |
| - return std::string("iPhone 5c (GSM)"); |
| - if (!raw_name.compare("iPhone5,4")) |
| - return std::string("iPhone 5c (GSM+CDMA)"); |
| - if (!raw_name.compare("iPhone6,1")) |
| - return std::string("iPhone 5s (GSM)"); |
| - if (!raw_name.compare("iPhone6,2")) |
| - return std::string("iPhone 5s (GSM+CDMA)"); |
| - if (!raw_name.compare("iPhone7,1")) |
| - return std::string("iPhone 6 Plus"); |
| - if (!raw_name.compare("iPhone7,2")) |
| - return std::string("iPhone 6"); |
| - if (!raw_name.compare("iPhone8,1")) |
| - return std::string("iPhone 6s"); |
| - if (!raw_name.compare("iPhone8,2")) |
| - return std::string("iPhone 6s Plus"); |
| - if (!raw_name.compare("iPod1,1")) |
| - return std::string("iPod Touch 1G"); |
| - if (!raw_name.compare("iPod2,1")) |
| - return std::string("iPod Touch 2G"); |
| - if (!raw_name.compare("iPod3,1")) |
| - return std::string("iPod Touch 3G"); |
| - if (!raw_name.compare("iPod4,1")) |
| - return std::string("iPod Touch 4G"); |
| - if (!raw_name.compare("iPod5,1")) |
| - return std::string("iPod Touch 5G"); |
| - if (!raw_name.compare("iPad1,1")) |
| - return std::string("iPad"); |
| - if (!raw_name.compare("iPad2,1")) |
| - return std::string("iPad 2 (WiFi)"); |
| - if (!raw_name.compare("iPad2,2")) |
| - return std::string("iPad 2 (GSM)"); |
| - if (!raw_name.compare("iPad2,3")) |
| - return std::string("iPad 2 (CDMA)"); |
| - if (!raw_name.compare("iPad2,4")) |
| - return std::string("iPad 2 (WiFi)"); |
| - if (!raw_name.compare("iPad2,5")) |
| - return std::string("iPad Mini (WiFi)"); |
| - if (!raw_name.compare("iPad2,6")) |
| - return std::string("iPad Mini (GSM)"); |
| - if (!raw_name.compare("iPad2,7")) |
| - return std::string("iPad Mini (GSM+CDMA)"); |
| - if (!raw_name.compare("iPad3,1")) |
| - return std::string("iPad 3 (WiFi)"); |
| - if (!raw_name.compare("iPad3,2")) |
| - return std::string("iPad 3 (GSM+CDMA)"); |
| - if (!raw_name.compare("iPad3,3")) |
| - return std::string("iPad 3 (GSM)"); |
| - if (!raw_name.compare("iPad3,4")) |
| - return std::string("iPad 4 (WiFi)"); |
| - if (!raw_name.compare("iPad3,5")) |
| - return std::string("iPad 4 (GSM)"); |
| - if (!raw_name.compare("iPad3,6")) |
| - return std::string("iPad 4 (GSM+CDMA)"); |
| - if (!raw_name.compare("iPad4,1")) |
| - return std::string("iPad Air (WiFi)"); |
| - if (!raw_name.compare("iPad4,2")) |
| - return std::string("iPad Air (Cellular)"); |
| - if (!raw_name.compare("iPad4,4")) |
| - return std::string("iPad mini 2G (WiFi)"); |
| - if (!raw_name.compare("iPad4,5")) |
| - return std::string("iPad mini 2G (Cellular)"); |
| - if (!raw_name.compare("i386")) |
| - return std::string("Simulator"); |
| - if (!raw_name.compare("x86_64")) |
| - return std::string("Simulator"); |
| - LOG(LS_WARNING) << "Failed to find device name (" << raw_name << ")"; |
| - return raw_name; |
| + return std::string(LookUpRealName(machine.get())); |
| +} |
| + |
| +std::string GetProcessName() { |
| + NSString* processName = [NSProcessInfo processInfo].processName; |
|
tkchin_webrtc
2016/02/23 17:39:27
The conversion to std::string seems unneeded becau
henrika_webrtc
2016/02/24 11:52:47
Filed https://bugs.chromium.org/p/webrtc/issues/de
|
| + return StdStringFromNSString(processName); |
| +} |
| + |
| +int GetProcessID() { |
| + return [NSProcessInfo processInfo].processIdentifier; |
| +} |
| + |
| +std::string GetOSVersionString() { |
| + NSString* osVersion = |
| + [NSProcessInfo processInfo].operatingSystemVersionString; |
| + return StdStringFromNSString(osVersion); |
| +} |
| + |
| +int GetProcessorCount() { |
| + return [NSProcessInfo processInfo].processorCount; |
| +} |
| + |
| +bool GetLowPowerModeEnabled() { |
| + return [NSProcessInfo processInfo].lowPowerModeEnabled; |
| } |
| } // namespace ios |