1 /* 2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 #ifndef SDK_OBJC_NATIVE_SRC_AUDIO_HELPERS_H_ 12 #define SDK_OBJC_NATIVE_SRC_AUDIO_HELPERS_H_ 13 14 #include <string> 15 16 namespace webrtc { 17 namespace ios { 18 19 bool CheckAndLogError(BOOL success, NSError* error); 20 21 NSString* NSStringFromStdString(const std::string& stdString); 22 std::string StdStringFromNSString(NSString* nsString); 23 24 // Return thread ID as a string. 25 std::string GetThreadId(); 26 27 // Return thread ID as string suitable for debug logging. 28 std::string GetThreadInfo(); 29 30 // Returns [NSThread currentThread] description as string. 31 // Example: <NSThread: 0x170066d80>{number = 1, name = main} 32 std::string GetCurrentThreadDescription(); 33 34 #if defined(WEBRTC_IOS) 35 // Returns the current name of the operating system. 36 std::string GetSystemName(); 37 38 // Returns the current version of the operating system as a string. 39 std::string GetSystemVersionAsString(); 40 41 // Returns the version of the operating system in double representation. 42 // Uses a cached value of the system version. 43 double GetSystemVersion(); 44 45 // Returns the device type. 46 // Examples: ”iPhone” and ”iPod touch”. 47 std::string GetDeviceType(); 48 #endif // defined(WEBRTC_IOS) 49 50 // Returns a more detailed device name. 51 // Examples: "iPhone 5s (GSM)" and "iPhone 6 Plus". 52 std::string GetDeviceName(); 53 54 // Returns the name of the process. Does not uniquely identify the process. 55 std::string GetProcessName(); 56 57 // Returns the identifier of the process (often called process ID). 58 int GetProcessID(); 59 60 // Returns a string containing the version of the operating system on which the 61 // process is executing. The string is string is human readable, localized, and 62 // is appropriate for displaying to the user. 63 std::string GetOSVersionString(); 64 65 // Returns the number of processing cores available on the device. 66 int GetProcessorCount(); 67 68 #if defined(WEBRTC_IOS) 69 // Indicates whether Low Power Mode is enabled on the iOS device. 70 bool GetLowPowerModeEnabled(); 71 #endif 72 73 } // namespace ios 74 } // namespace webrtc 75 76 #endif // SDK_OBJC_NATIVE_SRC_AUDIO_HELPERS_H_ 77