]> git.lizzy.rs Git - irrlicht.git/blob - source/Irrlicht/Android/CIrrDeviceAndroid.h
a1f13c3a411d7bb0fcde87a4481fc3cad7b057a5
[irrlicht.git] / source / Irrlicht / Android / CIrrDeviceAndroid.h
1 // Copyright (C) 2002-2011 Nikolaus Gebhardt\r
2 // This file is part of the "Irrlicht Engine".\r
3 // For conditions of distribution and use, see copyright notice in irrlicht.h\r
4 \r
5 #ifndef __C_IRR_DEVICE_ANDROID_H_INCLUDED__\r
6 #define __C_IRR_DEVICE_ANDROID_H_INCLUDED__\r
7 \r
8 #include "IrrCompileConfig.h"\r
9 \r
10 #ifdef _IRR_COMPILE_WITH_ANDROID_DEVICE_\r
11 \r
12 #include "CIrrDeviceStub.h"\r
13 #include "IrrlichtDevice.h"\r
14 #include "ICursorControl.h"\r
15 \r
16 #include <android/sensor.h>\r
17 #include <android_native_app_glue.h>\r
18 \r
19 namespace irr\r
20 {\r
21         class CIrrDeviceAndroid : public CIrrDeviceStub\r
22         {\r
23         public:\r
24                 CIrrDeviceAndroid(const SIrrlichtCreationParameters& param);\r
25 \r
26                 virtual ~CIrrDeviceAndroid();\r
27 \r
28                 virtual bool run();\r
29 \r
30                 virtual void yield();\r
31 \r
32                 virtual void sleep(u32 timeMs, bool pauseTimer = false);\r
33 \r
34                 virtual void setWindowCaption(const wchar_t* text);\r
35 \r
36                 virtual bool isWindowActive() const;\r
37 \r
38                 virtual bool isWindowFocused() const;\r
39 \r
40                 virtual bool isWindowMinimized() const;\r
41 \r
42                 virtual void closeDevice();\r
43 \r
44                 virtual void setResizable(bool resize = false);\r
45 \r
46                 virtual void minimizeWindow();\r
47 \r
48                 virtual void maximizeWindow();\r
49 \r
50                 virtual void restoreWindow();\r
51 \r
52                 virtual core::position2di getWindowPosition();\r
53 \r
54                 virtual E_DEVICE_TYPE getType() const;\r
55 \r
56                 virtual bool activateAccelerometer(float updateInterval);\r
57 \r
58                 virtual bool deactivateAccelerometer();\r
59 \r
60                 virtual bool isAccelerometerActive();\r
61 \r
62                 virtual bool isAccelerometerAvailable();\r
63 \r
64                 virtual bool activateGyroscope(float updateInterval);\r
65 \r
66                 virtual bool deactivateGyroscope();\r
67 \r
68                 virtual bool isGyroscopeActive();\r
69 \r
70                 virtual bool isGyroscopeAvailable();\r
71 \r
72         private:\r
73 \r
74                 static void handleAndroidCommand(android_app* app, int32_t cmd);\r
75 \r
76                 static s32 handleInput(android_app* app, AInputEvent* event);\r
77 \r
78                 void createDriver();\r
79 \r
80                 void createKeyMap();\r
81 \r
82                 video::SExposedVideoData& getExposedVideoData();\r
83 \r
84                 android_app* Android;\r
85                 ASensorManager* SensorManager;\r
86                 ASensorEventQueue* SensorEventQueue;\r
87                 const ASensor* Accelerometer;\r
88                 const ASensor* Gyroscope;\r
89 \r
90                 bool Focused;\r
91                 bool Initialized;\r
92                 bool Paused;\r
93 \r
94                 JNIEnv* JNIEnvAttachedToVM;\r
95 \r
96                 video::SExposedVideoData ExposedVideoData;\r
97 \r
98                 core::array<EKEY_CODE> KeyMap;\r
99         };\r
100 \r
101 } // end namespace irr\r
102 \r
103 #endif // _IRR_COMPILE_WITH_ANDROID_DEVICE_\r
104 #endif // __C_IRR_DEVICE_ANDROID_H_INCLUDED__\r