v1.1.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Groups Pages
system.h
1 /* -*- mode: C; c-basic-offset: 4; intent-tabs-mode: nil -*-
2  *
3  * This file is part of the public interface to the Sifteo SDK.
4  * Copyright <c> 2012 Sifteo, Inc. All rights reserved.
5  */
6 
7 #pragma once
8 #ifdef NOT_USERSPACE
9 # error This is a userspace-only header, not allowed by the current build.
10 #endif
11 
12 #include <sifteo/abi.h>
13 #include <sifteo/macros.h>
14 
15 namespace Sifteo {
16 
29 class System {
30  public:
31 
37  HardwareNone = _SYS_HW_VERSION_NONE,
38  HardwareGen2 = _SYS_HW_VERSION_GEN_2,
39  HardwareGen2_5 = _SYS_HW_VERSION_GEN_2_5
40  };
41 
49  static void exit() {
50  _SYS_exit();
51  }
52 
59  static void abort() {
60  _SYS_abort();
61  }
62 
78  static void yield() {
79  _SYS_yield();
80  }
81 
100  static void paint() {
101  _SYS_paint();
102  }
103 
121  static void paintUnlimited() {
122  _SYS_paintUnlimited();
123  }
124 
151  static void finish() {
152  _SYS_finish();
153  }
154 
160  static bool isDebug() {
161  return _SYS_lti_isDebug();
162  }
163 
173  static bool isSimDebug()
174  {
175  unsigned flag = 0;
176  SCRIPT_FMT(LUA, "Runtime():poke(%p, 1)", &flag);
177  return flag;
178  }
179 
193  static float batteryLevel() {
194  return _SYS_sysBatteryLevel() / float(_SYS_BATTERY_MAX);
195  }
196 
210  static void shutdown(bool now = false) {
211  return _SYS_shutdown(now ? 0 : _SYS_SHUTDOWN_WITH_UI);
212  }
213 
222  static void keepAwake() {
223  _SYS_keepAwake();
224  }
225 
246  static void setCubeRange(unsigned minimum, unsigned maximum) {
247  _SYS_setCubeRange(minimum, maximum);
248  }
249 
253  static void setCubeRange(unsigned count) {
254  _SYS_setCubeRange(count, count);
255  }
256 
268  static uint32_t osVersion() {
269 
270  if ((_SYS_getFeatures() & _SYS_FEATURE_SYS_VERSION) != 0) {
271  return _SYS_version() & _SYS_OS_VERSION_MASK;
272  }
273 
274  return _SYS_OS_VERSION_NONE;
275  }
276 
286  static uint8_t hardwareVersion() {
287 
288  if ((_SYS_getFeatures() & _SYS_FEATURE_SYS_VERSION) != 0) {
289  return _SYS_version() >> _SYS_HW_VERSION_SHIFT;
290  }
291 
292  return _SYS_HW_VERSION_NONE;
293  }
294 };
295 
300 } // namespace Sifteo