OSDN Git Service

[added] Input.vibrate() for patterns and Input.cancelVibrate() to cancel any vibration.
authorbadlogicgames <badlogicgames@6c4fd544-2939-11df-bb46-9574ba5d0bfa>
Wed, 12 Jan 2011 02:46:32 +0000 (02:46 +0000)
committerbadlogicgames <badlogicgames@6c4fd544-2939-11df-bb46-9574ba5d0bfa>
Wed, 12 Jan 2011 02:46:32 +0000 (02:46 +0000)
[added] VibrateTest

backends/gdx-backend-android/src/com/badlogic/gdx/backends/android/AndroidInput.java
backends/gdx-backend-android/src/com/badlogic/gdx/backends/android/AndroidLocklessInput.java
backends/gdx-backend-jogl/src/com/badlogic/gdx/backends/jogl/JoglInput.java
backends/gdx-backend-lwjgl/src/com/badlogic/gdx/backends/lwjgl/LwjglInput.java
backends/gdx-backends-angle/src/com/badlogic/gdx/backends/angle/AngleInput.java
gdx/src/com/badlogic/gdx/Input.java
tests/gdx-tests-android/AndroidManifest.xml
tests/gdx-tests/src/com/badlogic/gdx/tests/VibratorTest.java [new file with mode: 0644]

index d4e4c1a..f27a0dc 100644 (file)
@@ -361,6 +361,14 @@ public final class AndroidInput implements Input, OnKeyListener, OnTouchListener
        @Override public void vibrate (int milliseconds) {\r
                vibrator.vibrate(milliseconds);\r
        }\r
+       \r
+       @Override public void vibrate (long[] pattern, int repeat) {\r
+               vibrator.vibrate(pattern, repeat);\r
+       }\r
+\r
+       @Override public void cancelVibrate () {\r
+               vibrator.cancel();\r
+       }\r
 \r
        @Override public boolean justTouched () {\r
                return justTouched;\r
index 5bcb729..c208b4e 100644 (file)
@@ -348,6 +348,14 @@ public final class AndroidLocklessInput implements Input, OnKeyListener, OnTouch
                vibrator.vibrate(milliseconds);\r
        }\r
 \r
+       @Override public void vibrate (long[] pattern, int repeat) {\r
+               vibrator.vibrate(pattern, repeat);\r
+       }\r
+\r
+       @Override public void cancelVibrate () {\r
+               vibrator.cancel();\r
+       }\r
+       \r
        @Override public boolean supportsVibrator () {\r
                return true;\r
        }\r
index 48f9fc5..09f03e7 100644 (file)
@@ -440,4 +440,10 @@ public class JoglInput implements Input, MouseMotionListener, MouseListener, Mou
        @Override public boolean isButtonPressed (int button) {\r
                return pressedButtons.contains(button);\r
        }\r
+\r
+       @Override public void vibrate (long[] pattern, int repeat) {\r
+       }\r
+\r
+       @Override public void cancelVibrate () {\r
+       }\r
 }\r
index 9ff1a47..730c368 100644 (file)
@@ -583,4 +583,10 @@ final class LwjglInput implements Input {
        @Override public boolean isButtonPressed (int button) {\r
                return Mouse.isButtonDown(toLwjglButton(button));\r
        }\r
+\r
+       @Override public void vibrate (long[] pattern, int repeat) {\r
+       }\r
+\r
+       @Override public void cancelVibrate () {\r
+       }\r
 }\r
index c22f348..f60f13d 100644 (file)
@@ -296,4 +296,10 @@ public class AngleInput implements Input {
        @Override public boolean isButtonPressed (int button) {\r
                return false;\r
        }\r
+\r
+       @Override public void vibrate (long[] pattern, int repeat) {\r
+       }\r
+\r
+       @Override public void cancelVibrate () {\r
+       }\r
 }\r
index 396b3a5..1dbad30 100644 (file)
@@ -298,6 +298,19 @@ public interface Input {
         * @param milliseconds the number of milliseconds to vibrate.\r
         */\r
        public void vibrate (int milliseconds);\r
+       \r
+       /**\r
+        * Vibrate with a given pattern.\r
+        * Pass in an array of ints that are the times at which to turn on or off the vibrator. The first one is how long to wait before turning it on, and then after that it alternates. If you want to repeat, pass the index into the pattern at which to start the repeat.\r
+        * @param pattern an array of longs of times to turn the vibrator on or off.\r
+        * @param the index into pattern at which to repeat, or -1 if you don't want to repeat.\r
+        */\r
+       public void vibrate (long[] pattern, int repeat);\r
+       \r
+       /**\r
+        * Stops the vibrator\r
+        */\r
+       public void cancelVibrate();\r
 \r
        /**\r
         * Sets whether the BACK button on Android should be caught. This will prevent the app from being paused. Will have no effect\r
index b9e0cb9..3c3721c 100644 (file)
@@ -60,5 +60,6 @@
        <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="5"/>
        <uses-permission android:name="android.permission.RECORD_AUDIO"/>
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+       <uses-permission android:name="android.permission.VIBRATE"/>
 
 </manifest> 
diff --git a/tests/gdx-tests/src/com/badlogic/gdx/tests/VibratorTest.java b/tests/gdx-tests/src/com/badlogic/gdx/tests/VibratorTest.java
new file mode 100644 (file)
index 0000000..32f5f80
--- /dev/null
@@ -0,0 +1,34 @@
+package com.badlogic.gdx.tests;\r
+\r
+import com.badlogic.gdx.Gdx;\r
+import com.badlogic.gdx.graphics.GL10;\r
+import com.badlogic.gdx.graphics.g2d.BitmapFont;\r
+import com.badlogic.gdx.graphics.g2d.SpriteBatch;\r
+import com.badlogic.gdx.tests.utils.GdxTest;\r
+\r
+public class VibratorTest extends GdxTest {\r
+\r
+       @Override public boolean needsGL20 () {\r
+               return false;\r
+       }\r
+\r
+       SpriteBatch batch;\r
+       BitmapFont font;\r
+       \r
+       @Override\r
+       public void create() {\r
+               batch = new SpriteBatch();\r
+               font = new BitmapFont();\r
+       }\r
+       \r
+       @Override \r
+       public void render() {\r
+               Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);\r
+               batch.begin();\r
+               font.draw(batch, "Touch screen to vibrate", 100, 100);\r
+               batch.end();\r
+               \r
+               if(Gdx.input.justTouched())\r
+                       Gdx.input.vibrate(100);         \r
+       }\r
+}\r