1 /*
2  *  Copyright 2007 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 WEBRTC_BASE_MACUTILS_H__
12 #define WEBRTC_BASE_MACUTILS_H__
13 
14 #include <CoreFoundation/CoreFoundation.h>
15 #include <string>
16 
17 namespace rtc {
18 
19 ///////////////////////////////////////////////////////////////////////////////
20 
21 // Note that some of these functions work for both iOS and Mac OS X.  The ones
22 // that are specific to Mac are #ifdef'ed as such.
23 
24 bool ToUtf8(const CFStringRef str16, std::string* str8);
25 bool ToUtf16(const std::string& str8, CFStringRef* str16);
26 
27 #if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS)
28 void DecodeFourChar(UInt32 fc, std::string* out);
29 
30 enum MacOSVersionName {
31   kMacOSUnknown,       // ???
32   kMacOSOlder,         // 10.2-
33   kMacOSPanther,       // 10.3
34   kMacOSTiger,         // 10.4
35   kMacOSLeopard,       // 10.5
36   kMacOSSnowLeopard,   // 10.6
37   kMacOSLion,          // 10.7
38   kMacOSMountainLion,  // 10.8
39   kMacOSMavericks,     // 10.9
40   kMacOSNewer,         // 10.10+
41 };
42 
43 MacOSVersionName GetOSVersionName();
44 #endif
45 
46 ///////////////////////////////////////////////////////////////////////////////
47 
48 }  // namespace rtc
49 
50 #endif  // WEBRTC_BASE_MACUTILS_H__
51