Modifies SDK and iOS detection for helper method that needs iOS 9+

BUG=NONE
R=tkchin@webrtc.org

Review URL: https://codereview.webrtc.org/1746023002 .

Cr-Commit-Position: refs/heads/master@{#11861}
This commit is contained in:
henrika
2016-03-03 16:59:50 +01:00
parent a4c76882b9
commit ab12c47160
3 changed files with 28 additions and 13 deletions

View File

@ -262,14 +262,17 @@ static void LogDeviceInfo() {
LOG(LS_INFO) << "LogDeviceInfo";
@autoreleasepool {
LOG(LS_INFO) << " system name: " << ios::GetSystemName();
LOG(LS_INFO) << " system version: " << ios::GetSystemVersion();
LOG(LS_INFO) << " system version 1(2): " << ios::GetSystemVersionAsString();
LOG(LS_INFO) << " system version 2(2): " << ios::GetSystemVersion();
LOG(LS_INFO) << " device type: " << ios::GetDeviceType();
LOG(LS_INFO) << " device name: " << ios::GetDeviceName();
LOG(LS_INFO) << " process name: " << ios::GetProcessName();
LOG(LS_INFO) << " process ID: " << ios::GetProcessID();
LOG(LS_INFO) << " OS version: " << ios::GetOSVersionString();
LOG(LS_INFO) << " processing cores: " << ios::GetProcessorCount();
#if defined(__IPHONE_9_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_9_0
LOG(LS_INFO) << " low power mode: " << ios::GetLowPowerModeEnabled();
#endif
}
}
#endif // !defined(NDEBUG)

View File

@ -37,11 +37,12 @@ std::string GetAudioSessionCategory();
// Returns the current name of the operating system.
std::string GetSystemName();
// Returns the current version of the operating system.
std::string GetSystemVersion();
// Returns the current version of the operating system as a string.
std::string GetSystemVersionAsString();
// Returns the version of the operating system as a floating point value.
float GetSystemVersionAsFloat();
// Returns the version of the operating system in double representation.
// Uses a cached value of the system version.
double GetSystemVersion();
// Returns the device type.
// Examples: ”iPhone” and ”iPod touch”.

View File

@ -23,6 +23,10 @@
namespace webrtc {
namespace ios {
bool isOperatingSystemAtLeastVersion(double version) {
return GetSystemVersion() >= version;
}
// 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.
@ -126,14 +130,18 @@ std::string GetSystemName() {
return StdStringFromNSString(osName);
}
std::string GetSystemVersion() {
std::string GetSystemVersionAsString() {
NSString* osVersion = [[UIDevice currentDevice] systemVersion];
return StdStringFromNSString(osVersion);
}
float GetSystemVersionAsFloat() {
NSString* osVersion = [[UIDevice currentDevice] systemVersion];
return osVersion.floatValue;
double GetSystemVersion() {
static dispatch_once_t once_token;
static double system_version;
dispatch_once(&once_token, ^{
system_version = [UIDevice currentDevice].systemVersion.doubleValue;
});
return system_version;
}
std::string GetDeviceType() {
@ -169,14 +177,17 @@ int GetProcessorCount() {
return [NSProcessInfo processInfo].processorCount;
}
#if defined(__IPHONE_9_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_9_0
bool GetLowPowerModeEnabled() {
NSProcessInfo* info = [NSProcessInfo processInfo];
// lowPoweredModeEnabled is only available on iOS9+.
if ([info respondsToSelector:@selector(lowPoweredModeEnabled)]) {
return info.lowPowerModeEnabled;
if (isOperatingSystemAtLeastVersion(9.0)) {
// lowPoweredModeEnabled is only available on iOS9+.
return [NSProcessInfo processInfo].lowPowerModeEnabled;
}
LOG(LS_WARNING) << "webrtc::ios::GetLowPowerModeEnabled() is not "
"supported. Requires at least iOS 9.0";
return false;
}
#endif
} // namespace ios
} // namespace webrtc