diff options
Diffstat (limited to 'src/net/java/sip/communicator/impl/hid/HIDServiceImpl.java')
-rw-r--r-- | src/net/java/sip/communicator/impl/hid/HIDServiceImpl.java | 442 |
1 files changed, 221 insertions, 221 deletions
diff --git a/src/net/java/sip/communicator/impl/hid/HIDServiceImpl.java b/src/net/java/sip/communicator/impl/hid/HIDServiceImpl.java index 00046d7..02552db 100644 --- a/src/net/java/sip/communicator/impl/hid/HIDServiceImpl.java +++ b/src/net/java/sip/communicator/impl/hid/HIDServiceImpl.java @@ -1,4 +1,4 @@ -/*
+/* * Jitsi, the OpenSource Java VoIP and Instant Messaging client. * * Copyright @ 2015 Atlassian Pty Ltd @@ -15,223 +15,223 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -
-package net.java.sip.communicator.impl.hid;
-
-import java.awt.*;
-import java.awt.event.*;
-
-import net.java.sip.communicator.service.hid.*;
-import net.java.sip.communicator.util.Logger;
-
-import org.jitsi.util.*;
-
-/**
- * Implementation of the HID service to provide way of regenerate key press
- * and mouse interactions.
- *
- * @author Sebastien Vincent
- */
-public class HIDServiceImpl implements HIDService
-{
- /**
- * The <tt>Logger</tt> used by the <tt>NeomediaActivator</tt> class and its
- * instances for logging output.
- */
- private final Logger logger = Logger.getLogger(HIDServiceImpl.class);
-
- /**
- * The robot used to perform some operations (mouse/key interactions).
- */
- private Robot robot = null;
-
- /**
- * Object to regenerates keys with JNI.
- */
- private NativeKeyboard nativeKeyboard = null;
-
- /**
- * Constructor.
- */
- protected HIDServiceImpl()
- {
- try
- {
- robot = new Robot();
- nativeKeyboard = new NativeKeyboard();
- }
- catch(Throwable e)
- {
- if(!GraphicsEnvironment.isHeadless())
- logger.error(
- "Error when creating Robot/NativeKeyboard instance", e);
- }
- }
-
- /**
- * Press a specific key using its keycode.
- *
- * @param keycode the Java keycode, all available keycodes can be found
- * in java.awt.event.KeyEvent class (VK_A, VK_SPACE, ...)
- * @see java.awt.event.KeyEvent
- */
- public void keyPress(int keycode)
- {
- if(OSUtils.IS_WINDOWS || OSUtils.IS_MAC)
- {
- /* do not allow modifiers for Windows (as
- * they are handled in native code with
- * VkScanCode) and Mac OS X
- */
- if(keycode == KeyEvent.VK_ALT ||
- keycode == KeyEvent.VK_SHIFT ||
- keycode == KeyEvent.VK_ALT_GRAPH)
- {
- return;
- }
- }
-
- /* AltGr does not seems to work with robot, handle it via our
- * JNI code
- */
- if(keycode == KeyEvent.VK_ALT_GRAPH)
- {
- symbolPress("altgr");
- }
- else
- {
- robot.keyPress(keycode);
- }
- }
-
- /**
- * Release a specific key using its keycode.
- *
- * @param keycode the Java keycode, all available keycode can be found
- * in java.awt.event.KeyEvent class (VK_A, VK_SPACE, ...)
- * @see java.awt.event.KeyEvent
- */
- public void keyRelease(int keycode)
- {
- /* AltGr does not seems to work with robot, handle it via our
- * JNI code
- */
- if(keycode == KeyEvent.VK_ALT_GRAPH)
- {
- symbolRelease("altgr");
- }
- else
- {
- robot.keyRelease(keycode);
- }
- }
-
- /**
- * Press a specific key using its char representation.
- *
- * @param key char representation of the key
- */
- public void keyPress(char key)
- {
- /* check for CTRL+X where X is [A-Z]
- * CTRL+A = 1, A = 65
- */
- if(key >= 1 && key <= 0x1A)
- {
- key = (char)(key + 64);
- robot.keyPress(key);
- return;
- }
-
- nativeKeyboard.keyPress(key);
- }
-
- /**
- * Release a specific key using its char representation.
- *
- * @param key char representation of the key
- */
- public void keyRelease(char key)
- {
- /* check for CTRL+X where X is [A-Z]
- * CTRL+A = 1, A = 65
- */
- if(key >= 1 && key <= 0x1A)
- {
- key = (char)(key + 64);
- robot.keyRelease(key);
- return;
- }
-
- if(nativeKeyboard != null)
- nativeKeyboard.keyRelease(key);
- }
-
- /**
- * Press a specific symbol (such as SHIFT or CTRL).
- *
- * @param symbol symbol name
- */
- private void symbolPress(String symbol)
- {
- if(nativeKeyboard != null)
- nativeKeyboard.symbolPress(symbol);
- }
-
- /**
- * Release a specific symbol (such as SHIFT or CTRL).
- *
- * @param symbol symbol name
- */
- private void symbolRelease(String symbol)
- {
- if(nativeKeyboard != null)
- nativeKeyboard.symbolRelease(symbol);
- }
-
- /**
- * Press a mouse button(s).
- *
- * @param btns button masks
- * @see java.awt.Robot#mousePress(int btns)
- */
- public void mousePress(int btns)
- {
- robot.mousePress(btns);
- }
-
- /**
- * Release a mouse button(s).
- *
- * @param btns button masks
- * @see java.awt.Robot#mouseRelease(int btns)
- */
- public void mouseRelease(int btns)
- {
- robot.mouseRelease(btns);
- }
-
- /**
- * Move the mouse on the screen.
- *
- * @param x x position on the screen
- * @param y y position on the screen
- * @see java.awt.Robot#mouseMove(int x, int y)
- */
- public void mouseMove(int x, int y)
- {
- robot.mouseMove(x, y);
- }
-
- /**
- * Release a mouse button(s).
- *
- * @param rotation wheel rotation (could be negative or positive depending
- * on the direction).
- * @see java.awt.Robot#mouseWheel(int wheelAmt)
- */
- public void mouseWheel(int rotation)
- {
- robot.mouseWheel(rotation);
- }
-}
+ +package net.java.sip.communicator.impl.hid; + +import java.awt.*; +import java.awt.event.*; + +import net.java.sip.communicator.service.hid.*; +import net.java.sip.communicator.util.Logger; + +import org.jitsi.util.*; + +/** + * Implementation of the HID service to provide way of regenerate key press + * and mouse interactions. + * + * @author Sebastien Vincent + */ +public class HIDServiceImpl implements HIDService +{ + /** + * The <tt>Logger</tt> used by the <tt>NeomediaActivator</tt> class and its + * instances for logging output. + */ + private final Logger logger = Logger.getLogger(HIDServiceImpl.class); + + /** + * The robot used to perform some operations (mouse/key interactions). + */ + private Robot robot = null; + + /** + * Object to regenerates keys with JNI. + */ + private NativeKeyboard nativeKeyboard = null; + + /** + * Constructor. + */ + protected HIDServiceImpl() + { + try + { + robot = new Robot(); + nativeKeyboard = new NativeKeyboard(); + } + catch(Throwable e) + { + if(!GraphicsEnvironment.isHeadless()) + logger.error( + "Error when creating Robot/NativeKeyboard instance", e); + } + } + + /** + * Press a specific key using its keycode. + * + * @param keycode the Java keycode, all available keycodes can be found + * in java.awt.event.KeyEvent class (VK_A, VK_SPACE, ...) + * @see java.awt.event.KeyEvent + */ + public void keyPress(int keycode) + { + if(OSUtils.IS_WINDOWS || OSUtils.IS_MAC) + { + /* do not allow modifiers for Windows (as + * they are handled in native code with + * VkScanCode) and Mac OS X + */ + if(keycode == KeyEvent.VK_ALT || + keycode == KeyEvent.VK_SHIFT || + keycode == KeyEvent.VK_ALT_GRAPH) + { + return; + } + } + + /* AltGr does not seems to work with robot, handle it via our + * JNI code + */ + if(keycode == KeyEvent.VK_ALT_GRAPH) + { + symbolPress("altgr"); + } + else + { + robot.keyPress(keycode); + } + } + + /** + * Release a specific key using its keycode. + * + * @param keycode the Java keycode, all available keycode can be found + * in java.awt.event.KeyEvent class (VK_A, VK_SPACE, ...) + * @see java.awt.event.KeyEvent + */ + public void keyRelease(int keycode) + { + /* AltGr does not seems to work with robot, handle it via our + * JNI code + */ + if(keycode == KeyEvent.VK_ALT_GRAPH) + { + symbolRelease("altgr"); + } + else + { + robot.keyRelease(keycode); + } + } + + /** + * Press a specific key using its char representation. + * + * @param key char representation of the key + */ + public void keyPress(char key) + { + /* check for CTRL+X where X is [A-Z] + * CTRL+A = 1, A = 65 + */ + if(key >= 1 && key <= 0x1A) + { + key = (char)(key + 64); + robot.keyPress(key); + return; + } + + nativeKeyboard.keyPress(key); + } + + /** + * Release a specific key using its char representation. + * + * @param key char representation of the key + */ + public void keyRelease(char key) + { + /* check for CTRL+X where X is [A-Z] + * CTRL+A = 1, A = 65 + */ + if(key >= 1 && key <= 0x1A) + { + key = (char)(key + 64); + robot.keyRelease(key); + return; + } + + if(nativeKeyboard != null) + nativeKeyboard.keyRelease(key); + } + + /** + * Press a specific symbol (such as SHIFT or CTRL). + * + * @param symbol symbol name + */ + private void symbolPress(String symbol) + { + if(nativeKeyboard != null) + nativeKeyboard.symbolPress(symbol); + } + + /** + * Release a specific symbol (such as SHIFT or CTRL). + * + * @param symbol symbol name + */ + private void symbolRelease(String symbol) + { + if(nativeKeyboard != null) + nativeKeyboard.symbolRelease(symbol); + } + + /** + * Press a mouse button(s). + * + * @param btns button masks + * @see java.awt.Robot#mousePress(int btns) + */ + public void mousePress(int btns) + { + robot.mousePress(btns); + } + + /** + * Release a mouse button(s). + * + * @param btns button masks + * @see java.awt.Robot#mouseRelease(int btns) + */ + public void mouseRelease(int btns) + { + robot.mouseRelease(btns); + } + + /** + * Move the mouse on the screen. + * + * @param x x position on the screen + * @param y y position on the screen + * @see java.awt.Robot#mouseMove(int x, int y) + */ + public void mouseMove(int x, int y) + { + robot.mouseMove(x, y); + } + + /** + * Release a mouse button(s). + * + * @param rotation wheel rotation (could be negative or positive depending + * on the direction). + * @see java.awt.Robot#mouseWheel(int wheelAmt) + */ + public void mouseWheel(int rotation) + { + robot.mouseWheel(rotation); + } +} |