3 #if SILICONSTUDIO_PLATFORM_IOS
5 using System.Runtime.InteropServices;
8 namespace SiliconStudio.
Paradox.Graphics.Regression
10 public class iOSDeviceType
12 public enum HardwareModel
36 static extern int sysctlbyname([MarshalAs(UnmanagedType.LPStr)]
string property,
43 public static HardwareModel Version
48 var lengthPtr = Marshal.AllocHGlobal(
sizeof(int));
49 sysctlbyname(
"hw.machine", IntPtr.Zero, lengthPtr, IntPtr.Zero, 0);
51 var length = Marshal.ReadInt32(lengthPtr);
56 Marshal.FreeHGlobal(lengthPtr);
57 return HardwareModel.Unknown;
61 var hardwareStrPtr = Marshal.AllocHGlobal(length);
62 sysctlbyname(
"hw.machine", hardwareStrPtr, lengthPtr, IntPtr.Zero, 0);
65 var hardwareStr = Marshal.PtrToStringAnsi(hardwareStrPtr);
66 var ret = HardwareModel.Unknown;
70 if (hardwareStr ==
"iPhone1,1")
71 ret = HardwareModel.iPhone1G;
72 else if (hardwareStr ==
"iPhone1,2")
73 ret = HardwareModel.iPhone3G;
74 else if (hardwareStr ==
"iPhone2,1")
75 ret = HardwareModel.iPhone3GS;
76 else if (hardwareStr.StartsWith(
"iPhone3"))
77 ret = HardwareModel.iPhone4;
78 else if (hardwareStr.StartsWith(
"iPhone4"))
79 ret = HardwareModel.iPhone4S;
80 else if (hardwareStr.StartsWith(
"iPhone5"))
81 ret = HardwareModel.iPhone5;
82 else if (hardwareStr.StartsWith(
"iPhone6"))
83 ret = HardwareModel.iPhone5S;
84 else if (hardwareStr.StartsWith(
"iPod1"))
85 ret = HardwareModel.iPod1G;
86 else if (hardwareStr.StartsWith(
"iPod2"))
87 ret = HardwareModel.iPod2G;
88 else if (hardwareStr.StartsWith(
"iPod3"))
89 ret = HardwareModel.iPod3G;
90 else if (hardwareStr.StartsWith(
"iPod4"))
91 ret = HardwareModel.iPod4G;
92 else if (hardwareStr.StartsWith(
"iPod5"))
93 ret = HardwareModel.iPod5G;
94 else if (hardwareStr ==
"iPad1,1")
95 ret = HardwareModel.iPad;
96 else if (hardwareStr.StartsWith(
"iPad2"))
97 ret = HardwareModel.iPad2;
98 else if (hardwareStr ==
"iPad3,1" || hardwareStr ==
"iPad3,2" || hardwareStr ==
"iPad3,3")
99 ret = HardwareModel.iPad3;
100 else if (hardwareStr ==
"iPad3,4" || hardwareStr ==
"iPad3,5" || hardwareStr ==
"iPad3,6")
101 ret = HardwareModel.iPad4;
102 else if (hardwareStr.StartsWith(
"iPad4"))
103 ret = HardwareModel.iPadAir;
104 else if (hardwareStr ==
"i386")
105 ret = HardwareModel.Simulator;
108 Marshal.FreeHGlobal(lengthPtr);
109 Marshal.FreeHGlobal(hardwareStrPtr);
global::MonoTouch.Constants Constants