Production Node
C Reference » Production Nodes Functionality

## Topics

| Error State Capability
| General Int Capability

## Typedefs

typedef XnContext * | XnContextPtr

## Functions

XN_C_API XnNodeInfo *XN_C_DECL | xnGetNodeInfo (XnNodeHandle hNode)
XN_C_API const XnChar *XN_C_DECL | xnGetNodeName (XnNodeHandle hNode)
XN_C_API XnContext *XN_C_DECL | xnGetRefContextFromNodeHandle (XnNodeHandle hNode)
XN_C_API XnContextPtr XN_C_DECL | xnGetContextFromNodeHandle (XnNodeHandle hNode)
XN_C_API XnBool XN_C_DECL | xnIsCapabilitySupported (XnNodeHandle hInstance, const XnChar *strCapabilityName)
XN_C_API XnStatus XN_C_DECL | xnSetIntProperty (XnNodeHandle hInstance, const XnChar *strName, XnUInt64 nValue)
XN_C_API XnStatus XN_C_DECL | xnSetRealProperty (XnNodeHandle hInstance, const XnChar *strName, XnDouble dValue)
XN_C_API XnStatus XN_C_DECL | xnSetStringProperty (XnNodeHandle hInstance, const XnChar *strName, const XnChar *strValue)
XN_C_API XnStatus XN_C_DECL | xnSetGeneralProperty (XnNodeHandle hInstance, const XnChar *strName, XnUInt32 nBufferSize, const void *pBuffer)
XN_C_API XnStatus XN_C_DECL | xnGetIntProperty (XnNodeHandle hInstance, const XnChar *strName, XnUInt64 *pnValue)
XN_C_API XnStatus XN_C_DECL | xnGetRealProperty (XnNodeHandle hInstance, const XnChar *strName, XnDouble *pdValue)
XN_C_API XnStatus XN_C_DECL | xnGetStringProperty (XnNodeHandle hInstance, const XnChar *strName, XnChar *csValue, XnUInt32 nBufSize)
XN_C_API XnStatus XN_C_DECL | xnGetGeneralProperty (XnNodeHandle hInstance, const XnChar *strName, XnUInt32 nBufferSize, void *pBuffer)
XN_C_API XnStatus XN_C_DECL | xnLockNodeForChanges (XnNodeHandle hInstance, XnLockHandle *phLock)
XN_C_API XnStatus XN_C_DECL | xnUnlockNodeForChanges (XnNodeHandle hInstance, XnLockHandle hLock)
XN_C_API XnStatus XN_C_DECL | xnLockedNodeStartChanges (XnNodeHandle hInstance, XnLockHandle hLock)
XN_C_API XnStatus XN_C_DECL | xnLockedNodeEndChanges (XnNodeHandle hInstance, XnLockHandle hLock)
XN_C_API XnStatus XN_C_DECL | xnAddNeededNode (XnNodeHandle hInstance, XnNodeHandle hNeededNode)
XN_C_API XnStatus XN_C_DECL | xnRemoveNeededNode (XnNodeHandle hInstance, XnNodeHandle hNeededNode)

## Detailed Description

A production node is the most basic unit of processing in OpenNI. The following functions can be executed for every node in an OpenNI context.

## Typedef Documentation

## XnContextPtr

typedef XnContext* XnContextPtr

## Function Documentation

## xnAddNeededNode()

XN_C_API XnStatus XN_C_DECL xnAddNeededNode | ( | XnNodeHandle | hInstance,
|  | XnNodeHandle | hNeededNode )

Adds another node to the list of needed nodes for this node.

Parameters

  hInstance | [in] A handle to the node.
  hNeededNode | [in] The node that is needed by hInstance.

## xnGetContextFromNodeHandle()

XN_C_API XnContextPtr XN_C_DECL xnGetContextFromNodeHandle | ( | XnNodeHandle | hNode | ) |

## xnGetGeneralProperty()

XN_C_API XnStatus XN_C_DECL xnGetGeneralProperty | ( | XnNodeHandle | hInstance,
|  | const XnChar * | strName,
|  | XnUInt32 | nBufferSize,
|  | void * | pBuffer )

Gets a buffer property.

Parameters

  hInstance | [in] A handle to the instance.
  strName | [in] Property name
  nBufferSize | [in] The size of the buffer passed, in bytes.
  pBuffer | [in] The data buffer to be filled.

## xnGetIntProperty()

XN_C_API XnStatus XN_C_DECL xnGetIntProperty | ( | XnNodeHandle | hInstance,
|  | const XnChar * | strName,
|  | XnUInt64 * | pnValue )

Gets an integer property.

Parameters

  hInstance | [in] A handle to the instance.
  strName | [in] Property name
  pnValue | [out] Current value

## xnGetNodeInfo()

XN_C_API XnNodeInfo *XN_C_DECL xnGetNodeInfo | ( | XnNodeHandle | hNode | ) |

Gets information about a specific node, like its description, and dependent nodes.

Parameters

  hNode | [in] A handle to the node.

## xnGetNodeName()

XN_C_API const XnChar *XN_C_DECL xnGetNodeName | ( | XnNodeHandle | hNode | ) |

Gets the instance name of a node by its handle.

