diff options
author | wwylele <wwylele@gmail.com> | 2016-03-18 21:27:36 +0100 |
---|---|---|
committer | wwylele <wwylele@gmail.com> | 2016-03-22 17:35:03 +0100 |
commit | db151efd0a50aa904a3021c45266f65355f6b4a7 (patch) | |
tree | 15b8142fb8a996dccc5e85799fb0c972f3ef758b /src/common/emu_window.h | |
parent | Merge pull request #1543 from lioncash/zero (diff) | |
download | yuzu-db151efd0a50aa904a3021c45266f65355f6b4a7.tar yuzu-db151efd0a50aa904a3021c45266f65355f6b4a7.tar.gz yuzu-db151efd0a50aa904a3021c45266f65355f6b4a7.tar.bz2 yuzu-db151efd0a50aa904a3021c45266f65355f6b4a7.tar.lz yuzu-db151efd0a50aa904a3021c45266f65355f6b4a7.tar.xz yuzu-db151efd0a50aa904a3021c45266f65355f6b4a7.tar.zst yuzu-db151efd0a50aa904a3021c45266f65355f6b4a7.zip |
Diffstat (limited to 'src/common/emu_window.h')
-rw-r--r-- | src/common/emu_window.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/common/emu_window.h b/src/common/emu_window.h index a0ae4c9fa..b6b7bfd26 100644 --- a/src/common/emu_window.h +++ b/src/common/emu_window.h @@ -121,6 +121,54 @@ public: } /** + * Gets the current accelerometer state (acceleration along each three axis). + * Axis explained: + * +x is the same direction as LEFT on D-pad. + * +y is normal to the touch screen, pointing outward. + * +z is the same direction as UP on D-pad. + * Units: + * 1 unit of return value = 1/512 g (measured by hw test), + * where g is the gravitational acceleration (9.8 m/sec2). + * @note This should be called by the core emu thread to get a state set by the window thread. + * @todo Implement accelerometer input in front-end. + * @return std::tuple of (x, y, z) + */ + std::tuple<s16, s16, s16> GetAccelerometerState() const { + // stubbed + return std::make_tuple(0, -512, 0); + } + + /** + * Gets the current gyroscope state (angular rates about each three axis). + * Axis explained: + * +x is the same direction as LEFT on D-pad. + * +y is normal to the touch screen, pointing outward. + * +z is the same direction as UP on D-pad. + * Orientation is determined by right-hand rule. + * Units: + * 1 unit of return value = (1/coef) deg/sec, + * where coef is the return value of GetGyroscopeRawToDpsCoefficient(). + * @note This should be called by the core emu thread to get a state set by the window thread. + * @todo Implement gyroscope input in front-end. + * @return std::tuple of (x, y, z) + */ + std::tuple<s16, s16, s16> GetGyroscopeState() const { + // stubbed + return std::make_tuple(0, 0, 0); + } + + /** + * Gets the coefficient for units conversion of gyroscope state. + * The conversion formula is r = coefficient * v, + * where v is angular rate in deg/sec, + * and r is the gyroscope state. + * @return float-type coefficient + */ + f32 GetGyroscopeRawToDpsCoefficient() const { + return 14.375f; // taken from hw test, and gyroscope's document + } + + /** * Returns currently active configuration. * @note Accesses to the returned object need not be consistent because it may be modified in another thread */ |