Home | History | Annotate | Download | only in base
      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 #if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS)
     16 #include <Carbon/Carbon.h>
     17 #endif
     18 #include <string>
     19 
     20 namespace rtc {
     21 
     22 ///////////////////////////////////////////////////////////////////////////////
     23 
     24 // Note that some of these functions work for both iOS and Mac OS X.  The ones
     25 // that are specific to Mac are #ifdef'ed as such.
     26 
     27 bool ToUtf8(const CFStringRef str16, std::string* str8);
     28 bool ToUtf16(const std::string& str8, CFStringRef* str16);
     29 
     30 #if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS)
     31 void DecodeFourChar(UInt32 fc, std::string* out);
     32 
     33 enum MacOSVersionName {
     34   kMacOSUnknown,       // ???
     35   kMacOSOlder,         // 10.2-
     36   kMacOSPanther,       // 10.3
     37   kMacOSTiger,         // 10.4
     38   kMacOSLeopard,       // 10.5
     39   kMacOSSnowLeopard,   // 10.6
     40   kMacOSLion,          // 10.7
     41   kMacOSMountainLion,  // 10.8
     42   kMacOSMavericks,     // 10.9
     43   kMacOSNewer,         // 10.10+
     44 };
     45 
     46 bool GetOSVersion(int* major, int* minor, int* bugfix);
     47 MacOSVersionName GetOSVersionName();
     48 bool GetQuickTimeVersion(std::string* version);
     49 
     50 // Runs the given apple script. Only supports scripts that does not
     51 // require user interaction.
     52 bool RunAppleScript(const std::string& script);
     53 #endif
     54 
     55 ///////////////////////////////////////////////////////////////////////////////
     56 
     57 }  // namespace rtc
     58 
     59 #endif  // WEBRTC_BASE_MACUTILS_H__
     60