Adds low complexity audio mode for single core CPUs
BUG=webrtc:5538
R=tkchin@webrtc.org
Review URL: https://codereview.webrtc.org/1723163002 .
Cr-Commit-Position: refs/heads/master@{#11743}
diff --git a/webrtc/modules/utility/source/helpers_ios.mm b/webrtc/modules/utility/source/helpers_ios.mm
index 2d0ac09..4b28cee 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 @@
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;
+ 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