Parameters

  hNode | [in] A handle to the node.

## xnGetRealProperty()

XN_C_API XnStatus XN_C_DECL xnGetRealProperty | ( | XnNodeHandle | hInstance,
|  | const XnChar * | strName,
|  | XnDouble * | pdValue )

Gets a real property.

Parameters

  hInstance | [in] A handle to the instance.
  strName | [in] Property name
  pdValue | [out] Current value

## xnGetRefContextFromNodeHandle()

XN_C_API XnContext *XN_C_DECL xnGetRefContextFromNodeHandle | ( | XnNodeHandle | hNode | ) |

Gets the context a node belongs to. The context ref count is increased. The user is responsible for releasing the context when it's no longer used.

Parameters

  hNode | [in] A handle to the node.

## xnGetStringProperty()

XN_C_API XnStatus XN_C_DECL xnGetStringProperty | ( | XnNodeHandle | hInstance,
|  | const XnChar * | strName,
|  | XnChar * | csValue,
|  | XnUInt32 | nBufSize )

Gets a string property.

Parameters

  hInstance | [in] A handle to the instance.
  strName | [in] Property name
  csValue | [out] Current value
  nBufSize | [in] The size of the csValue buffer.

## xnIsCapabilitySupported()

XN_C_API XnBool XN_C_DECL xnIsCapabilitySupported | ( | XnNodeHandle | hInstance,
|  | const XnChar * | strCapabilityName )

Checks if a production node supports specific capability.

Parameters

  hInstance | [in] A handle to the instance to be queried.
  strCapabilityName | [in] The name of the capability to check.

## xnLockedNodeEndChanges()

XN_C_API XnStatus XN_C_DECL xnLockedNodeEndChanges | ( | XnNodeHandle | hInstance,
|  | XnLockHandle | hLock )

Ends changes request on a locked node.

Parameters

  hInstance | [in] A handle to the node.
  hLock | [in] The handle of the lock, returned from xnLockNodeForChanges().

## xnLockedNodeStartChanges()

XN_C_API XnStatus XN_C_DECL xnLockedNodeStartChanges | ( | XnNodeHandle | hInstance,
|  | XnLockHandle | hLock )

Start changes request on a locked node, without releasing that lock.

It allows "set" operations from the same context (same thread for that matter) until a call is made to xnLockedNodeEndChanges().

Parameters

  hInstance | [in] A handle to the node.
  hLock | [in] The handle of the lock, returned from xnLockNodeForChanges().

## xnLockNodeForChanges()

XN_C_API XnStatus XN_C_DECL xnLockNodeForChanges | ( | XnNodeHandle | hInstance,
|  | XnLockHandle * | phLock )

Locks a node, not allowing any changes (any "set" function).

Parameters

  hInstance | [in] A handle to the node.
  phLock | [out] A handle of the lock, that can be used to manage the lock.

## xnRemoveNeededNode()

XN_C_API XnStatus XN_C_DECL xnRemoveNeededNode | ( | XnNodeHandle | hInstance,
|  | XnNodeHandle | hNeededNode )

Removes a needed node from the list of needed nodes.

If this node is no longer needed by any other node, and xnRefProductionNode() was not called on it, it will be destroyed.

Parameters

  hInstance | [in] A handle to the node.
  hNeededNode | [in] The node to be removed from the list.

## xnSetGeneralProperty()

XN_C_API XnStatus XN_C_DECL xnSetGeneralProperty | ( | XnNodeHandle | hInstance,
|  | const XnChar * | strName,
|  | XnUInt32 | nBufferSize,
|  | const void * | pBuffer )

Sets a buffer property.

Parameters

  hInstance | [in] A handle to the instance.
  strName | [in] Property name
  nBufferSize | [in] The size of the buffer passed, in bytes.
  pBuffer | [in] The data buffer.

## xnSetIntProperty()

XN_C_API XnStatus XN_C_DECL xnSetIntProperty | ( | XnNodeHandle | hInstance,
|  | const XnChar * | strName,
|  | XnUInt64 | nValue )

Sets an integer property.

Parameters

  hInstance | [in] A handle to the instance.
  strName | [in] Property name
  nValue | [in] New value

## xnSetRealProperty()

XN_C_API XnStatus XN_C_DECL xnSetRealProperty | ( | XnNodeHandle | hInstance,
|  | const XnChar * | strName,
|  | XnDouble | dValue )

Sets a real property.

Parameters

  hInstance | [in] A handle to the instance.
  strName | [in] Property name
  dValue | [in] New value

## xnSetStringProperty()

XN_C_API XnStatus XN_C_DECL xnSetStringProperty | ( | XnNodeHandle | hInstance,
|  | const XnChar * | strName,
|  | const XnChar * | strValue )

Sets a string property.

Parameters

  hInstance | [in] A handle to the instance.
  strName | [in] Property name
  strValue | [in] New value

## xnUnlockNodeForChanges()

XN_C_API XnStatus XN_C_DECL xnUnlockNodeForChanges | ( | XnNodeHandle | hInstance,
|  | XnLockHandle | hLock )

Unlocks a previously locked node.

Parameters

  hInstance | [in] A handle to the node.
  hLock | [in] The handle of the lock, returned from xnLockNodeForChanges().