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
5 #ifndef __C_IRR_DEVICE_ANDROID_H_INCLUDED__
\r
6 #define __C_IRR_DEVICE_ANDROID_H_INCLUDED__
\r
9 #ifdef _IRR_COMPILE_WITH_ANDROID_DEVICE_
\r
11 #include "CIrrDeviceStub.h"
\r
12 #include "IrrlichtDevice.h"
\r
13 #include "ICursorControl.h"
\r
15 #include <android/sensor.h>
\r
16 #include <android_native_app_glue.h>
\r
20 class CIrrDeviceAndroid : public CIrrDeviceStub
\r
23 CIrrDeviceAndroid(const SIrrlichtCreationParameters& param);
\r
25 virtual ~CIrrDeviceAndroid();
\r
29 virtual void yield();
\r
31 virtual void sleep(u32 timeMs, bool pauseTimer = false);
\r
33 virtual void setWindowCaption(const wchar_t* text);
\r
35 virtual bool isWindowActive() const;
\r
37 virtual bool isWindowFocused() const;
\r
39 virtual bool isWindowMinimized() const;
\r
41 virtual void closeDevice();
\r
43 virtual void setResizable(bool resize = false);
\r
45 virtual void minimizeWindow();
\r
47 virtual void maximizeWindow();
\r
49 virtual void restoreWindow();
\r
51 virtual core::position2di getWindowPosition();
\r
53 virtual E_DEVICE_TYPE getType() const;
\r
55 virtual bool activateAccelerometer(float updateInterval);
\r
57 virtual bool deactivateAccelerometer();
\r
59 virtual bool isAccelerometerActive();
\r
61 virtual bool isAccelerometerAvailable();
\r
63 virtual bool activateGyroscope(float updateInterval);
\r
65 virtual bool deactivateGyroscope();
\r
67 virtual bool isGyroscopeActive();
\r
69 virtual bool isGyroscopeAvailable();
\r
73 static void handleAndroidCommand(android_app* app, int32_t cmd);
\r
75 static s32 handleInput(android_app* app, AInputEvent* event);
\r
77 void createDriver();
\r
79 void createKeyMap();
\r
81 video::SExposedVideoData& getExposedVideoData();
\r
83 android_app* Android;
\r
84 ASensorManager* SensorManager;
\r
85 ASensorEventQueue* SensorEventQueue;
\r
86 const ASensor* Accelerometer;
\r
87 const ASensor* Gyroscope;
\r
93 JNIEnv* JNIEnvAttachedToVM;
\r
95 video::SExposedVideoData ExposedVideoData;
\r
97 core::array<EKEY_CODE> KeyMap;
\r
100 } // end namespace irr
\r
102 #endif // _IRR_COMPILE_WITH_ANDROID_DEVICE_
\r
103 #endif // __C_IRR_DEVICE_ANDROID_H_INCLUDED__
\r