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