## org.openni
Class Device

    java.lang.Object
      org.openni.Device

    public class Device

extends java.lang.Object

The Device object abstracts a specific device; either a single hardware device, or a file device holding a recording from a hardware device. It offers the ability to connect to the device, and obtain information about its configuration and the data streams it can offer. It provides the means to query and change all configuration parameters that apply to the device as a whole. This includes enabling depth/color image registration and frame synchronization. Devices are used when creating and initializing `VideoStream` "VideoStreams" -- you will need a a Device in order to use the VideoStream.create() function. This, along with configuration, is the primary use of this class for application developers. Before devices can be created, `OpenNI.initialize()` must have been run to make the device drivers on the system available to the API.

Constructor Summary
`Device()`

Method Summary
`void` `close()` Closes the device.
`DeviceInfo` `getDeviceInfo()` Provides information about this device in the form of a DeviceInfo object.
`long` `getHandle()` This function return device handle.
`ImageRegistrationMode` `getImageRegistrationMode()` Gets the current image registration mode of this device.
`PlaybackControl` `getPlaybackControl()` Gets an object through which playback of a file device can be controlled.
`SensorInfo` `getSensorInfo(SensorType sensorType)` Get the `SensorInfo` for a specific sensor type on this device.
`boolean` `hasSensor(SensorType sensorType)` This function checks to see if one of the specific sensor types defined in `SensorType` is available on this device.
`boolean` `isFile()` Checks whether this device is a file device (i.e.
`boolean` `isImageRegistrationModeSupported(ImageRegistrationMode mode)` Checks to see if this device can support registration of color video and depth video.
`static Device` `open()` Opens a any device.
`static Device` `open(java.lang.String uri)` Opens a device.
`void` `setDepthColorSyncEnabled(boolean isEnabled)` Used to turn the depth/color frame synchronization feature on and off.
`void` `setImageRegistrationMode(ImageRegistrationMode mode)` Sets the image registration on this device.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### Device

    public Device()

Method Detail

### open

    public static Device open(java.lang.String uri)

  Opens a device. This can either open a device chosen arbitrarily from all devices on the system, or open a specific device selected by passing this function the device URI. To open any device, simply `open()` function. If multiple devices are connected to the system, then one of them will be opened. This procedure is most useful when it is known that exactly one device is (or can be) connected to the system. In that case, requesting a list of all devices and iterating through it would be a waste of effort. If multiple devices are (or may be) connected to a system, then a URI will be required to select a specific device to open. There are two ways to obtain a URI: from a DeviceConnected event, or by calling `OpenNI.enumerateDevices()`. In the case of a DeviceConnected event, the `OpenNI.DeviceConnectedListener` will be provided with a DeviceInfo object as an argument to its {} `OpenNI.DeviceConnectedListener.onDeviceConnected(DeviceInfo)` function. The `DeviceInfo.getUri()` function can then be used to obtain the URI. If the application is not using event handlers, then it can also call the static function `OpenNI.enumerateDevices()`. This will return an array of `DeviceInfo` objects, one for each device currently available to the system. The application can then iterate through this list and select the desired device. The URI is again obtained via the `DeviceInfo.getUri()` function. Standard codes of type Status are returned indicating whether opening was successful. For opening a recording file, pass the file path as a uri.

  Parameters:
    `uri` - String containing the URI of the device to be opened.

### open

    public static Device open()

  Opens a any device. This can either open a any device. If multiple devices are connected to the system, then one of them will be opened. This procedure is most useful when it is known that exactly one device is (or can be) connected to the system. In that case, requesting a list of all devices and iterating through it would be a waste of effort.

### close

    public void close()

  Closes the device. This properly closes any files or shuts down hardware, as appropriate. This function is currently called by the destructor if not called manually by application code, but it is considered a best practice to manually close any device that was opened.

### getDeviceInfo

    public final DeviceInfo getDeviceInfo()

  Provides information about this device in the form of a DeviceInfo object. This object can be used to access the URI of the device, as well as various USB descriptor strings that might be useful to an application. Note that valid device info will not be available if this device has not yet been opened. If you are trying to obtain a URI to open a device, use OpenNI::enumerateDevices() instead.

  Returns:
    DeviceInfo object for this Device

### hasSensor

    public boolean hasSensor(SensorType sensorType)

  This function checks to see if one of the specific sensor types defined in `SensorType` is available on this device. This allows an application to, for example, query for the presence of a depth sensor, or color sensor.

  Parameters:
    `sensorType` - of sensor to query for
  Returns:
    true if the Device supports the sensor queried, false otherwise.

### getSensorInfo

    public final SensorInfo getSensorInfo(SensorType sensorType)

  Get the `SensorInfo` for a specific sensor type on this device. The `SensorInfo` is useful primarily for determining which video modes are supported by the sensor.

  Parameters:
    `sensorType` - of sensor to get information about.
  Returns:
    SensorInfo object corresponding to the sensor type specified, or NULL if such a sensor is not available from this device.

### getHandle

    public long getHandle()

  This function return device handle.

  Returns:
    OpenNI device handle.

### getPlaybackControl

    public PlaybackControl getPlaybackControl()

  Gets an object through which playback of a file device can be controlled.

  Returns:
    null if this device is not a file device.

### isImageRegistrationModeSupported

    public boolean isImageRegistrationModeSupported(ImageRegistrationMode mode)

  Checks to see if this device can support registration of color video and depth video. Image registration is used to properly superimpose two images from cameras located at different points in space. Please see the OpenNi 2.0 Programmer's Guide for more information about registration.

  Returns:
    true if image registration is supported by this device, false otherwise.

### getImageRegistrationMode

    public ImageRegistrationMode getImageRegistrationMode()

  Gets the current image registration mode of this device. Image registration is used to properly superimpose two images from cameras located at different points in space. Please see the OpenNi 2.0 Programmer's Guide for more information about registration.

  Returns:
    Current image registration mode. See `ImageRegistrationMode` for possible return values.

### setImageRegistrationMode

    public void setImageRegistrationMode(ImageRegistrationMode mode)

  Sets the image registration on this device. Image registration is used to properly superimpose two images from cameras located at different points in space. Please see the OpenNi 2.0 Programmer's Guide for more information about registration. See `ImageRegistrationMode` for a list of valid settings to pass to this function. It is a good practice to first check if the mode is supported by calling `isImageRegistrationModeSupported(ImageRegistrationMode)` .

  Parameters:
    `mode` - Desired new value for the image registration mode.

### isFile

    public boolean isFile()

  Checks whether this device is a file device (i.e. a recording).

  Returns:
    true if this is a file device, false otherwise.

### setDepthColorSyncEnabled

    public void setDepthColorSyncEnabled(boolean isEnabled)

  Used to turn the depth/color frame synchronization feature on and off. When frame synchronization is enabled, the device will deliver depth and image frames that are separated in time by some maximum value. When disabled, the phase difference between depth and image frame generation cannot be guaranteed.

  Parameters:
    `isEnabled` - Set to TRUE to enable synchronization, FALSE to disable it