nn.pp.rccore

## Interface RCCore

-     public interface RCCore

  The main interface of rccore which defines all the methods. The class that is interested in creating an implementation of the rccore has to implement this interface and all the methods it contains.
  Version:
    1.2

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static class` | `RCCore.ClientSessionInitProperties` The properties set using this method are sent in the client initialization message as key value pairs
    `static class` | `RCCore.ColorDepth` Enumeration for pre-defined Color Depth values
    `static class` | `RCCore.ColorSubsampling` Enumeration for pre-defined Color Subsampling values
    `static class` | `RCCore.Compression` Enumeration for pre-defined Compression values
    `static class` | `RCCore.Interpolation` Enumeration for Interpolation values
    `static class` | `RCCore.KeyboardLed` Enumeration for Keyboard LED Status
    `static class` | `RCCore.MouseMode` Enumeration for different Mouse modes supported
    `static class` | `RCCore.MouseSyncType` Enumeration for the type of Mouse Sync
    `static class` | `RCCore.OsdPosition` Values for positioning of the OSD
    `static class` | `RCCore.PowerControlOperations` Power Control Operations
    `static class` | `RCCore.Predefine` Enumeration for encoding presets
    `static class` | `RCCore.PreferredConnectionType` The Preferred connection type
    `static class` | `RCCore.Smoothing` Enumeration for Smoothing values
    `static class` | `RCCore.VideoStatus` The status of video signal

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addAudioStatusListener(AudioStatusListener listener)` Add an Audio Status Listener
    `void` | `addConnectionEventListener(ConnectionEventListener listener, int mask)` Adds the specified connection event listener to receive connection events.
    `void` | `addKeyboardInfoListener(KeyboardInfoListener listener, int mask)` Adds the specified Keyboard Info listener to receive Keyboard Info events.
    `void` | `addKeyboardListener(KeyboardListener listener)` Adds the specified Keyboard listener to receive Keyboard events.
    `void` | `addMouseEventListener(MouseEventListener listener, int mask)` Adds the specified mouse listener to receive mouse events
    `void` | `addMouseModeListener(MouseModeListener listener, int mask)` Adds the specified Mouse event listener to receive Mouse events.
    `void` | `addNotificationListener(NotificationListener listener)` Adds the specified Notification listener to receive notification events.
    `void` | `addSmartCardStatusListener(SmartCardStatusListener listener)` Add an SmartCard Status Listener
    `void` | `addTerminalBlockListener(TerminalBlockListener listener)` Add an Terminal Block Status Listener
    `void` | `addVideoEventListener(VideoEventListener listener, int mask)` Adds the specified video event listener to receive video events.
    `void` | `addVirtualMediaInfoListener(VirtualMediaInfoListener listener, int mask)` Adds the specified Virtual Media Info listener to receive Virtual Media Info events.
    `void` | `addVncListener(VncListener listener)` Add an VNC Event Listener
    `void` | `cancelVideoSettings()` Undo any changes made related to video settings
    `void` | `clearVideoSettingsCache()` Clear the video settings cache
    `void` | `connectRCWithEricKey(java.lang.String host, int port, boolean sslMode, java.lang.String portID, java.lang.String ericKey)` Connect to a KX using an eRic webs session key.
    `void` | `connectRCWithRdmSession(java.lang.String host, int port, boolean sslMode, java.lang.String portID, java.lang.String rdmSession, java.lang.String proxyConnectionId, java.lang.String proxyUseSSL)` Connect to a KX using a RDM Session ID and key.
    `void` | `connectRCWithUserLogin(java.lang.String host, int port, boolean sslMode, java.lang.String portID, java.lang.String username, java.lang.String password)` Connect to a KX using a user name and a password.
    `void` | `connectVnc(java.lang.String host, int port, java.lang.String password, java.lang.String proxyConnectionId)` Connect to a VNC server (and not to a KX device!)
    `void` | `disconnect()` Disconnect from the `RCCore`
    `void` | `dispose()` If you don't need the core any longer, call this `dispose()` method.
    `void` | `enforceSMMHotKeyCheck(boolean check)` Enforce whether to check for the existence of Hotkey before going into Single Cursor Mode
    `RCCore.ColorSubsampling` | `getActualColorSubsampling()` Returns the current color sub-sampling that is actually really used.
    `<CT> CT` | `getCapablity(java.lang.Class<CT> capablity)` Get an extension interface.
    `boolean` | `getClientPostprocessingEnabled()` Return whether client video post-processing is enabled
    `int` | `getConnectedUsers()` Returns the total number of connected users to the target.
    `int` | `getContrastEnhance()` Get the contrast enhancement in video post-processing.
    `java.awt.Cursor` | `getCursor()` Get the cursor shape of the display
    `javax.net.ssl.SSLSocketFactory` | `getDefaultSslSocketFactory()` Get the JRE default implementation for SSL socket factory.
    `java.lang.String` | `getDeviceName()` Returns the name of the device, to which connection is made
    `RCCore.ColorDepth` | `getEncodingColorDepth()` Returns the current color depth used.
    `RCCore.ColorDepth` | `getEncodingColorDepthForPredefine(RCCore.Predefine predefine)` Get the color depth belonging to an encoding predefine
    `RCCore.ColorSubsampling` | `getEncodingColorSubsampling()` Returns the current color sub-sampling used.
    `RCCore.Compression` | `getEncodingCompression()` Returns the current compression used.
    `RCCore.Compression` | `getEncodingCompressionForPredefine(RCCore.Predefine predefine)` Get the compression type belonging to an encoding predefine
    `boolean` | `getEncodingLossyForPredefine(RCCore.Predefine predefine)` Get whether lossy encoding is enabled for an encoding predefine
    `java.lang.String` | `getEricSessionId()` Returns the eric session ID for the connection.
    `int` | `getFramesPerSecond()` Returns the Frames Per Second (FPS) decoded by the KVM protocol
    `java.lang.String` | `getHdmiAudioFormat()` Returns the audio format supported for HDMI audio in format "samplerate_bits_channels" (e.g.
    `int` | `getIncomingTrafficSpeed()` Returns the incoming traffic speed in bytes per second
    `RCCore.Interpolation` | `getInterpolation()` Returns the current setting for Interpolation.
    `java.util.List<RCCore.KeyboardLed>` | `getKeyboardLedState()` Returns a list with the Keyboard LED status (Scroll/NUM/CAPS)
    `java.util.List<IKeyboardMacro>` | `getKeyboardMacroList()` Deprecated.
    `int` | `getKeyCode(int vkCode, char keyChar, int keyLocation)` Get the key code from the translator for a given key event
    `int` | `getKeyCode(int vkCode, char keyChar, int keyLocation, int modifiers)` Get the key code from the translator for a given key event
    `int` | `getKeyCode(java.awt.event.KeyEvent keyEvent)` Get the key code from the translator for a given key event
    `java.util.Map<java.lang.String,java.lang.Boolean>` | `getLicensedFeatures()` Returns the list of all licensed features.
    `java.util.Locale` | `getLocalKeyboardMapping()` Returns a Locale which specifies the current keyboard language mapping
    `AudioStatusListener.AudioStatus` | `getMicrophoneStatus()` Get the current microphone status of the target
    `RCCore.MouseMode` | `getMouseMode()` Returns the current mouse mode.
    `RCCore.OsdPosition` | `getOsdPosition()` Get the position of the OSD on the screen
    `int` | `getOutgoingTrafficSpeed()` Returns the outgoing traffic speed in bytes per second
    `java.util.List<? extends IKvmPort>` | `getPortList()` Returns a List of KvmPort objects containing the port list
    `RCCore.PreferredConnectionType` | `getPreferredConnectionType()` Get the preferred connection type
    `java.lang.String` | `getProtocolVersion()` Returns the protocol version that is being used to connect to the device
    `javax.swing.JComponent` | `getRCJComponent()` Get a Swing component which represents the KVM console.
    `int` | `getRenderedFramesPerSecond()` Returns the Frames Per Second (FPS) rendered on the screen
    `java.lang.String` | `getRendererType()` Returns a short description about the used renderer
    `java.awt.Dimension` | `getResolution()` Get the Resolution of the target video
    `double` | `getScalingX()` Returns a Double value for the Scaling factor for the X axis.
    `double` | `getScalingY()` Returns a Double value for the Scaling factor for the Y axis.
    `int` | `getServerSessionId()` Returns the server ID related to the connection
    `RCCore.Smoothing` | `getSmoothing()` Returns the current setting for Smoothing.
    `java.awt.image.BufferedImage` | `getSnapshot()` Get the target's screenshot as a snapshot
    `java.awt.image.BufferedImage` | `getSnapshot(java.awt.Rectangle rect)` Get a part of the target's screenshot as a snapshot
    `java.util.Locale` | `getSoftKeyboardMapping()` Deprecated.
    `AudioStatusListener.AudioStatus` | `getSpeakerStatus()` Get the current speaker status of the target
    `javax.net.ssl.SSLSocketFactory` | `getSslSocketFactoryWithNoCertCheck()` Get an implementation for SSL socket factory which does not perform any certificate checks.
    `java.util.List<RCCore.ColorDepth>` | `getSupportedColorDepthsForCompression(RCCore.Compression compression)` Get a list of color depths allowed for the specified compression.
    `java.util.List<Snapshot.ColorFormat>` | `getSupportedColorFormatsForRawVideoSnapshots()` Get the supported color formats for raw video snapshots
    `java.util.List<RCCore.Compression>` | `getSupportedCompressionsForColorDepth(RCCore.ColorDepth colorDepth)` Get a list of compressions allowed for the specified color depth.
    `java.util.List<RCCore.ColorDepth>` | `getSupportedEncodingColorDepths()` Returns a list of supported color depth values.
    `java.util.List<RCCore.ColorSubsampling>` | `getSupportedEncodingColorSubsamplings()` Returns list of supported color sub-sampling values.
    `java.util.List<RCCore.Compression>` | `getSupportedEncodingCompressions()` Returns a list of supported compression levels.
    `java.util.List<RCCore.Predefine>` | `getSupportedEncodingPredefines()` Returns a list of supported pre-defined encoding values.
    `java.util.List<java.util.Locale>` | `getSupportedLocalKeyboardMappings()` Returns a List of Locales which specifies the list of different language mappings supported.
    `java.util.List<RCCore.MouseMode>` | `getSupportedMouseModes()` Returns a list of supported mouse modes.
    `ITerminalBlockConfig` | `getTerminalBlockConfig()` Get the current configuration of the Terminal Block
    `ITerminalBlockInputSettings` | `getTerminalBlockInputSettings()` Get the current Terminal Block input settings
    `IUsbProfileList` | `getUsbProfileList()` Returns the Usb Profile List
    `IVideoSettings` | `getVideoSettings()` Get the current video settings.
    `int` | `getVideoUpdateDelay()` Get the amount of time (in milliseconds) to wait before sending in a new video update request.
    `int` | `getVirtualMediaDriveCount()` Deprecated.
    `java.util.List<IVMMountRequestResponse>` | `getVirtualMediaRemoteIsoList()` Returns a List of Remote ISO images configured on the server
    `IVMConfigInfo` | `getVMConfigInfo()` Returns the Virtual Media configuration.
    `boolean` | `hasExclusiveModePermission()` Deprecated.
    `boolean` | `hasMonitorModePermission()` Deprecated.
    `boolean` | `isAudioSupportEnabled()` tell whether the target supports audio feature
    `boolean` | `isCimLanguageOptionsSupported()` Returns whether CIM language options are supported.
    `boolean` | `isClearVideoSettingsCacheSupported()` Returns whether clearing the video settings cache is supported
    `boolean` | `isColorCalibrationSupported()` Returns whether Color Calibration is supported.
    `boolean` | `isEncodingAuto()` Returns whether the current encoding is set to auto
    `boolean` | `isEncodingAutoSupported()` Returns whether automatic detection of the connection speed is supported
    `boolean` | `isEncodingChangeSupported()` Returns whether the video encoding settings can be changed.
    `boolean` | `isEncodingIct4k444ForAllResolutionsSupported()` Returns whether 4:4:4 color sub-sampling is supported for all resolutions in ICT 4K encoding.
    `boolean` | `isEncodingICT4kSupported()` Returns whether ICT (JPEG-like) encoding for 4k resolutions is supported.
    `boolean` | `isEncodingICTSupported()` Returns whether ICT (JPEG-like) encoding is supported.
    `boolean` | `isEncodingLossy()` Returns whether the current encoding used is lossy
    `boolean` | `isEncodingLossySupported()` Returns whether lossy encoding is supported.
    `boolean` | `isEthernetGigabitSupported()` Returns whether 1G Ethernet Connection speed is supported.
    `boolean` | `isExclusiveMode()` Deprecated.
    `boolean` | `isFeatureLicensed(java.lang.String feature)` Returns whether a certain feature is licensed.
    `boolean` | `isFPS()` Get whether Frames Per second data is collected.
    `boolean` | `isHdmiAudioSupported()` Returns whether Audio via HDMI is available
    `boolean` | `isHideClientMenuEnforced()` Returns whether hiding the client's toolbar and menu bar is enforced by configuration
    `boolean` | `isLocalKeyboardMappingPersistent()` Deprecated.
    `boolean` | `isMonitorMode()` Returns whether Monitor Mode (view-only) is currently enabled.
    `boolean` | `isMouseModeChangeSupported()` Returns whether changing the mouse mode is supported.
    `boolean` | `isMouseSyncSupported()` Returns whether Mouse Sync operation is supported or not.
    `boolean` | `isOsdDisabled()` Returns whether the OSD messages are disabled.
    `boolean` | `isPortListRefreshSupported()` Returns whether refreshing the port list is supported.
    `boolean` | `isPortScanSupported()` Returns whether the Port Scan feature is supported
    `boolean` | `isPowerControlEnabled()` Returns whether power control is enabled for the connected port
    `boolean` | `isRawVideoSnapshotSupported()` Returns whether Raw Video Snapshot is supported for the connected port
    `boolean` | `isScaleToFit()` Returns whether scale to fit is currently chosen.
    `boolean` | `isScaleToFitKeepAr()` Returns whether in scale to fit mode the aspect ratio should be kept.
    `boolean` | `isSingleCursorMode()` Returns whether the mouse is in single cursor mode.
    `boolean` | `isSingleCursorModeReallyActive()` Returns whether the Single Mouse Mode is really active.
    `boolean` | `isSingleCursorModeSupported()` Returns whether single cursor mouse mode is supported.
    `boolean` | `isSmartCardSupportEnabled()` tell whether the target supports SmartCard feature
    `boolean` | `isSunKeyboardSupported()` Returns whether Sun keyboard handling is supported
    `boolean` | `isTerminalBlockPulseSupportEnabled()` tell whether the target supports the Terminal Block Pulse feature
    `boolean` | `isTerminalBlockSupportEnabled()` tell whether the target supports the Terminal Block feature
    `boolean` | `isTrafficSpeed()` Get whether traffic speed data is collected.
    `boolean` | `isVideoAutoAdjustSupported()` Returns whether video auto sensing is supported.
    `boolean` | `isVideoRefreshSupported()` Returns whether Video Refresh is supported.
    `boolean` | `isVideoSettingsSupported()` Returns whether changing the video settings is supported.
    `boolean` | `isVirtualMediaReadOnly()` Deprecated.
    `boolean` | `isVirtualMediaRemoteIsoSupported()` Returns whether Remote ISO Mount (samba) is supported for Virtual Media feature.
    `boolean` | `isVirtualMediaSupported()` Deprecated.
    `void` | `mountOrUnmountRemoteIso(IVMMountRequestResponse iso)` Mount or Unmount the Remote ISO Image (samba) based upon the option parameter set in the VMMountRequestResponse
    `void` | `performPowerControl(RCCore.PowerControlOperations operation)` Perform a power control operation on the target
    `void` | `removeAudioStatusListener(AudioStatusListener listener)` Remove an audio status listener
    `void` | `removeConnectionEventListener(ConnectionEventListener listener)` Removes the specified Connection Event listener
    `void` | `removeKeyboardInfoListener(KeyboardInfoListener listener)` Removes the specified Keyboard Info listener
    `void` | `removeKeyboardListener(KeyboardListener listener)` Removes the specified Keyboard listener
    `void` | `removeMouseEventListener(MouseEventListener listener)` Removes the specified mouse listener
    `void` | `removeMouseModeListener(MouseModeListener listener)` Removes the specified Mouse Event listener
    `void` | `removeNotificationListener(NotificationListener listener)` Removes the specified Notification listener
    `void` | `removeSmartCardStatusListener(SmartCardStatusListener listener)` Remove an SmartCard status listener
    `void` | `removeTerminalBlockListener(TerminalBlockListener listener)` Remove an Terminal Block status listener
    `void` | `removeVideoEventListener(VideoEventListener listener)` Removes the specified Video Event listener
    `void` | `removeVirtualMediaInfoListener(VirtualMediaInfoListener listener)` Removes the specified Virtual Media Info listener
    `void` | `removeVncListener(VncListener listener)` Remove an VNC Event Listener
    `void` | `requestPortListRefresh()` Request a refresh of the port list.
    `void` | `requestRawVideoSnapshot(Snapshot.ColorFormat format)` Request a raw video snapshot from the target.
    `void` | `requestUsbProfileChange(int profileId)` Request to Change current USB Profile to the supplied Profile ID
    `void` | `requestVideoAutoSense()` Request Video Auto Sense
    `void` | `requestVideoColorCalibration()` Request Video Color Calibration
    `void` | `requestVideoRefresh()` Request Video Refresh
    `void` | `requestVideoSettingsUpdates()` Request a video settings updates from the device.
    `void` | `resetVideoSettingsAllModes()` Reset all stored video settings on the device.
    `void` | `resetVideoSettingsThisMode()` Reset the video settings for the current video mode.
    `void` | `resetVideoSettingsThisPort()` Reset all video settings for the current port.
    `void` | `saveVideoSettings()` Store the video settings which are changed on the device permanently
    `void` | `sendChatMessage(java.lang.String message)` Deprecated.
    `void` | `sendKeyboardEvent(int rcKeyCode, boolean released)` Send a Keyboard Event
    `void` | `sendKeyboardEvent(java.awt.event.KeyEvent ke)` Method to send Keyboard event directly to the target
    `void` | `sendKeyboardMacro(IKeyboardMacro macro, boolean prependModifiers)` Send Keyboard Macro
    `void` | `sendMouseEvent(boolean relative, int x, int y, int buttonMask)` Method to send Mouse event directly to the target
    `void` | `sendMouseWheelEvent(int rotation, int buttonMask)` Method to send Mouse Wheel event directly to the target
    `void` | `setAppletParameterMap(java.util.LinkedHashMap<java.lang.String,java.lang.String> parameterMap)` Sets the out of band Applet Parameters to the handler
    `void` | `setAssociatedRcCores(java.util.List<AssociatedRCCore> associated, Association association, boolean clientSideMouseAssociations)` Set a list of associated RCCore instances which are used together in a logical unit, e.g.
    `void` | `setCaptureRightAway(boolean capture)` Capture the mouse right away without the user clicking inside the video (single cursor mode only!).
    `void` | `setClientFrameSizeChanged(java.awt.Dimension newSize)` Set the size of the KVM window.
    `void` | `setClientPostprocessingEnabled(boolean enabled)` Enable further client video post-processing.
    `void` | `setClientSessionInitProperties(java.util.Map<RCCore.ClientSessionInitProperties,java.lang.String> props)` The properties set using this method are sent in the client initialization message as key value pairs
    `void` | `setConnectionProperties(boolean auto, RCCore.Compression comp, RCCore.ColorDepth colorDepth, RCCore.ColorSubsampling subsampling, RCCore.Smoothing smoothing)` Set all the connection properties (compression, color depth, etc.) at once.
    `void` | `setContrastEnhance(int contrast)` Apply a contrast enhancement in video post-processing.
    `void` | `setCursor(java.awt.Cursor cursor)` Set the cursor shape for the display
    `void` | `setEncodingColorDepth(RCCore.ColorDepth colorDepth, boolean commit)` Sets the color depth value for the video encoding
    `void` | `setEncodingColorSubsampling(RCCore.ColorSubsampling colorSubsampling, boolean commit)` Sets the color sub-sampling value
    `void` | `setEncodingCompression(RCCore.Compression compression, boolean commit)` Sets the compression value
    `void` | `setEncodingLossy(boolean lossy, boolean commit)` Sets the Encoding Lossy value based upon the parameter
    `void` | `setEncodingPredefine(RCCore.Predefine encoding)` Sets the pre-defined encoding value
    `void` | `setEncodingToAuto()` Sets the encoding to automatic detection
    `void` | `setExclusiveMode(boolean mode)` Deprecated.
    `void` | `setFPS(boolean enable)` Set whether Frames Per second data should be collected.
    `void` | `setHotkeys(java.util.Map<java.lang.Integer,javax.swing.KeyStroke> hotkeys)` Sets a number of hotkeys.
    `void` | `setInterpolation(RCCore.Interpolation interpolation)` Set interpolation based on the parameter value.
    `void` | `setKeyboardMacroList(java.util.List<IKeyboardMacro> list)` Deprecated.
    `void` | `setLocalKeyboardMapping(java.util.Locale mapping)` Sets the Local Keyboard Mapping to a different Locale (language)
    `void` | `setLocalKeyboardMappingPersistent(boolean persistent)` Deprecated.
    `void` | `setLowBandwidth(boolean lowBandwidth)` Deprecated.
    `void` | `setMonitorMode(boolean mode)` Sets the Monitor Mode (view-only) based upon the parameter
    `void` | `setMouseMode(RCCore.MouseMode mouseMode)` Sets the mouse mode
    `void` | `setMultipleScreenConfiguration(java.awt.Point screenOffset, java.awt.Dimension desktopResolution)` Set the static multi-screen configuration
    `void` | `setNoiseFilter(int noiseFilter)` Sets the Noise Filter value.
    `void` | `setOSD(java.lang.String osdMsg, int duration, boolean blank)` Generate an OSD message.
    `void` | `setOsdAlpha(int alphaPercent)` Set the alpha channel (transparency) of the OSD in percent.
    `void` | `setOsdBgColor(java.awt.Color color)` Set the background color of the OSD.
    `void` | `setOsdDisabled(boolean disabled)` Set whether the OSD messages are disabled.
    `void` | `setOsdFgColor(java.awt.Color color)` Set the foreground color of the OSD
    `void` | `setOsdFont(java.awt.Font font)` Set the font to be used for the OSD
    `void` | `setOsdMargin(int margin)` Set the margin for the OSD in pixels.
    `void` | `setOsdPosition(RCCore.OsdPosition position)` Set the position of the OSD on the screen
    `void` | `setPreferredConnectionType(RCCore.PreferredConnectionType preferred)` Set the preferred connection type
    `void` | `setPreferredNumberOfDecoderThreads(java.lang.Integer threads)` Set the number of video decoding threads
    `void` | `setScaleToFit(boolean fit, boolean keepAr, java.awt.Dimension d)` Set scale to fit the current window size
    `void` | `setScaling(double xs, double ys)` Turn on fixed scaling with the specified x and y values
    `void` | `setSingleCursorHelper(SingleCursorHelper helper)` Set a helper object to support Single Mouse Mode.
    `void` | `setSingleCursorMode(boolean mode)` Sets the mouse mode to Single Mouse Mode or Double (regular) Mouse Mode.
    `void` | `setSingleMouseModeHotkey(java.lang.String name, javax.swing.KeyStroke key)` Sets the hot key to temporarily or permanently leave Single Mouse mode.
    `void` | `setSmoothing(RCCore.Smoothing smoothing)` Set smoothing based on the parameter value.
    `void` | `setSoftKeyboardMapping(java.util.Locale mapping)` Deprecated.
    `void` | `setSslSocketFactory(javax.net.ssl.SSLSocketFactory factory, boolean verifyHostname)` Set the SSL socket factory that is used by the connection and whether a host name verification should be performed additionally to certificate checks.
    `void` | `setTrafficSpeed(boolean enable)` Set whether traffic speed data should be collected.
    `void` | `setVideoSettings(IVideoSettings videoSettings)` Sets the Video Settings Value and send them to the target
    `void` | `setVideoUpdateDelay(int delay)` Set the amount of time (in milliseconds) to wait before sending in a new video update request.
    `void` | `setX509TrustManager(javax.net.ssl.X509TrustManager trustManager)` Deprecated. This method is deprecated! It is superseded by the `setSslSocketFactory(SSLSocketFactory, boolean)` method.
    `void` | `stopVideoSettingsUpdates()` Stop requesting video settings updates from the device.
    `void` | `switchKvmPort(int index, java.lang.String portID)` Switches to the specified PortID (either port number or unique port ID).
    `void` | `syncMouse(RCCore.MouseSyncType syncType)` Request to Sync the mouse
    `void` | `temporarilyLeaveSingleCursorMode()` Temporarily leave the single mouse mode
    `void` | `updateTerminalBlockConfig(ITerminalBlockConfig config)` Set a new configuration for the Terminal Block

- - ### Method Detail

    - #### dispose

          void dispose()

      If you don't need the core any longer, call this `dispose()` method.

    - #### getRCJComponent

          javax.swing.JComponent getRCJComponent()

      Get a Swing component which represents the KVM console.

      Works only with graphical RCCore, created using the loadGraphicalRCCore() and similar methods of RCCoreFactory.

      Returns:
        `JComponent` the component the core renders the Remote Console to
      See Also:
        `RCCoreFactory.loadGraphicalRCCore(java.util.logging.Logger)`, `RCCoreFactory.loadGraphicalRCCoreNoVolatileImage(java.util.logging.Logger)`, `RCCoreFactory.loadGraphicalReadOnlyRCCore(java.util.logging.Logger)`

    - #### getDefaultSslSocketFactory

          javax.net.ssl.SSLSocketFactory getDefaultSslSocketFactory()

      Get the JRE default implementation for SSL socket factory. This one uses the operating system to perform security and certificate checks.
      Returns:
        The JRE default SSL socket factory
      See Also:
        `getSslSocketFactoryWithNoCertCheck()`, `setSslSocketFactory(SSLSocketFactory, boolean)`

    - #### getSslSocketFactoryWithNoCertCheck

          javax.net.ssl.SSLSocketFactory getSslSocketFactoryWithNoCertCheck()

      Get an implementation for SSL socket factory which does not perform any certificate checks. This is the default SSL socket factory used for RCCore. Please note that there are security risks using that one.
      Returns:
        The not-checking SSL socket factory
      See Also:
        `getDefaultSslSocketFactory()`, `setSslSocketFactory(SSLSocketFactory, boolean)`

    - #### setSslSocketFactory

          void setSslSocketFactory(javax.net.ssl.SSLSocketFactory factory,
                                   boolean verifyHostname)

      Set the SSL socket factory that is used by the connection and whether a host name verification should be performed additionally to certificate checks.

      By default, an SSL socket factory which does not perform any checks is used and host name verification is off. This is a potential security risk. If you want to change that, use a different SSL socket factory.

      RCCore SSL implementation can be configured to use different SSL socket factories in order to implement certificate checking and other things. By default, an SSL socket factory is used which does not perform any security checks at all.

      Parameters:
        `factory` - The SSL socket factory to use
        `verifyHostname` - Whether host name verification should be performed
      See Also:
        `getDefaultSslSocketFactory()`, `getSslSocketFactoryWithNoCertCheck()`

    - #### setX509TrustManager

          @Deprecated
          void setX509TrustManager(javax.net.ssl.X509TrustManager trustManager)

      Deprecated. This method is deprecated! It is superseded by the `setSslSocketFactory(SSLSocketFactory, boolean)` method.

      Set a X509 certificate trust manager. This can be used to check whether the server's certificate is valid. If no trust manager is set, the default trust manager is used which accepts all certificates as valid (which is a security risk!).

      Parameters:
        `trustManager` - The X509 certificate trust manager

    - #### connectRCWithUserLogin

          void connectRCWithUserLogin(java.lang.String host,
                                      int port,
                                      boolean sslMode,
                                      java.lang.String portID,
                                      java.lang.String username,
                                      java.lang.String password)
                               throws java.io.IOException,
                                      RCException

      Connect to a KX using a user name and a password.

      Parameters:
        `host` - host to connect to
        `port` - port number on which the connection is to be made to the host
        `sslMode` - value for ssl mode
        `portID` - unique port ID to connect to
        `username` - user name to authenticate
        `password` - password for the associated username
      Throws:
        `java.io.IOException` - if an I/O error occurs.
        `RCException` - if an KVM related error occurs
      See Also:
        `connectRCWithEricKey(String, int, boolean, String, String)`, `connectRCWithRdmSession(String, int, boolean, String, String, String, String)`, `disconnect()`, `ConnectionEventListener.connected()`

    - #### connectRCWithRdmSession

          void connectRCWithRdmSession(java.lang.String host,
                                       int port,
                                       boolean sslMode,
                                       java.lang.String portID,
                                       java.lang.String rdmSession,
                                       java.lang.String proxyConnectionId,
                                       java.lang.String proxyUseSSL)
                                throws java.io.IOException,
                                       RCException

      Connect to a KX using a RDM Session ID and key.

      Pass RDM SessionID and SessionKey as follows: rdmSession = "\"" + rdmSessionId + "\":\"" + rdmSessionKey + "\""

      Parameters:
        `host` - host to connect to
        `port` - port number on which the connection is to be made to the host
        `sslMode` - value for ssl mode
        `portID` - unique port ID to connect to
        `rdmSession` - rdmSessionID and rdmSessionKey concatenated in the above format
        `proxyConnectionId` - proxyConnectionId if CC-SG is in proxy mode
        `proxyUseSSL` - whether to use SSL or not in CC-SG proxy mode
      Throws:
        `java.io.IOException` - if an I/O error occurs.
        `RCException` - if an KVM related error occurs
      See Also:
        `connectRCWithEricKey(String, int, boolean, String, String)`, `connectRCWithUserLogin(String, int, boolean, String, String, String)`, `disconnect()`, `ConnectionEventListener.connected()`

    - #### connectRCWithEricKey

          void connectRCWithEricKey(java.lang.String host,
                                    int port,
                                    boolean sslMode,
                                    java.lang.String portID,
                                    java.lang.String ericKey)
                             throws java.io.IOException,
                                    RCException

      Connect to a KX using an eRic webs session key.

      Parameters:
        `host` - host to connect to
        `port` - port number on which the connection is to be made to the host
        `sslMode` - value for ssl mode
        `portID` - unique port ID to connect to
        `ericKey` - eRic webs session key
      Throws:
        `java.io.IOException` - if an I/O error occurs.
        `RCException` - if an KVM related error occurs
      See Also:
        `connectRCWithUserLogin(String, int, boolean, String, String, String)`, `connectRCWithRdmSession(String, int, boolean, String, String, String, String)`, `disconnect()`, `ConnectionEventListener.connected()`

    - #### connectVnc

          void connectVnc(java.lang.String host,
                          int port,
                          java.lang.String password,
                          java.lang.String proxyConnectionId)
                   throws java.io.IOException,
                          RCException

      Connect to a VNC server (and not to a KX device!)
      Parameters:
        `host` - host to connect to
        `port` - port number on which the connection is to be made to the host
        `password` - the VNC password
        `proxyConnectionId` - proxyConnectionId if CC-SG is in proxy mode; `null` if no CC-SG connection is made, or CC-SG not in proxy mode
      Throws:
        `java.io.IOException` - if an I/O error occurs.
        `RCException` - if an KVM related error occurs
      See Also:
        `disconnect()`, `ConnectionEventListener.connected()`, `VncListener`

    - #### disconnect

          void disconnect()

      Disconnect from the `RCCore`

      See Also:
        `ConnectionEventListener.disconnected(Exception)`

    - #### isEncodingChangeSupported

          boolean isEncodingChangeSupported()

      Returns whether the video encoding settings can be changed.
      Returns:
        `true` if the encoding settings can be changed, `false` otherwise.
      See Also:
        `VideoEventListener.encodingChangeAllowed(boolean)`

    - #### isEncodingAutoSupported

          boolean isEncodingAutoSupported()

      Returns whether automatic detection of the connection speed is supported

      Some devices have the capability to automatically find the best video encoding given the current network bandwidth. This method informs the client about this capability.

      Returns:
        true if automatic detection of the connection speed is supported, false otherwise
      See Also:
        `VideoEventListener.encodingAutoSupportedChanged(boolean)`, `VideoEventListener.encodingAutoChanged(boolean)`, `isEncodingAuto()`, `setEncodingToAuto()`

    - #### getSupportedEncodingPredefines

          java.util.List<RCCore.Predefine> getSupportedEncodingPredefines()

      Returns a list of supported pre-defined encoding values.

      There are some "pre-defined" encoding settings, representing the recommended settings for a given network bandwidth. The client may use any of the supported values, which are advertised via this method.

      Returns:
        a list of Predefine values containing supported encoding values.
      See Also:
        `VideoEventListener.supportedEncodingPredefinesChanged(List)`, `setEncodingPredefine(Predefine)`

    - #### getSupportedEncodingColorDepths

          java.util.List<RCCore.ColorDepth> getSupportedEncodingColorDepths()

      Returns a list of supported color depth values.

      Besides using RCCore.Predefine values, the encoding can also be adjusted manually by specifying the `RCCore.ColorDepth` and `RCCore.Compression`. This method reports the values that are supported as color depths.

      Returns:
        a list of `RCCore.ColorDepth` values containing supported color depth values.
      See Also:
        `VideoEventListener.supportedEncodingColorDepthsChanged(List)`, `VideoEventListener.encodingColorDepthChanged(RCCore.ColorDepth)`, `setEncodingColorDepth(ColorDepth, boolean)`, `getEncodingColorDepth()`

    - #### getSupportedEncodingCompressions

          java.util.List<RCCore.Compression> getSupportedEncodingCompressions()

      Returns a list of supported compression levels.

      Besides using `RCCore.Predefine` values, the encoding can also be adjusted manually by specifying the `RCCore.ColorDepth` and `RCCore.Compression`. This method reports the values that are supported as compression algorithms.

      Returns:
        a list of `RCCore.Compression` values containing supported compression levels.
      See Also:
        `VideoEventListener.supportedEncodingCompressionsChanged(List)`, `VideoEventListener.encodingCompressionChanged(RCCore.Compression)`, `setEncodingCompression(Compression, boolean)`, `getEncodingCompression()`

    - #### getSupportedEncodingColorSubsamplings

          java.util.List<RCCore.ColorSubsampling> getSupportedEncodingColorSubsamplings()

      Returns list of supported color sub-sampling values.
      Returns:
        a list of `RCCore.ColorSubsampling` values containing supported color sub-sampling values.
      See Also:
        `VideoEventListener.supportedEncodingColorSubsamplingsChanged(List)`, `VideoEventListener.encodingColorSubsamplingChanged(RCCore.ColorSubsampling)`, `getEncodingColorSubsampling()`, `setEncodingColorSubsampling(ColorSubsampling, boolean)`

    - #### isEncodingLossySupported

          boolean isEncodingLossySupported()

      Returns whether lossy encoding is supported.

      Old KX2 devices may have the ability to use a lossy video encoding. That adds compression artifacts, but reduces network bandwidth. This method tells the client whether this is supported or not.

      On KX3/KX4, this is not used. The JPEG compression levels of KX3 are always lossy by definition, and the handling of the "lossy" setting will be completely ignored.

      Returns:
        `true` if Lossy Encoding is supported, `false` otherwise.
      See Also:
        `VideoEventListener.encodingLossySupportedChanged(boolean)`, `VideoEventListener.encodingLossyChanged(boolean)`, `isEncodingLossy()`, `setEncodingLossy(boolean, boolean)`

    - #### isEncodingICTSupported

          boolean isEncodingICTSupported()

      Returns whether ICT (JPEG-like) encoding is supported.

      The KX3 and KX4 support "ICT" encoding, while other devices (KX2) don't

      Returns:
        `true` if ICT Encoding is supported, `false` otherwise.
      See Also:
        `VideoEventListener.encodingIctSupportedChanged(boolean)`

    - #### isEncodingICT4kSupported

          boolean isEncodingICT4kSupported()

      Returns whether ICT (JPEG-like) encoding for 4k resolutions is supported.

      The KX4 supports "ICT4K" encoding, while other devices (KX3, KX2) don't.

      Returns:
        `true` if ICT/4k Encoding is supported, `false` otherwise.
      See Also:
        `VideoEventListener.encodingIct4kSupportedChanged(boolean)`

    - #### isEncodingIct4k444ForAllResolutionsSupported

          boolean isEncodingIct4k444ForAllResolutionsSupported()

      Returns whether 4:4:4 color sub-sampling is supported for all resolutions in ICT 4K encoding.

      This is the case for KX4-101 firmware 4.4 and above, and KX3NG.

      Returns:
        `true` if 4:4:4 is supported for all resolutions, `false` otherwise.
      See Also:
        `VideoEventListener.encodingIct4k444ForAllResolutionsSupportedChanged(boolean)`

    - #### isEncodingAuto

          boolean isEncodingAuto()

      Returns whether the current encoding is set to auto
      Returns:
        true if the current encoding is set to auto, false otherwise
      See Also:
        `isEncodingAutoSupported()`, `setEncodingToAuto()`, `VideoEventListener.encodingAutoChanged(boolean)`

    - #### getEncodingColorDepth

          RCCore.ColorDepth getEncodingColorDepth()

      Returns the current color depth used.

      Besides using `RCCore.Predefine` values, the encoding can also be adjusted manually by specifying the `RCCore.ColorDepth` and `RCCore.Compression`. This method reports the value that is currently used as color depth.

      Returns:
        the current value for the color depth used for encoding.
      See Also:
        `setEncodingColorDepth(ColorDepth, boolean)`, `getSupportedEncodingColorDepths()`, `VideoEventListener.supportedEncodingColorDepthsChanged(List)`

    - #### getEncodingCompression

          RCCore.Compression getEncodingCompression()

      Returns the current compression used.

      Besides using `RCCore.Predefine` values, the encoding can also be adjusted manually by specifying the `RCCore.ColorDepth` and `RCCore.Compression`. This method reports the value that is currently used as compression level.

      Returns:
        the current compression used for encoding.
      See Also:
        `setEncodingCompression(Compression, boolean)`, `getSupportedEncodingCompressions()`, `VideoEventListener.supportedEncodingCompressionsChanged(List)`

    - #### getEncodingColorSubsampling

          RCCore.ColorSubsampling getEncodingColorSubsampling()

      Returns the current color sub-sampling used.
      Returns:
        the current value for the color sub-sampling used for encoding.
      See Also:
        `getActualColorSubsampling()`, `setEncodingColorSubsampling(ColorSubsampling, boolean)`, `getSupportedEncodingColorSubsamplings()`, `VideoEventListener.supportedEncodingColorSubsamplingsChanged(List)`

    - #### getActualColorSubsampling

          RCCore.ColorSubsampling getActualColorSubsampling()

      Returns the current color sub-sampling that is actually really used. That might be different from the subsampling set because not all subsamplings are supported by all resolutions.
      Returns:
        the current value for the color sub-sampling used for encoding.
      See Also:
        `getEncodingColorSubsampling()`, `setEncodingColorSubsampling(ColorSubsampling, boolean)`, `getSupportedEncodingColorSubsamplings()`, `VideoEventListener.supportedEncodingColorSubsamplingsChanged(List)`

    - #### isEncodingLossy

          boolean isEncodingLossy()

      Returns whether the current encoding used is lossy

      Old KX2 devices may have the ability to use a lossy video encoding. That adds compression artifacts, but reduces network bandwidth. This method tells the client whether this is active or not.

      On KX3/KX4, this is not used. The JPEG compression levels of KX3 are always lossy by definition, and the handling of the "lossy" setting will be completely ignored.

      Returns:
        `true` if the current Encoding is Lossy, `false` otherwise.
      See Also:
        `setEncodingLossy(boolean, boolean)`, `isEncodingLossySupported()`, `VideoEventListener.encodingLossyChanged(boolean)`

    - #### setEncodingToAuto

          void setEncodingToAuto()
                          throws java.io.IOException

      Sets the encoding to automatic detection
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `isEncodingAuto()`, `isEncodingAutoSupported()`, `VideoEventListener.encodingAutoChanged(boolean)`

    - #### setEncodingPredefine

          void setEncodingPredefine(RCCore.Predefine encoding)
                             throws java.io.IOException

      Sets the pre-defined encoding value

      There are some "pre-defined" encoding settings, representing the recommended settings for a given network bandwidth. The client may use any of the supported values, which are set via this method.

      Parameters:
        `encoding` - the new endcoding value
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `getSupportedEncodingPredefines()`

    - #### setEncodingColorDepth

          void setEncodingColorDepth(RCCore.ColorDepth colorDepth,
                                     boolean commit)
                              throws java.io.IOException

      Sets the color depth value for the video encoding

      Besides using `RCCore.Predefine` values, the encoding can also be adjusted manually by specifying the `RCCore.ColorDepth` and `RCCore.Compression`. This method sets the value that used as color depths.

      Parameters:
        `colorDepth` - the new color depth value
        `commit` - apply the settings right now (if set to true) or later (if set to false) in case the caller wants to set more encoding parameters (compression or lossy)
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `getEncodingColorDepth()`, `getSupportedEncodingColorDepths()`, `VideoEventListener.encodingColorDepthChanged(RCCore.ColorDepth)`

    - #### setEncodingCompression

          void setEncodingCompression(RCCore.Compression compression,
                                      boolean commit)
                               throws java.io.IOException,
                                      java.lang.IllegalArgumentException

      Sets the compression value

      Besides using `RCCore.Predefine` values, the encoding can also be adjusted manually by specifying the `RCCore.ColorDepth` and `RCCore.Compression`. This method sets the value that used as compression level.

      Parameters:
        `compression` - the new compression value
        `commit` - apply the settings right now (if set to true) or later (if set to false) in case the caller wants to set more encoding parameters (color depth or lossy)
      Throws:
        `java.io.IOException` - if an I/O error occurs.
        `java.lang.IllegalArgumentException` - if the parameter value is invalid
      See Also:
        `getEncodingCompression()`, `getSupportedEncodingCompressions()`, `VideoEventListener.encodingCompressionChanged(RCCore.Compression)`

    - #### setEncodingLossy

          void setEncodingLossy(boolean lossy,
                                boolean commit)
                         throws java.io.IOException

      Sets the Encoding Lossy value based upon the parameter

      Old KX2 devices may have the ability to use a lossy video encoding. That adds compression artifacts, but reduces network bandwidth. This method activates or deactivates the lossy mode.

      On KX3/KX4, this is not used. The JPEG compression levels of KX3 are always lossy by definition, and the handling of the "lossy" setting will be completely ignored.

      Parameters:
        `lossy` - if `true` sets the Encoding to Lossy.
        `commit` - apply the settings right now (if set to true) or later (if set to false) in case the caller wants to set more encoding parameters (color depth or compression)
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `isEncodingLossy()`, `isEncodingLossySupported()`, `VideoEventListener.encodingLossyChanged(boolean)`

    - #### setEncodingColorSubsampling

          void setEncodingColorSubsampling(RCCore.ColorSubsampling colorSubsampling,
                                           boolean commit)
                                    throws java.io.IOException

      Sets the color sub-sampling value

      Note: The subsampling really used might be different from the subsampling configured because not all subsamplings are supported by all resolutions.

      Parameters:
        `colorSubsampling` - the new color sub-sampling value
        `commit` - apply the settings right now (if set to true) or later (if set to false) in case the caller wants to set more encoding parameters (compression or lossy)
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `getEncodingColorSubsampling()`, `getActualColorSubsampling()`, `getSupportedEncodingColorSubsamplings()`, `VideoEventListener.encodingColorSubsamplingChanged(RCCore.ColorSubsampling)`, `VideoEventListener.encodingActualColorSubsamplingChanged(RCCore.ColorSubsampling)`

    - #### getSupportedColorDepthsForCompression

          java.util.List<RCCore.ColorDepth> getSupportedColorDepthsForCompression(RCCore.Compression compression)

      Get a list of color depths allowed for the specified compression. For some compression types, not all values may be allowed.
      Parameters:
        `compression` - the compression type the supported color depths are queried for
      Returns:
        a list of ColorDepth values containing supported color depth values for the given compression.
      See Also:
        `getSupportedCompressionsForColorDepth(ColorDepth)`

    - #### getSupportedCompressionsForColorDepth

          java.util.List<RCCore.Compression> getSupportedCompressionsForColorDepth(RCCore.ColorDepth colorDepth)

      Get a list of compressions allowed for the specified color depth. For some color depth types, not all values may be allowed.
      Parameters:
        `colorDepth` - the color depth the supported compression types are queried for
      Returns:
        a list of Compression values containing supported compression levels for the given color depth.
      See Also:
        `getSupportedColorDepthsForCompression(Compression)`, `getEncodingLossyForPredefine(Predefine)`

    - #### getEncodingColorDepthForPredefine

          RCCore.ColorDepth getEncodingColorDepthForPredefine(RCCore.Predefine predefine)

      Get the color depth belonging to an encoding predefine
      Parameters:
        `predefine` - the predefine the color depth is queried for
      Returns:
        the color depth value
      See Also:
        `getEncodingCompressionForPredefine(Predefine)`, `getEncodingLossyForPredefine(Predefine)`

    - #### getEncodingCompressionForPredefine

          RCCore.Compression getEncodingCompressionForPredefine(RCCore.Predefine predefine)

      Get the compression type belonging to an encoding predefine
      Parameters:
        `predefine` - the predefine the compression is queried for
      Returns:
        the compression value
      See Also:
        `getEncodingCompressionForPredefine(Predefine)`, `getEncodingLossyForPredefine(Predefine)`

    - #### getEncodingLossyForPredefine

          boolean getEncodingLossyForPredefine(RCCore.Predefine predefine)

      Get whether lossy encoding is enabled for an encoding predefine

      NOTE: This does not apply for ICT encoding. If ICT encoding is enabled, this shall be ignored.

      Parameters:
        `predefine` - the predefine the lossy setting is queried for
      Returns:
        the lossy setting
      See Also:
        `getSupportedColorDepthsForCompression(Compression)`, `getEncodingCompressionForPredefine(Predefine)`

    - #### setPreferredConnectionType

          void setPreferredConnectionType(RCCore.PreferredConnectionType preferred)

      Set the preferred connection type

      This is only relevant for KX3. The KX3 may use different compression algorithms, e.g. for automatic encoding detection.

      Parameters:
        `preferred` - the preferred connection type
      See Also:
        `getPreferredConnectionType()`

    - #### getPreferredConnectionType

          RCCore.PreferredConnectionType getPreferredConnectionType()

      Get the preferred connection type

      This is only relevant for KX3. The KX3 may use different compression algorithms, e.g. for automatic encoding detection.

      Returns:
        the preferred connection type
      See Also:
        `setPreferredConnectionType(RCCore.PreferredConnectionType)`

    - #### setPreferredNumberOfDecoderThreads

          void setPreferredNumberOfDecoderThreads(java.lang.Integer threads)

      Set the number of video decoding threads

      Beginning with KX4, it is possible to decode the KVM image in parallel using decoder threads. By default, the number of threads is determined automatically by the number of CPU cores. However, it can be overridden using this method.

      When `null` or a number < 0 is specified as number of threads, the number is determined automatically (the default). When 0 is specified, there are no image decoder threads used; all image decoding is done in the main protocol decoder thread. Use 1 or more if separate image decoder threads are desired.

      Parameters:
        `threads` - the desired number of threads (`null` for automatic)

    - #### setMultipleScreenConfiguration

          void setMultipleScreenConfiguration(java.awt.Point screenOffset,
                                              java.awt.Dimension desktopResolution)

      Set the static multi-screen configuration

      In case the KVM session is part of a multi-monitor screen configuration and the separate clients are launched independently from each other, the client needs to know the virtual desktop configuration. The user needs to set the resolution of the full virtual desktop, and the offset of this screen within the virtual desktop.

      Parameters:
        `screenOffset` - the offset of this screen within the virtual desktop
        `desktopResolution` - the resolution of the full virtual desktop, including all screens

    - #### isVideoSettingsSupported

          boolean isVideoSettingsSupported()

      Returns whether changing the video settings is supported.
      Returns:
        `true` if video settings can be changed, `false` otherwise.
      See Also:
        `VideoEventListener.videoSettingsSupportChanged(boolean)`, `requestVideoSettingsUpdates()`, `getVideoSettings()`, `setVideoSettings(IVideoSettings)`

    - #### isVideoAutoAdjustSupported

          boolean isVideoAutoAdjustSupported()

      Returns whether video auto sensing is supported.
      Returns:
        `true` if Video Auto Adjust is supported, `false` otherwise.
      See Also:
        `VideoEventListener.videoAutoAdjustSupportChanged(boolean)`, `requestVideoAutoSense()`

    - #### isColorCalibrationSupported

          boolean isColorCalibrationSupported()

      Returns whether Color Calibration is supported.
      Returns:
        `true` if Color Calibration is supported, `false` otherwise.
      See Also:
        `VideoEventListener.colorCalibrationSupportChanged(boolean)`, `requestVideoColorCalibration()`

    - #### requestVideoSettingsUpdates

          void requestVideoSettingsUpdates()
                                    throws java.io.IOException

      Request a video settings updates from the device.

      Then, the new video settings are sent through the `VideoEventListener.videoSettingsUpdated(IVideoSettings)` method.

      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `isVideoSettingsSupported()`, `VideoEventListener.videoSettingsUpdated(IVideoSettings)`, `stopVideoSettingsUpdates()`

    - #### stopVideoSettingsUpdates

          void stopVideoSettingsUpdates()
                                 throws java.io.IOException

      Stop requesting video settings updates from the device.
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `requestVideoSettingsUpdates()`

    - #### getVideoSettings

          IVideoSettings getVideoSettings()

      Get the current video settings.

      This will only return the (cached) video settings if video settings updates are requested by the caller (i.e. `requestVideoSettingsUpdates()` has been called before and `stopVideoSettingsUpdates()` has not been called) and video settings are supported.

      Returns:
        The current video settings
      See Also:
        `requestVideoSettingsUpdates()`, `stopVideoSettingsUpdates()`, `isVideoSettingsSupported()`

    - #### setVideoSettings

          void setVideoSettings(IVideoSettings videoSettings)
                         throws java.io.IOException

      Sets the Video Settings Value and send them to the target
      Parameters:
        `videoSettings` - new video settings value
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `getVideoSettings()`, `isVideoSettingsSupported()`, `saveVideoSettings()`, `cancelVideoSettings()`

    - #### setNoiseFilter

          void setNoiseFilter(int noiseFilter)
                       throws java.io.IOException

      Sets the Noise Filter value.

      This is a shortcut to prevent the need to go through all the video settings.

      Parameters:
        `noiseFilter` - new noise filter value
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `setVideoSettings(IVideoSettings)`, `getVideoSettings()`, `isVideoSettingsSupported()`

    - #### saveVideoSettings

          void saveVideoSettings()
                          throws java.io.IOException

      Store the video settings which are changed on the device permanently
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `setVideoSettings(IVideoSettings)`, `isVideoSettingsSupported()`

    - #### cancelVideoSettings

          void cancelVideoSettings()
                            throws java.io.IOException

      Undo any changes made related to video settings
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `setVideoSettings(IVideoSettings)`, `isVideoSettingsSupported()`

    - #### resetVideoSettingsAllModes

          void resetVideoSettingsAllModes()
                                   throws java.io.IOException

      Reset all stored video settings on the device. This affects all video modes and all ports.
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `setVideoSettings(IVideoSettings)`, `isVideoSettingsSupported()`

    - #### resetVideoSettingsThisMode

          void resetVideoSettingsThisMode()
                                   throws java.io.IOException

      Reset the video settings for the current video mode.
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `setVideoSettings(IVideoSettings)`, `isVideoSettingsSupported()`

    - #### resetVideoSettingsThisPort

          void resetVideoSettingsThisPort()
                                   throws java.io.IOException

      Reset all video settings for the current port.
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `setVideoSettings(IVideoSettings)`, `isVideoSettingsSupported()`

    - #### requestVideoAutoSense

          void requestVideoAutoSense()
                              throws java.io.IOException

      Request Video Auto Sense
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `isVideoAutoAdjustSupported()`

    - #### requestVideoColorCalibration

          void requestVideoColorCalibration()
                                     throws java.io.IOException

      Request Video Color Calibration
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `isColorCalibrationSupported()`

    - #### isVideoRefreshSupported

          boolean isVideoRefreshSupported()

      Returns whether Video Refresh is supported.
      Returns:
        `true` if Video refresh is supported, `false` otherwise.
      See Also:
        `VideoEventListener.videoRefreshSupportChanged(boolean)`, `requestVideoRefresh()`

    - #### requestVideoRefresh

          void requestVideoRefresh()
                            throws java.io.IOException

      Request Video Refresh
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `isVideoRefreshSupported()`

    - #### isClearVideoSettingsCacheSupported

          boolean isClearVideoSettingsCacheSupported()

      Returns whether clearing the video settings cache is supported
      Returns:
        `true` if clearing the video settings cache is supported, `false` otherwise.
      See Also:
        `VideoEventListener.clearCacheSupportChanged(boolean)`, `clearVideoSettingsCache()`

    - #### clearVideoSettingsCache

          void clearVideoSettingsCache()
                                throws java.io.IOException

      Clear the video settings cache
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `isClearVideoSettingsCacheSupported()`

    - #### getResolution

          java.awt.Dimension getResolution()

      Get the Resolution of the target video
      Returns:
        `Dimension` of the target video screen.
      See Also:
        `VideoEventListener.resolutionChanged(Dimension)`

    - #### setContrastEnhance

          void setContrastEnhance(int contrast)

      Apply a contrast enhancement in video post-processing.

      This is only used for KX3/KX4. For KX2 devices, it is ignored.

      The `contrast` value should be between 0 (no contrast enhancement) and 100 (maximum contrast enhancement).

      Parameters:
        `contrast` - the contrast enhancement in video post-processing
      See Also:
        `getContrastEnhance()`

    - #### getContrastEnhance

          int getContrastEnhance()

      Get the contrast enhancement in video post-processing.
      Returns:
        the contrast enhancement in video post-processing
      See Also:
        `setContrastEnhance(int)`

    - #### setClientPostprocessingEnabled

          void setClientPostprocessingEnabled(boolean enabled)

      Enable further client video post-processing.

      This is only used for KX3/KX4. For KX2 devices, it is ignored.

      This algorithm tries to reduce compression artifacts, especially at color transition points. However, it is not perfect and may introduce other artifacts. Also, it significantly reduces performance.

      Parameters:
        `enabled` - true to enable client video post-processing, false otherwise
      See Also:
        `getClientPostprocessingEnabled()`

    - #### getClientPostprocessingEnabled

          boolean getClientPostprocessingEnabled()

      Return whether client video post-processing is enabled
      Returns:
        `true` if client video post-processing is enabled, `false` otherwise.
      See Also:
        `setClientPostprocessingEnabled(boolean)`

    - #### isMouseModeChangeSupported

          boolean isMouseModeChangeSupported()

      Returns whether changing the mouse mode is supported.
      Returns:
        `true` if changing the mouse mode is supported, `false` otherwise.
      See Also:
        `MouseModeListener.mouseModeChangeSupportChanged(boolean)`, `getMouseMode()`, `setMouseMode(MouseMode)`, `getSupportedMouseModes()`

    - #### getSupportedMouseModes

          java.util.List<RCCore.MouseMode> getSupportedMouseModes()

      Returns a list of supported mouse modes.
      Returns:
        a list containing supported mouse mode values.
      See Also:
        `MouseModeListener.supportedMouseModesChanged(List)`, `setMouseMode(MouseMode)`, `getMouseMode()`, `isMouseModeChangeSupported()`

    - #### getMouseMode

          RCCore.MouseMode getMouseMode()

      Returns the current mouse mode.
      Returns:
        the current mouse mode.
      See Also:
        `MouseModeListener.mouseModeChanged(RCCore.MouseMode)`, `setMouseMode(MouseMode)`, `isMouseModeChangeSupported()`, `getSupportedMouseModes()`

    - #### setMouseMode

          void setMouseMode(RCCore.MouseMode mouseMode)
                     throws java.io.IOException

      Sets the mouse mode
      Parameters:
        `mouseMode` - new mouse mode to be changed
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `getMouseMode()`, `isMouseModeChangeSupported()`, `getSupportedMouseModes()`

    - #### isSingleCursorModeSupported

          boolean isSingleCursorModeSupported()

      Returns whether single cursor mouse mode is supported.
      Returns:
        `true` if single cursor mouse mode is supported, `false` otherwise.
      See Also:
        `MouseModeListener.singleCursorModeSupportChanged(boolean)`, `setSingleCursorMode(boolean)`, `isSingleCursorMode()`

    - #### isSingleCursorMode

          boolean isSingleCursorMode()

      Returns whether the mouse is in single cursor mode.
      Returns:
        `true` if the mouse is in single cursor mode, `false` otherwise.
      See Also:
        `setSingleCursorMode(boolean)`, `isSingleCursorModeSupported()`, `isSingleCursorModeReallyActive()`

    - #### setSingleCursorMode

          void setSingleCursorMode(boolean mode)

      Sets the mouse mode to Single Mouse Mode or Double (regular) Mouse Mode.

      Double Cursor Mode is the regular moude operation mode. Two mouse cursors are visible: the local one on the client and the remote mouse cursor of the target system. Both may or may not be in sync.

      Single Cursor Mode: Only the remote mouse cursor is visible. The local cursor on the client is hidden from the user. This way, there are no mouse synchronization issues. However, a hotkey needs to be defined by the user of the SDK to leave Single Cursor Mode.

      Single Mouse Mode (SMM) has again two modes. The regular SMM and the Capture Right Away mode. In regular SMM, the user has to click into the KVM Control in order to capture the mouse. In Capture Right Away mode, the mouse is captured as soon as the mouse cursor is moved into the KVM Control.

      Parameters:
        `mode` - sets the current mouse mode to single cursor mode.
      See Also:
        `isSingleCursorMode()`, `isSingleCursorModeReallyActive()`, `isSingleCursorModeSupported()`, `setCaptureRightAway(boolean)`, `setSingleMouseModeHotkey(String, KeyStroke)`, `setSingleCursorHelper(SingleCursorHelper)`

    - #### setSingleCursorHelper

          void setSingleCursorHelper(SingleCursorHelper helper)

      Set a helper object to support Single Mouse Mode.

      This helper object can support hiding/showing or locking/unlocking the local mouse cursor. This is optional. If no helper object is set, then the internal implementation is used, which may be limited.

      Parameters:
        `helper` - the Single Mouse helper object
      See Also:
        `setSingleCursorMode(boolean)`

    - #### temporarilyLeaveSingleCursorMode

          void temporarilyLeaveSingleCursorMode()

      Temporarily leave the single mouse mode

      While in Single Mouse Mode, the local mouse cursor is hidden and captured by the KVM client. In order to gain mouse control again without leaving the single mouse mode, the user can temporarily leave single mouse mode.

      See Also:
        `setSingleCursorMode(boolean)`, `isSingleCursorModeSupported()`, `isSingleCursorMode()`, `isSingleCursorModeReallyActive()`, `setSingleMouseModeHotkey(String, KeyStroke)`

    - #### isSingleCursorModeReallyActive

          boolean isSingleCursorModeReallyActive()

      Returns whether the Single Mouse Mode is really active.

      In case the Single Mouse Mode is set, but it is temporarily left, then this will return `false`.

      Returns:
        true if the single mouse mode is set and really active (not temporarily left), false in all other cases
      See Also:
        `setSingleCursorMode(boolean)`, `isSingleCursorModeSupported()`, `isSingleCursorMode()`, `temporarilyLeaveSingleCursorMode()`, `MouseModeListener.singleCursorModeReallyActiveChanged(boolean)`

    - #### setCaptureRightAway

          void setCaptureRightAway(boolean capture)

      Capture the mouse right away without the user clicking inside the video (single cursor mode only!).

      In this mode, Single Mouse Mode is quite aggressive in capturing the mouse. Once the mouse enters the KVM Control, it is immediately captured by Single Mouse Mode.

      Parameters:
        `capture` - sets the capturing of the single mouse mode right away.
      See Also:
        `setSingleCursorMode(boolean)`

    - #### isMouseSyncSupported

          boolean isMouseSyncSupported()

      Returns whether Mouse Sync operation is supported or not.
      Returns:
        `true` if mouse sync is supported, `false` otherwise.
      See Also:
        `MouseModeListener.mouseSyncSupportChanged(boolean)`, `syncMouse(MouseSyncType)`

    - #### syncMouse

          void syncMouse(RCCore.MouseSyncType syncType)
                  throws java.io.IOException

      Request to Sync the mouse
      Parameters:
        `syncType` - Request to sync the mouse based upon the sync type provided.
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `isMouseSyncSupported()`

    - #### isAudioSupportEnabled

          boolean isAudioSupportEnabled()

      tell whether the target supports audio feature
      Returns:
        `true` if audio is supported, `false` otherwise.
      See Also:
        `AudioStatusListener.audioSupportChanged(boolean)`

    - #### getSpeakerStatus

          AudioStatusListener.AudioStatus getSpeakerStatus()

      Get the current speaker status of the target
      Returns:
        The speaker status for the target
      See Also:
        `AudioStatusListener.audioSettingsChanged(nn.pp.rccore.AudioStatusListener.AudioStatus, nn.pp.rccore.AudioStatusListener.AudioStatus)`

    - #### getMicrophoneStatus

          AudioStatusListener.AudioStatus getMicrophoneStatus()

      Get the current microphone status of the target
      Returns:
        The microphone status for the target
      See Also:
        `AudioStatusListener.audioSettingsChanged(nn.pp.rccore.AudioStatusListener.AudioStatus, nn.pp.rccore.AudioStatusListener.AudioStatus)`

    - #### isHdmiAudioSupported

          boolean isHdmiAudioSupported()

      Returns whether Audio via HDMI is available
      Returns:
        `true` if HDMI audio feature is supported, `false` otherwise.
      See Also:
        `AudioStatusListener.hdmiAudioSupportChanged(boolean)`

    - #### getHdmiAudioFormat

          java.lang.String getHdmiAudioFormat()

      Returns the audio format supported for HDMI audio in format "samplerate_bits_channels" (e.g. "44100_16_2") or null if unknown.

      HDMI audio is bound to one audio format only, so the client must not select any other format.

      Returns:
        the HDMI audio format in "samplerate_bits_channels" (e.g. "44100_16_2") or null if unknown
      See Also:
        `AudioStatusListener.hdmiAudioFormatChanged(String)`

    - #### isSmartCardSupportEnabled

          boolean isSmartCardSupportEnabled()

      tell whether the target supports SmartCard feature
      Returns:
        `true` if SmartCard feature is supported, `false` otherwise.
      See Also:
        `SmartCardStatusListener.smartCardSupportedChanged(boolean)`

    - #### isTerminalBlockSupportEnabled

          boolean isTerminalBlockSupportEnabled()

      tell whether the target supports the Terminal Block feature
      Returns:
        `true` if Terminal Block feature is supported, `false` otherwise.
      See Also:
        `TerminalBlockListener.terminalBlockSupportedChanged(boolean)`, `getTerminalBlockConfig()`, `updateTerminalBlockConfig(ITerminalBlockConfig)`

    - #### isTerminalBlockPulseSupportEnabled

          boolean isTerminalBlockPulseSupportEnabled()

      tell whether the target supports the Terminal Block Pulse feature
      Returns:
        `true` if Terminal Block Pulse feature is supported, `false` otherwise.
      See Also:
        `isTerminalBlockSupportEnabled()`, `TerminalBlockListener.terminalBlockPulseSupportedChanged(boolean)`, `getTerminalBlockConfig()`, `updateTerminalBlockConfig(ITerminalBlockConfig)`

    - #### getTerminalBlockConfig

          ITerminalBlockConfig getTerminalBlockConfig()

      Get the current configuration of the Terminal Block
      Returns:
        the current configuration of the Terminal Block
      See Also:
        `isTerminalBlockSupportEnabled()`, `TerminalBlockListener.terminalBlockConfigChanged(ITerminalBlockConfig)`, `updateTerminalBlockConfig(ITerminalBlockConfig)`

    - #### updateTerminalBlockConfig

          void updateTerminalBlockConfig(ITerminalBlockConfig config)
                                  throws java.io.IOException

      Set a new configuration for the Terminal Block
      Parameters:
        `config` - the new Terminal Block configuration
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `isTerminalBlockSupportEnabled()`, `getTerminalBlockConfig()`, `TerminalBlockListener.terminalBlockConfigChanged(ITerminalBlockConfig)`

    - #### getTerminalBlockInputSettings

          ITerminalBlockInputSettings getTerminalBlockInputSettings()

      Get the current Terminal Block input settings
      Returns:
        the current Terminal Block input settings or null if the operation is not supported
      See Also:
        `isTerminalBlockSupportEnabled()`, `TerminalBlockListener.terminalBlockInputSettingsChanged(ITerminalBlockInputSettings)`

    - #### isHideClientMenuEnforced

          boolean isHideClientMenuEnforced()

      Returns whether hiding the client's toolbar and menu bar is enforced by configuration
      Returns:
        `true` if hiding the client's toolbar and menu bar is enforced, `false` otherwise.
      See Also:
        `ConnectionEventListener.hideClientMenuEnforcedChanged(boolean)`

    - #### isPortScanSupported

          boolean isPortScanSupported()

      Returns whether the Port Scan feature is supported
      Returns:
        `true` if the Port Scan feature is supported, `false` otherwise
      See Also:
        `ConnectionEventListener.portScanSupportChanged(boolean)`

    - #### sendKeyboardEvent

          void sendKeyboardEvent(int rcKeyCode,
                                 boolean released)
                          throws java.io.IOException

      Send a Keyboard Event

      Key codes in this event represent a physical key location as defined internally by the KX implementation.

      Parameters:
        `rcKeyCode` - Equivalent rcKeycode for the key
        `released` - true if the key was released, false is pressed.
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `sendKeyboardEvent(KeyEvent)`, `getKeyCode(int, char, int)`, `getKeyCode(int, char, int, int)`

    - #### sendKeyboardEvent

          void sendKeyboardEvent(java.awt.event.KeyEvent ke)
                          throws RCException

      Method to send Keyboard event directly to the target
      Parameters:
        `ke` - the key event to send
      Throws:
        `RCException` - if an KVM related error occurs
      See Also:
        `sendKeyboardEvent(int, boolean)`

    - #### sendKeyboardMacro

          void sendKeyboardMacro(IKeyboardMacro macro,
                                 boolean prependModifiers)

      Send Keyboard Macro
      Parameters:
        `macro` - Keyboard Macro to be sent
        `prependModifiers` - Prepend the macro sequence with release for Right Ctrl, Left Ctrl and Alt

    - #### getKeyboardLedState

          java.util.List<RCCore.KeyboardLed> getKeyboardLedState()

      Returns a list with the Keyboard LED status (Scroll/NUM/CAPS)
      Returns:
        a list containing on/off values for Scroll/NUM/CAPS Lock status.
      See Also:
        `KeyboardInfoListener.keyboardLedStateChanged(List)`

    - #### isSunKeyboardSupported

          boolean isSunKeyboardSupported()

      Returns whether Sun keyboard handling is supported
      Returns:
        `true` if the Sun keyboard handling is supported, `false` otherwise.
      See Also:
        `KeyboardInfoListener.sunKeyboardSupported(boolean)`

    - #### getKeyboardMacroList

          @Deprecated
          java.util.List<IKeyboardMacro> getKeyboardMacroList()

      Deprecated.

      Returns a Map with the Keyboard Macros configured on the device, which is stored in the device.

      This is deprecated and not used anymore by the devices.

      Returns:
        Map a Map containing Key/Pair values for the macros configured in the device.

    - #### setKeyboardMacroList

          @Deprecated
          void setKeyboardMacroList(java.util.List<IKeyboardMacro> list)
                                         throws java.io.IOException

      Deprecated.

      Sets the keyboard macro list, if the macro list is stored in the client (GUI)

      Note:The list is stored on the Device!

      This is deprecated and not used anymore by the devices.

      Parameters:
        `list` - the Macro list that the core needs to know, if macros are stored in the client and not in the server.
      Throws:
        `java.io.IOException` - if an I/O error occurs.

    - #### enforceSMMHotKeyCheck

          void enforceSMMHotKeyCheck(boolean check)

      Enforce whether to check for the existence of Hotkey before going into Single Cursor Mode

      This is useful as the mouse will be locked inside the video area and user will not be able to move out of the video window (to the Tool bar/menu bar of the application).

      Parameters:
        `check` - True/False to specify if the core needs to check for hot key presence before entering Single Mouse Mode.
      See Also:
        `setSingleCursorMode(boolean)`

    - #### setSingleMouseModeHotkey

          void setSingleMouseModeHotkey(java.lang.String name,
                                        javax.swing.KeyStroke key)

      Sets the hot key to temporarily or permanently leave Single Mouse mode.

      When the key handling core interprets this key combination, it will do the processing for Single Mouse Cursor. The key is not transmitted to the target.

      Note:This key is valid only for the current session.

      Note: If the Single Mouse mode is set to Capture Right Away, this hotkey is used to temporarily leave the Single Mouse Mode. Click into the KVM Control to gain mouse control again. It is not used to permanently leave Single Mouse Mode. In order to permanently leave Single Mouse Mode in this case, use the SetSingleCursorMode method instead.

      Note: If the Single Mouse mode is not set to Capture Right Away, this hotkey is used to permanently leave the Single Mouse Mode.

      Parameters:
        `name` - a human readable String representing the hotkey
        `key` - a key stroke upon which the core will interpret it as a Single Mouse hot key.
      See Also:
        `setSingleCursorMode(boolean)`, `setCaptureRightAway(boolean)`

    - #### setHotkeys

          void setHotkeys(java.util.Map<java.lang.Integer,javax.swing.KeyStroke> hotkeys)

      Sets a number of hotkeys.

      When the key handling core interprets this key combination, it will tell all registered `KeyboardListener` listeners via the `KeyboardListener.hotkeyDetected(int)` method which hotkey was detected.

      Note:These keys are valid only for the current session.

      Parameters:
        `hotkeys` - a combination of keys; the `Integer` is sent back by the `hotkeyDetected` method if a key is detected.

    - #### getSoftKeyboardMapping

          @Deprecated
          java.util.Locale getSoftKeyboardMapping()

      Deprecated.

      Returns a Locale which shall be used for the softkeyboard mapping.

      Some devices store the settings of the last used Locale, so the next time the same Locale can be used again.

      Note: this is deprecated. Soft keyboard is not used anymore.

      Returns:
        `Locale` a Locale which specifies the current Keyboard Mapping in the Soft Keyboard

    - #### setSoftKeyboardMapping

          @Deprecated
          void setSoftKeyboardMapping(java.util.Locale mapping)
                                           throws java.io.IOException

      Deprecated.

      Tell the device about the new softkeyboard Locale so that for the next connection the same Locale can be used again.

      Parameters:
        `mapping` - a Locale which will be set as new language for the soft keyboard
      Throws:
        `java.io.IOException` - if an I/O error occurs.

    - #### getSupportedLocalKeyboardMappings

          java.util.List<java.util.Locale> getSupportedLocalKeyboardMappings()

      Returns a List of Locales which specifies the list of different language mappings supported. This is constant during runtime and will not change.
      Returns:
        List of Locales which specifies the list of different language mappings supported
      See Also:
        `setLocalKeyboardMapping(Locale)`, `getLocalKeyboardMapping()`

    - #### getLocalKeyboardMapping

          java.util.Locale getLocalKeyboardMapping()

      Returns a Locale which specifies the current keyboard language mapping
      Returns:
        a Locale which specifies the current keyboard language mapping
      See Also:
        `getSupportedLocalKeyboardMappings()`, `setLocalKeyboardMapping(Locale)`

    - #### setLocalKeyboardMapping

          void setLocalKeyboardMapping(java.util.Locale mapping)
                                throws java.io.IOException,
                                       java.lang.IllegalArgumentException

      Sets the Local Keyboard Mapping to a different Locale (language)
      Parameters:
        `mapping` - a Locale which will be set as new language for the local keyboard
      Throws:
        `java.io.IOException` - if an I/O error occurs.
        `java.lang.IllegalArgumentException` - if the parameter value is invalid
      See Also:
        `getSupportedLocalKeyboardMappings()`, `getLocalKeyboardMapping()`

    - #### isLocalKeyboardMappingPersistent

          @Deprecated
          boolean isLocalKeyboardMappingPersistent()

      Deprecated.

      Returns whether the Local Keyboard mapping is persistent.

      Note: this is deprecated. Keyboard mapping persistence is not used anymore.

      Returns:
        `true` if the Local Keyboard mapping is persistent, `false` otherwise.

    - #### setLocalKeyboardMappingPersistent

          @Deprecated
          void setLocalKeyboardMappingPersistent(boolean persistent)

      Deprecated.

      Set whether the Local Keyboard mapping shall be persistent.

      Note: this is deprecated. Keyboard mapping persistence is not used anymore.

      Parameters:
        `persistent` - `true` if the Local Keyboard mapping shall persistent, `false` otherwise.

    - #### isVirtualMediaSupported

          @Deprecated
          boolean isVirtualMediaSupported()

      Deprecated.

      Returns whether Virtual Media feature is supported.

      This is obsolete. All KX devices do support Virtual Media.

      Returns:
        `true` if Virtual Media feature is supported, `false` otherwise.

    - #### isVirtualMediaReadOnly

          @Deprecated
          boolean isVirtualMediaReadOnly()

      Deprecated.

      Returns whether the user only Read-Only permissions for Virtual Media feature.

      This has been superseded by `IKvmPort.VmPermission` enumeration and according `IKvmPort.VmPermission` value. Do not use this anymore.

      Returns:
        `true` if the user has read-only permission to use Virtual Media using USB sticks, `false` otherwise.

    - #### getVirtualMediaDriveCount

          @Deprecated
          int getVirtualMediaDriveCount()

      Deprecated.

      Returns the total number of Virtual Media drives that can be supported.

      This has been superseded by `getVMConfigInfo()` and the `VirtualMediaInfoListener.virtualMediaConfigChanged(IVMConfigInfo)` event handler. Do not use this anymore.

      Returns:
        `int` the total number of Virtual Media drives that can be supported.

    - #### isVirtualMediaRemoteIsoSupported

          boolean isVirtualMediaRemoteIsoSupported()

      Returns whether Remote ISO Mount (samba) is supported for Virtual Media feature.
      Returns:
        `true` if Remote ISO feature is supported, `false` otherwise.
      See Also:
        `VirtualMediaInfoListener.remoteIsoSupportChanged(boolean)`, `mountOrUnmountRemoteIso(IVMMountRequestResponse)`, `IVMMountRequestResponse`

    - #### getUsbProfileList

          IUsbProfileList getUsbProfileList()

      Returns the Usb Profile List

      Some newer devices support Usb Profile implementation and the USB profiles are sent during initial start up and whenever the list changes.

      Returns:
        USB Profile list
      See Also:
        `IUsbProfile`, `VirtualMediaInfoListener.usbProfileListChanged(IUsbProfileList)`, `requestUsbProfileChange(int)`

    - #### getVMConfigInfo

          IVMConfigInfo getVMConfigInfo()

      Returns the Virtual Media configuration.

      Some newer devices support a detailed configuration of their virtual media devices, telling the client which virtual media port can use which drive emulation. The caller can request this configuration. If it is not supported, null is returned.

      Returns:
        the virtual media configuration
      See Also:
        `VirtualMediaInfoListener.virtualMediaConfigChanged(IVMConfigInfo)`

    - #### requestUsbProfileChange

          void requestUsbProfileChange(int profileId)
                                throws java.io.IOException

      Request to Change current USB Profile to the supplied Profile ID
      Parameters:
        `profileId` - the Profile ID to which the profile needs to be changed.
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `IUsbProfile`, `IUsbProfileList`, `getUsbProfileList()`, `VirtualMediaInfoListener.usbProfileListChanged(IUsbProfileList)`

    - #### getVirtualMediaRemoteIsoList

          java.util.List<IVMMountRequestResponse> getVirtualMediaRemoteIsoList()

      Returns a List of Remote ISO images configured on the server
      Returns:
        List of `IVMMountRequestResponse` objects which contain the name and location of Remote ISO images configured on the server
      See Also:
        `VirtualMediaInfoListener.remoteIsoListChanged(List)`, `isVirtualMediaRemoteIsoSupported()`, `mountOrUnmountRemoteIso(IVMMountRequestResponse)`

    - #### mountOrUnmountRemoteIso

          void mountOrUnmountRemoteIso(IVMMountRequestResponse iso)
                                throws java.io.IOException,
                                       RCException

      Mount or Unmount the Remote ISO Image (samba) based upon the option parameter set in the VMMountRequestResponse
      Parameters:
        `iso` - a `IVMMountRequestResponse` object which contains the location, name and mount/unmount option
      Throws:
        `java.io.IOException` - if an I/O error occurs
        `RCException` - if an exception occurs during the execution
      See Also:
        `isVirtualMediaRemoteIsoSupported()`, `getVirtualMediaRemoteIsoList()`, `VirtualMediaInfoListener.remoteIsoMountFinished(IVMMountRequestResponse)`

    - #### getPortList

          java.util.List<? extends IKvmPort> getPortList()

      Returns a List of KvmPort objects containing the port list

      The port list returned at the beginning of the session may be incomplete. Tiering ports are missing and the CIM type are missing. In order to receive a full port list with all ports and information, request it explicitly using `requestPortListRefresh()`. Please note that this is supported in KX 3.4 or newer only.

      Returns:
        A List of IKvmPort objects, which is the port list from the server
      See Also:
        `ConnectionEventListener.portListChanged(List)`, `isPortListRefreshSupported()`, `requestPortListRefresh()`

    - #### isPortListRefreshSupported

          boolean isPortListRefreshSupported()

      Returns whether refreshing the port list is supported.

      This is only supported in KX 3.4 or newer.

      Returns:
        `true` if refreshing the port list is supported, `false` otherwise
      See Also:
        `ConnectionEventListener.portListRefreshSupportChanged(boolean)`, `requestPortListRefresh()`, `ConnectionEventListener.portListChanged(List)`, `getPortList()`

    - #### requestPortListRefresh

          void requestPortListRefresh()
                               throws java.io.IOException,
                                      RCException

      Request a refresh of the port list.

      This is only supported in KX 3.4 or newer. Check `isPortListRefreshSupported()` before calling.

      The new port list is distributed via the `ConnectionEventListener.portListChanged(List)` event handler and can be asked via `getPortList()` call.

      Throws:
        `java.io.IOException` - if an I/O error occurs.
        `RCException` - if an KVM related error occurs
      See Also:
        `isPortListRefreshSupported()`, `ConnectionEventListener.portListRefreshSupportChanged(boolean)`, `ConnectionEventListener.portListChanged(List)`, `getPortList()`

    - #### switchKvmPort

          void switchKvmPort(int index,
                             java.lang.String portID)
                      throws java.io.IOException,
                             RCException

      Switches to the specified PortID (either port number or unique port ID).

      Note that current KX3/KX4 devices all use the portID of the port for the switch, which may be either a port number ("1") or the unique port ID ("P_12345678_1"). The index parameter is not used anymore and is there only for backwards compatibility.

      Parameters:
        `index` - The port index. This parameter is deprecated and not used anymore.
        `portID` - The unique port ID or port number to switch to.
      Throws:
        `java.io.IOException` - if an I/O error occurs.
        `RCException` - if an KVM related error occurs

    - #### getScalingX

          double getScalingX()

      Returns a Double value for the Scaling factor for the X axis.
      Returns:
        a double value for the Scaling factor for the X axis.
      See Also:
        `getScalingY()`, `setScaling(double, double)`, `isScaleToFit()`, `setScaleToFit(boolean, boolean, Dimension)`

    - #### getScalingY

          double getScalingY()

      Returns a Double value for the Scaling factor for the Y axis.
      Returns:
        a double value for the Scaling factor for the Y axis.
      See Also:
        `getScalingX()`, `setScaling(double, double)`, `isScaleToFit()`, `setScaleToFit(boolean, boolean, Dimension)`

    - #### isScaleToFit

          boolean isScaleToFit()

      Returns whether scale to fit is currently chosen.
      Returns:
        `true` if scale to fit is currently chosen, `false` otherwise.
      See Also:
        `getScalingX()`, `getScalingY()`, `isScaleToFitKeepAr()`, `setScaleToFit(boolean, boolean, Dimension)`

    - #### isScaleToFitKeepAr

          boolean isScaleToFitKeepAr()

      Returns whether in scale to fit mode the aspect ratio should be kept.
      Returns:
        `true` the aspect ratio shall be kept, `false` otherwise.
      See Also:
        `isScaleToFit()`, `setScaleToFit(boolean, boolean, Dimension)`

    - #### setScaling

          void setScaling(double xs,
                          double ys)
                   throws java.lang.IllegalArgumentException,
                          java.lang.UnsupportedOperationException

      Turn on fixed scaling with the specified x and y values
      Parameters:
        `xs` - a `double` value for x scaling
        `ys` - a `double` value for y scaling
      Throws:
        `java.lang.IllegalArgumentException`
        `java.lang.UnsupportedOperationException`
      See Also:
        `getScalingX()`, `getScalingY()`

    - #### setScaleToFit

          void setScaleToFit(boolean fit,
                             boolean keepAr,
                             java.awt.Dimension d)
                      throws java.lang.UnsupportedOperationException

      Set scale to fit the current window size
      Parameters:
        `fit` - `true` to set scaling factors to fit the current size of the window, `false` otherwise.
        `keepAr` - `true` to let RcCore keep the aspect ratio relative to the remote screen, `false` to ignore the aspect ratio
        `d` - the current size of the component
      Throws:
        `java.lang.UnsupportedOperationException`
      See Also:
        `isScaleToFit()`, `isScaleToFitKeepAr()`

    - #### getInterpolation

          RCCore.Interpolation getInterpolation()

      Returns the current setting for Interpolation.

      This is relevant when the KVM console is being scaled.

      Returns:
        the current setting for Interpolation.
      See Also:
        `setInterpolation(RCCore.Interpolation)`, `setScaling(double, double)`, `setScaleToFit(boolean, boolean, Dimension)`

    - #### setInterpolation

          void setInterpolation(RCCore.Interpolation interpolation)

      Set interpolation based on the parameter value.

      This is relevant when the KVM console is being scaled.

      Parameters:
        `interpolation` - `Interpolation` value to set the current interpolation operation
      See Also:
        `getInterpolation()`, `setScaling(double, double)`, `setScaleToFit(boolean, boolean, Dimension)`

    - #### getSmoothing

          RCCore.Smoothing getSmoothing()

      Returns the current setting for Smoothing.

      Smoothing is some post-processing that removes some small defects in the video. It can be set to different levels.

      This is only relevant for KX2. For KX3 and KX4, smoothing is always disabled.

      Returns:
        `Smoothing` the current setting for Smoothing.
      See Also:
        `setSmoothing(RCCore.Smoothing)`

    - #### setSmoothing

          void setSmoothing(RCCore.Smoothing smoothing)

      Set smoothing based on the parameter value.

      Smoothing is some post-processing that removes some small defects in the video. It can be set to different levels.

      This is only relevant for KX2. For KX3 and KX4, smoothing is always disabled.

      Parameters:
        `smoothing` - `Smoothing` value to set the current smoothing operation
      See Also:
        `getSmoothing()`

    - #### getCursor

          java.awt.Cursor getCursor()

      Get the cursor shape of the display
      Returns:
        The current cursor
      See Also:
        `setCursor(Cursor)`

    - #### setCursor

          void setCursor(java.awt.Cursor cursor)

      Set the cursor shape for the display
      Parameters:
        `cursor` - The new cursor; if null, the cursor is inherited
      See Also:
        `getCursor()`

    - #### setOSD

          void setOSD(java.lang.String osdMsg,
                      int duration,
                      boolean blank)

      Generate an OSD message.
      Parameters:
        `osdMsg` - The message to display. An empty string or null clears the message.
        `duration` - The duration of the message in milliseconds. A Value of 0 means infinite.
        `blank` - Shall the screen be blanked or not?
      See Also:
        `VideoEventListener.osdMessageReceived(String, boolean)`

    - #### isOsdDisabled

          boolean isOsdDisabled()

      Returns whether the OSD messages are disabled.

      In that case, the screen is blanked according to the OSDmessage, but the text is not displayed.

      Returns:
        true if OSD disabled, false otherwise^
      See Also:
        `setOsdDisabled(boolean)`

    - #### setOsdDisabled

          void setOsdDisabled(boolean disabled)

      Set whether the OSD messages are disabled.

      In that case, the screen is blanked according to the OSDmessage, but the text is not displayed.

      Parameters:
        `disabled` - - true if OSD disabled,false otherwise
      See Also:
        `isOsdDisabled()`

    - #### setOsdBgColor

          void setOsdBgColor(java.awt.Color color)

      Set the background color of the OSD.
      Parameters:
        `color` - the background color of the OSD
      See Also:
        `setOsdFgColor(Color)`

    - #### setOsdFgColor

          void setOsdFgColor(java.awt.Color color)

      Set the foreground color of the OSD
      Parameters:
        `color` - the foreground color of the OSD
      See Also:
        `setOsdBgColor(Color)`

    - #### setOsdAlpha

          void setOsdAlpha(int alphaPercent)

      Set the alpha channel (transparency) of the OSD in percent. 100 means opaque, 0 means transparent.
      Parameters:
        `alphaPercent` - the alpha channel (transparency) of the OSD in percent
      See Also:
        `setOsdBgColor(Color)`, `setOsdFgColor(Color)`

    - #### setOsdFont

          void setOsdFont(java.awt.Font font)

      Set the font to be used for the OSD
      Parameters:
        `font` - the OSD font

    - #### setOsdPosition

          void setOsdPosition(RCCore.OsdPosition position)

      Set the position of the OSD on the screen
      Parameters:
        `position` - the position of the OSD on the screen
      See Also:
        `getOsdPosition()`

    - #### getOsdPosition

          RCCore.OsdPosition getOsdPosition()

      Get the position of the OSD on the screen
      Returns:
        the position of the OSD on the screen
      See Also:
        `setOsdPosition(OsdPosition)`

    - #### setOsdMargin

          void setOsdMargin(int margin)

      Set the margin for the OSD in pixels.
      Parameters:
        `margin` - the margin for the OSD in pixels

    - #### getServerSessionId

          int getServerSessionId()

      Returns the server ID related to the connection
      Returns:
        the server ID
      See Also:
        `ConnectionEventListener.serverSessionIdChanged(int)`

    - #### getEricSessionId

          java.lang.String getEricSessionId()

      Returns the eric session ID for the connection.

      NOTE: this is not supported by all devices (KX3 3.4 or newer required) and is only used if username/password authentication is used.

      Returns:
        the session ID string
      See Also:
        `ConnectionEventListener.ericSessionIdChanged(String)`

    - #### hasMonitorModePermission

          @Deprecated
          boolean hasMonitorModePermission()

      Deprecated.

      Returns whether Monitor Mode is allowed to use.

      Note: This is deprecated.

      Returns:
        `true` if monitor mode is allowed to use `false` otherwise.
      See Also:
        `ConnectionEventListener.monitorModePermissionChanged(boolean)`, `setMonitorMode(boolean)`, `isMonitorMode()`

    - #### isMonitorMode

          boolean isMonitorMode()

      Returns whether Monitor Mode (view-only) is currently enabled.
      Returns:
        `true` if monitor mode is currently eabled, `false` otherwise.
      See Also:
        `setMonitorMode(boolean)`, `hasMonitorModePermission()`, `ConnectionEventListener.monitorModeChanged(boolean)`

    - #### setMonitorMode

          void setMonitorMode(boolean mode)

      Sets the Monitor Mode (view-only) based upon the parameter
      Parameters:
        `mode` - `true` if Monitor mode needs to be turned ON `false` otherwise.
      See Also:
        `isMonitorMode()`, `hasMonitorModePermission()`, `ConnectionEventListener.monitorModeChanged(boolean)`

    - #### hasExclusiveModePermission

          @Deprecated
          boolean hasExclusiveModePermission()

      Deprecated.

      Returns whether Exclusive Mode is allowed to use.

      Note: This is deprecated.

      Returns:
        `true` if Exclusive Mode is allowed to use `false` otherwise.
      See Also:
        `ConnectionEventListener.exclusiveModePermissionChanged(boolean)`, `setExclusiveMode(boolean)`, `isExclusiveMode()`

    - #### isExclusiveMode

          @Deprecated
          boolean isExclusiveMode()

      Deprecated.

      Returns whether Exclusive Access Mode is currently active.

      Note: This is deprecated.

      Returns:
        `true` if Exclusive Access Mode is currently turned on, `false` otherwise.
      See Also:
        `setExclusiveMode(boolean)`, `hasExclusiveModePermission()`, `ConnectionEventListener.exclusiveModeChanged(boolean)`

    - #### setExclusiveMode

          @Deprecated
          void setExclusiveMode(boolean mode)
                                     throws java.io.IOException

      Deprecated.

      Sets the Exclusive Mode based upon the parameter

      Note: This is deprecated.

      Parameters:
        `mode` - `true` if Exclusive Mode needs to be turned ON `false` otherwise.
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `isExclusiveMode()`, `hasExclusiveModePermission()`

    - #### getConnectedUsers

          int getConnectedUsers()

      Returns the total number of connected users to the target.
      Returns:
        the total number of connected users to the target
      See Also:
        `ConnectionEventListener.connectedUsersChanged(int)`

    - #### getSnapshot

          java.awt.image.BufferedImage getSnapshot(java.awt.Rectangle rect)

      Get a part of the target's screenshot as a snapshot
      Parameters:
        `rect` - The region of the snapshot to take. Provide null to get the snapshot of the whole screen
      Returns:
        The requested snapshot
      Throws:
        `java.lang.IllegalArgumentException` - if the rectangle to capture is larger than the screen resolution

    - #### getSnapshot

          java.awt.image.BufferedImage getSnapshot()

      Get the target's screenshot as a snapshot
      Returns:
        The requested snapshot

    - #### sendChatMessage

          @Deprecated
          void sendChatMessage(java.lang.String message)
                                    throws java.io.IOException

      Deprecated.

      Send a message through the built in chat.

      Note: This is deprecated and not used anymore.

      Parameters:
        `message` - the chat message to send
      Throws:
        `java.io.IOException` - if an I/O error occurs.

    - #### getRendererType

          java.lang.String getRendererType()

      Returns a short description about the used renderer
      Returns:
        The renderer type as a short descriptive string
      See Also:
        `VideoEventListener.rendererTypeChanged(String)`

    - #### getRenderedFramesPerSecond

          int getRenderedFramesPerSecond()

      Returns the Frames Per Second (FPS) rendered on the screen
      Returns:
        the rendered Frames Per Second (FPS)
      See Also:
        `getFramesPerSecond()`, `VideoEventListener.renderedFramesPerSecond(int)`

    - #### isFeatureLicensed

          boolean isFeatureLicensed(java.lang.String feature)

      Returns whether a certain feature is licensed.

      Note that a device that does not have licensing support will return true for all features.

      Parameters:
        `feature` - The feature to query
      Returns:
        `true` if the feature is supported, `false` otherwise
      See Also:
        `ConnectionEventListener.licenseFeatureSupportChanged(String, boolean)`, `getLicensedFeatures()`

    - #### getLicensedFeatures

          java.util.Map<java.lang.String,java.lang.Boolean> getLicensedFeatures()

      Returns the list of all licensed features.

      Note that for a device that does not have licensing support, null is returned.

      Returns:
        The list of licensed features and null if licensing support is not enabled (consider all features to be enabled in this case)
      See Also:
        `ConnectionEventListener.licenseFeatureSupportChanged(String, boolean)`, `isFeatureLicensed(String)`

    - #### isPowerControlEnabled

          boolean isPowerControlEnabled()

      Returns whether power control is enabled for the connected port
      Returns:
        true if power control is enabled, false otherwise
      See Also:
        `ConnectionEventListener.powerControlEnabledChanged(boolean)`, `performPowerControl(PowerControlOperations)`

    - #### performPowerControl

          void performPowerControl(RCCore.PowerControlOperations operation)
                            throws java.io.IOException

      Perform a power control operation on the target
      Parameters:
        `operation` - the operation to perform
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `isPowerControlEnabled()`

    - #### isRawVideoSnapshotSupported

          boolean isRawVideoSnapshotSupported()

      Returns whether Raw Video Snapshot is supported for the connected port
      Returns:
        true if supported, false otherwise
      See Also:
        `requestRawVideoSnapshot(nn.pp.rccore.Snapshot.ColorFormat)`, `VideoEventListener.rawVideoSnapshotSupportedChanged(boolean, List)`

    - #### getSupportedColorFormatsForRawVideoSnapshots

          java.util.List<Snapshot.ColorFormat> getSupportedColorFormatsForRawVideoSnapshots()

      Get the supported color formats for raw video snapshots
      Returns:
        the supported color formats for raw snapshots
      See Also:
        `requestRawVideoSnapshot(nn.pp.rccore.Snapshot.ColorFormat)`, `isRawVideoSnapshotSupported()`

    - #### requestRawVideoSnapshot

          void requestRawVideoSnapshot(Snapshot.ColorFormat format)
                                throws java.io.IOException,
                                       RCException

      Request a raw video snapshot from the target.

      The snapshot will be delivered through the `VideoEventListener.rawVideoSnapshotReceived(Snapshot, BufferedImage)` event listener.

      Parameters:
        `format` - color format of the snapshot
      Throws:
        `java.io.IOException` - if an I/O error occurs.
        `RCException` - if an KVM related error occurs
      See Also:
        `isRawVideoSnapshotSupported()`, `getSupportedColorFormatsForRawVideoSnapshots()`, `VideoEventListener.rawVideoSnapshotReceived(Snapshot, BufferedImage)`

    - #### getIncomingTrafficSpeed

          int getIncomingTrafficSpeed()

      Returns the incoming traffic speed in bytes per second
      Returns:
        the incoming traffic speed in bytes per second
      See Also:
        `ConnectionEventListener.incomingTrafficSpeed(int)`, `isTrafficSpeed()`, `setTrafficSpeed(boolean)`

    - #### getOutgoingTrafficSpeed

          int getOutgoingTrafficSpeed()

      Returns the outgoing traffic speed in bytes per second
      Returns:
        the outgoing traffic speed in bytes per second
      See Also:
        `ConnectionEventListener.outgoingTrafficSpeed(int)`, `isTrafficSpeed()`, `setTrafficSpeed(boolean)`

    - #### getFramesPerSecond

          int getFramesPerSecond()

      Returns the Frames Per Second (FPS) decoded by the KVM protocol
      Returns:
        the the Frames Per Second (FPS)
      See Also:
        `ConnectionEventListener.framesPerSecond(int)`, `isFPS()`, `setFPS(boolean)`

    - #### getDeviceName

          java.lang.String getDeviceName()

      Returns the name of the device, to which connection is made
      Returns:
        the name of the device the connection is made to
      See Also:
        `ConnectionEventListener.deviceNameChanged(String)`

    - #### getProtocolVersion

          java.lang.String getProtocolVersion()

      Returns the protocol version that is being used to connect to the device
      Returns:
        protocol version that is being used to connect to the device
      See Also:
        `ConnectionEventListener.protocolVersionChanged(String)`

    - #### setAssociatedRcCores

          void setAssociatedRcCores(java.util.List<AssociatedRCCore> associated,
                                    Association association,
                                    boolean clientSideMouseAssociations)

      Set a list of associated RCCore instances which are used together in a logical unit, e.g. as dual monitor targets.
      Parameters:
        `associated` - the associated RcCore instances
        `association` - the association (position) of this RcCore object
        `clientSideMouseAssociations` - true if this is a pure-client side port group, i.e. the client (RcCore) needs to do the mouse coordinate adjustments; false if this is a KX3 port group, which has the mouse coordinate adjustment done on the server side

    - #### addNotificationListener

          void addNotificationListener(NotificationListener listener)

      Adds the specified Notification listener to receive notification events.

      Notification events occur when there is any Error/Warning/Info needs to be sent from the server to the connected and subscribed clients.

      Parameters:
        `listener` - the Notification Listener
      See Also:
        `removeNotificationListener(NotificationListener)`

    - #### removeNotificationListener

          void removeNotificationListener(NotificationListener listener)

      Removes the specified Notification listener
      Parameters:
        `listener` - the Notification Listener
      See Also:
        `addNotificationListener(NotificationListener)`

    - #### addConnectionEventListener

          void addConnectionEventListener(ConnectionEventListener listener,
                                          int mask)

      Adds the specified connection event listener to receive connection events.

      Connection events occur when the port list changes or the connected users change.

      Parameters:
        `listener` - the Connection Event Listener
        `mask` - the event mask to register for
      See Also:
        `removeConnectionEventListener(ConnectionEventListener)`

    - #### removeConnectionEventListener

          void removeConnectionEventListener(ConnectionEventListener listener)

      Removes the specified Connection Event listener
      Parameters:
        `listener` - the Connection Event Listener
      See Also:
        `addConnectionEventListener(ConnectionEventListener, int)`

    - #### addVideoEventListener

          void addVideoEventListener(VideoEventListener listener,
                                     int mask)

      Adds the specified video event listener to receive video events.

      Video events occur when Encoding, Video Settings, Resolution, Monitor Mode/Exclusive Mode permissions or the status info changes. Subscription to specific Video events is also possible using the bit masks present in the `VideoEventListener`.

      Example:

           RCCore rcCore = rcFactory.loadGraphicalRCCore(null);
           rcCore.addVideoEventListener(this, VideoEventListener.ENCODING_CHANGE_ALLOWED
                   | VideoEventListener.RESOLUTION_CHANGED);

      Parameters:
        `listener` - the Video Event Listener
        `mask` - the event mask to register for
      See Also:
        `removeVideoEventListener(VideoEventListener)`

    - #### removeVideoEventListener

          void removeVideoEventListener(VideoEventListener listener)

      Removes the specified Video Event listener
      Parameters:
        `listener` - the Video Event Listener
      See Also:
        `addVideoEventListener(VideoEventListener, int)`

    - #### addAudioStatusListener

          void addAudioStatusListener(AudioStatusListener listener)

      Add an Audio Status Listener
      Parameters:
        `listener` - the audio status listener
      See Also:
        `removeAudioStatusListener(AudioStatusListener)`

    - #### removeAudioStatusListener

          void removeAudioStatusListener(AudioStatusListener listener)

      Remove an audio status listener
      Parameters:
        `listener` - the audio status listener
      See Also:
        `addAudioStatusListener(AudioStatusListener)`

    - #### addSmartCardStatusListener

          void addSmartCardStatusListener(SmartCardStatusListener listener)

      Add an SmartCard Status Listener
      Parameters:
        `listener` - the SmartCard status listener
      See Also:
        `removeSmartCardStatusListener(SmartCardStatusListener)`

    - #### removeSmartCardStatusListener

          void removeSmartCardStatusListener(SmartCardStatusListener listener)

      Remove an SmartCard status listener
      Parameters:
        `listener` - the SmartCard status listener
      See Also:
        `addSmartCardStatusListener(SmartCardStatusListener)`

    - #### addTerminalBlockListener

          void addTerminalBlockListener(TerminalBlockListener listener)

      Add an Terminal Block Status Listener
      Parameters:
        `listener` - the Terminal Block status listener
      See Also:
        `removeTerminalBlockListener(TerminalBlockListener)`

    - #### removeTerminalBlockListener

          void removeTerminalBlockListener(TerminalBlockListener listener)

      Remove an Terminal Block status listener
      Parameters:
        `listener` - the Terminal Block status listener
      See Also:
        `addTerminalBlockListener(TerminalBlockListener)`

    - #### addVncListener

          void addVncListener(VncListener listener)

      Add an VNC Event Listener
      Parameters:
        `listener` - the VNC Event listener
      See Also:
        `removeVncListener(VncListener)`

    - #### removeVncListener

          void removeVncListener(VncListener listener)

      Remove an VNC Event Listener
      Parameters:
        `listener` - the VNC Event listener
      See Also:
        `addVncListener(VncListener)`

    - #### addMouseModeListener

          void addMouseModeListener(MouseModeListener listener,
                                    int mask)

      Adds the specified Mouse event listener to receive Mouse events.

      Mouse events occur when Mouse mode is changed from one to another, support for using single cursor mode has changed or support for syncing mouse has changed. Subscription to specific Mouse events is also possible using the bit masks present in the `VideoEventListener`.

      Example:

           RCCore rcCore = rcFactory.loadGraphicalRCCore(null);
           rcCore.addMouseModeListener(this, MouseModeListener.MOUSE_MODES
                   | MouseModeListener.MOUSE_SYNC);

      Parameters:
        `listener` - the Mouse Event Listener
        `mask` - the event mask to register for
      See Also:
        `removeMouseModeListener(MouseModeListener)`

    - #### removeMouseModeListener

          void removeMouseModeListener(MouseModeListener listener)

      Removes the specified Mouse Event listener
      Parameters:
        `listener` - the Mouse Event Listener
      See Also:
        `addMouseModeListener(MouseModeListener, int)`

    - #### addKeyboardInfoListener

          void addKeyboardInfoListener(KeyboardInfoListener listener,
                                       int mask)

      Adds the specified Keyboard Info listener to receive Keyboard Info events.

      Keyboard info events occur when keyboard macro list has changed, Soft keyboard mapping has changed, Local keyboard language mapping has changed or the Keyboard LED status has changed (Scroll/NUM/CAPS lock) or support for syncing mouse has changed. Subscription to specific Keyboard Info events is also possible using the bit masks present in the `KeyboardInfoListener`.

      Example:

           RCCore rcCore = rcFactory.loadGraphicalRCCore(null);
           rcCore.addKeyboardInfoListener(this, KeyboardInfoListener.LOCAL_KEYBOARD
                   | KeyboardInfoListener.KEYBOARD_LEDS);

      Parameters:
        `listener` - the Keyboard Info Listener
        `mask` - the event mask to register for
      See Also:
        `removeKeyboardInfoListener(KeyboardInfoListener)`

    - #### removeKeyboardInfoListener

          void removeKeyboardInfoListener(KeyboardInfoListener listener)

      Removes the specified Keyboard Info listener
      Parameters:
        `listener` - the Keyboard Info Listener
      See Also:
        `addKeyboardInfoListener(KeyboardInfoListener, int)`

    - #### addVirtualMediaInfoListener

          void addVirtualMediaInfoListener(VirtualMediaInfoListener listener,
                                           int mask)

      Adds the specified Virtual Media Info listener to receive Virtual Media Info events.

      Virtual Media info events occur when VM support has changed, Read-Write permissions changed, RemoteISO list changed etc. Subscription to specific Virtual Media Info events is also possible using the bit masks present in the `VirtualMediaInfoListener`.

      Example:

           RCCore rcCore = rcFactory.loadGraphicalRCCore(null);
           rcCore.addKeyboardInfoListener(this, VirtualMediaInfoListener.REMOTE_ISO
                   | VirtualMediaInfoListener.VM_GENERAL);

      Parameters:
        `listener` - the Virtual Media Info Listener
        `mask` - the event mask to register for
      See Also:
        `removeVirtualMediaInfoListener(VirtualMediaInfoListener)`

    - #### removeVirtualMediaInfoListener

          void removeVirtualMediaInfoListener(VirtualMediaInfoListener listener)

      Removes the specified Virtual Media Info listener
      Parameters:
        `listener` - the Virtual Media Info Listener
      See Also:
        `addVirtualMediaInfoListener(VirtualMediaInfoListener, int)`

    - #### addKeyboardListener

          void addKeyboardListener(KeyboardListener listener)

      Adds the specified Keyboard listener to receive Keyboard events.
      Parameters:
        `listener` - the Keyboard Listener
      See Also:
        `removeKeyboardListener(KeyboardListener)`

    - #### removeKeyboardListener

          void removeKeyboardListener(KeyboardListener listener)

      Removes the specified Keyboard listener
      Parameters:
        `listener` - the Keyboard Listener
      See Also:
        `addKeyboardListener(KeyboardListener)`

    - #### addMouseEventListener

          void addMouseEventListener(MouseEventListener listener,
                                     int mask)

      Adds the specified mouse listener to receive mouse events
      Parameters:
        `listener` - the mouse listener
        `mask` - the event mask to register for
      See Also:
        `removeMouseEventListener(MouseEventListener)`

    - #### removeMouseEventListener

          void removeMouseEventListener(MouseEventListener listener)

      Removes the specified mouse listener
      Parameters:
        `listener` - the mouse Listener
      See Also:
        `addMouseEventListener(MouseEventListener, int)`

    - #### getKeyCode

          int getKeyCode(int vkCode,
                         char keyChar,
                         int keyLocation)

      Get the key code from the translator for a given key event
      Parameters:
        `vkCode` - the virtual key code for the key
        `keyChar` - the key character
        `keyLocation` - the location of the key (e.g. KeyEvent.KEY_LOCATION_LEFT, KeyEvent.KEY_LOCATION_RIGHT etc)
      Returns:
        the key code or -1 if the key cannot be translated
      See Also:
        `sendKeyboardEvent(int, boolean)`, `setLocalKeyboardMapping(Locale)`

    - #### getKeyCode

          int getKeyCode(int vkCode,
                         char keyChar,
                         int keyLocation,
                         int modifiers)

      Get the key code from the translator for a given key event
      Parameters:
        `vkCode` - the virtual key code for the key
        `keyChar` - the key character
        `keyLocation` - the location of the key (e.g. KeyEvent.KEY_LOCATION_LEFT, KeyEvent.KEY_LOCATION_RIGHT etc)
        `modifiers` - the currently pressed modifiers (e.g. InputEvent.SHIFT_DOWN_MASK)
      Returns:
        the key code or -1 if the key cannot be translated
      See Also:
        `sendKeyboardEvent(int, boolean)`, `setLocalKeyboardMapping(Locale)`

    - #### getKeyCode

          int getKeyCode(java.awt.event.KeyEvent keyEvent)

      Get the key code from the translator for a given key event
      Parameters:
        `keyEvent` - the Java AWT key event to translate
      Returns:
        the key code or -1 if the key cannot be translated
      See Also:
        `sendKeyboardEvent(int, boolean)`, `setLocalKeyboardMapping(Locale)`

    - #### setAppletParameterMap

          void setAppletParameterMap(java.util.LinkedHashMap<java.lang.String,java.lang.String> parameterMap)

      Sets the out of band Applet Parameters to the handler
      Parameters:
        `parameterMap` - - Hash Map containing the applet parameter values

    - #### isEthernetGigabitSupported

          boolean isEthernetGigabitSupported()

      Returns whether 1G Ethernet Connection speed is supported.
      Returns:
        `true` if 1G Ethernet Connection speed is supported, `false` otherwise.
      See Also:
        `ConnectionEventListener.ethernetGigabitSupported(boolean)`

    - #### isCimLanguageOptionsSupported

          boolean isCimLanguageOptionsSupported()

      Returns whether CIM language options are supported.

      Used in products where there is no CIM (like KX-101).

      Informs whether the special macro Ctrl+NumLock is supported by CIM or not.

      Returns:
        `true` if CIM language options is supported, `false` otherwise.
      See Also:
        `ConnectionEventListener.cimLanguageOptionsSupported(boolean)`

    - #### setLowBandwidth

          @Deprecated
          void setLowBandwidth(boolean lowBandwidth)

      Deprecated.

      Configure for a special low bandwidth mode.

      This is deprecated and not used anymore.

      Parameters:
        `lowBandwidth` - low bandwidth mode

    - #### setConnectionProperties

          void setConnectionProperties(boolean auto,
                                       RCCore.Compression comp,
                                       RCCore.ColorDepth colorDepth,
                                       RCCore.ColorSubsampling subsampling,
                                       RCCore.Smoothing smoothing)

      Set all the connection properties (compression, color depth, etc.) at once.

      This has only effect if the RCCore object is not yet connected to the target. The given settings will be used for the target connection later.

      Parameters:
        `auto` - true for automatic detection of the compression, false otherwise
        `comp` - the compression level
        `colorDepth` - the color depth
        `subsampling` - the color subsampling mode
        `smoothing` - the smoothing value
      See Also:
        `setEncodingToAuto()`, `setEncodingCompression(RCCore.Compression, boolean)`, `setEncodingColorDepth(RCCore.ColorDepth, boolean)`, `setEncodingColorSubsampling(RCCore.ColorSubsampling, boolean)`, `setSmoothing(RCCore.Smoothing)`

    - #### sendMouseEvent

          void sendMouseEvent(boolean relative,
                              int x,
                              int y,
                              int buttonMask)

      Method to send Mouse event directly to the target
      Parameters:
        `relative` - true to send a relative mouse event (based on the current pointer position), false to send absolute coordinates
        `x` - the X coordinate of the mouse event
        `y` - the Y coordinate of the mouse event
        `buttonMask` - The button mask. This is a bit mask of mouse buttons which should be pressed. 1 (bit 0) refers to the left mouse button, 2 (bit 1) to the middle mouse button and 4 (bit 2) to the right button. These bits can be combined by using bitwise OR.

    - #### sendMouseWheelEvent

          void sendMouseWheelEvent(int rotation,
                                   int buttonMask)

      Method to send Mouse Wheel event directly to the target
      Parameters:
        `rotation` - the rotation of the wheel
        `buttonMask` - The button mask. This is a bit mask of mouse buttons which should be pressed. 1 (bit 0) refers to the left mouse button, 2 (bit 1) to the middle mouse button and 4 (bit 2) to the right button. These bits can be combined by using bitwise OR.

    - #### setClientFrameSizeChanged

          void setClientFrameSizeChanged(java.awt.Dimension newSize)

      Set the size of the KVM window.

      Users should call this whenever the KVM window is resized.

      Parameters:
        `newSize` - the size of the client window

    - #### setClientSessionInitProperties

          void setClientSessionInitProperties(java.util.Map<RCCore.ClientSessionInitProperties,java.lang.String> props)

      The properties set using this method are sent in the client initialization message as key value pairs
      Parameters:
        `props` - the client properties

    - #### getCapablity

          <CT> CT getCapablity(java.lang.Class<CT> capablity)

      Get an extension interface.

      This is currently not used. Always returns null.

      Type Parameters:
        `CT` - the interface class of the extension
      Parameters:
        `capablity` - the interface class of the extension
      Returns:
        the extension

    - #### isTrafficSpeed

          boolean isTrafficSpeed()

      Get whether traffic speed data is collected.
      Returns:
        true when traffic speed data is collected, false otherwise.
      See Also:
        `setTrafficSpeed(boolean)`, `getIncomingTrafficSpeed()`, `getOutgoingTrafficSpeed()`, `ConnectionEventListener.incomingTrafficSpeed(int)`, `ConnectionEventListener.outgoingTrafficSpeed(int)`

    - #### setTrafficSpeed

          void setTrafficSpeed(boolean enable)

      Set whether traffic speed data should be collected.

      Set this parameter before connection is established.

      Parameters:
        `enable` - true to enable traffic data collection, false otherwise. The default is true.
      See Also:
        `isTrafficSpeed()`, `getIncomingTrafficSpeed()`, `getOutgoingTrafficSpeed()`, `ConnectionEventListener.incomingTrafficSpeed(int)`, `ConnectionEventListener.outgoingTrafficSpeed(int)`

    - #### isFPS

          boolean isFPS()

      Get whether Frames Per second data is collected.
      Returns:
        true when Frames Per second data is collected, false otherwise.
      See Also:
        `setFPS(boolean)`, `getFramesPerSecond()`, `ConnectionEventListener.framesPerSecond(int)`

    - #### setFPS

          void setFPS(boolean enable)

      Set whether Frames Per second data should be collected.

      Set this parameter before connection is established.

      Parameters:
        `enable` - true to enable Frames Per Second data collection, false otherwise. The default is true.
      See Also:
        `isFPS()`, `getFramesPerSecond()`, `ConnectionEventListener.framesPerSecond(int)`

    - #### setVideoUpdateDelay

          void setVideoUpdateDelay(int delay)

      Set the amount of time (in milliseconds) to wait before sending in a new video update request. This can be used to throttle the video data rate.
      Parameters:
        `delay` - The delay in milliseconds. If value is 0 then video update is requested immediately. 0 is the default value.
      See Also:
        `getVideoUpdateDelay()`

    - #### getVideoUpdateDelay

          int getVideoUpdateDelay()

      Get the amount of time (in milliseconds) to wait before sending in a new video update request. This can be used to throttle the video data rate.
      Returns:
        The amount of time (in milliseconds) to wait between requesting video updates. 0 means video updates are requested immediately.
      See Also:
        `setVideoUpdateDelay(int)`

Copyright © 2025 Raritan Inc. All Rights Reserved.