CHAI SDK  Version 1.3
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
CPNS::IRemoteDevice Class Referenceabstract

The RemoteDevice object is used to perform remote operations on any device on the network. More...

+ Inheritance diagram for CPNS::IRemoteDevice:
+ Collaboration diagram for CPNS::IRemoteDevice:

Public Member Functions

virtual CPNS::boolean IsValid () const =0
 Check if the device is valid. More...
 
virtual void CancelSubTask ()=0
 Cancel a IRemoteDevice creation initiated by ICHAI::CreateRemoteDevice. More...
 
virtual CPNS::DeviceID GetDeviceID () const =0
 Get the DeviceID. More...
 
virtual CPNS::DeviceID GetParentDeviceID () const =0
 Get the parent DeviceID. More...
 
virtual
CPNS::CombinedDeviceCapabilities 
GetDeviceCapabilities () const =0
 Get the consolidated capabilities of the device and its children. More...
 
virtual
CPNS::CombinedInOutCapabilities 
GetOutputCapabilities () const =0
 Get the consolidated Output capabilities of the device and its children. More...
 
virtual
CPNS::CombinedInOutCapabilities 
GetInputCapabilities () const =0
 Get the consolidated Input capabilities of the device and its children. More...
 
virtual
CPNS::CombinedDeviceCapabilities 
GetOwnDeviceCapabilities () const =0
 Get the device capabilities. More...
 
virtual
CPNS::CombinedInOutCapabilities 
GetOwnOutputCapabilities () const =0
 Get the Output capabilities. More...
 
virtual
CPNS::CombinedInOutCapabilities 
GetOwnInputCapabilities () const =0
 Get the Input capabilities. More...
 
virtual
CPNS::CombinedExtendedDeviceCapabilities 
GetExtendedDeviceCapabilities () const =0
 Get the extended device capabilities. More...
 
virtual CPNS::UTF8String GetName () const =0
 Get the display name. More...
 
virtual CPNS::UTF8String GetMachineName () const =0
 Get the machine name. More...
 
virtual CPNS::UTF8String GetMachineMACAddress () const =0
 Get the machine MAC address. More...
 
virtual CPNS::MachineID GetMachineID () const =0
 Get the machine ID. More...
 
virtual CPNS::boolean IsLocal ()=0
 Check if the device is local. More...
 
virtual CPNS::uint32 GetCHAIGroups () const =0
 Get the Group flags related to the device. More...
 
virtual CPNS::Enums::Errors GenericChange (CPNS::char8 const *const utf8CustomName, CPNS::Enums::DuplicateModes const duplicateMode, CPNS::uint32 const dwDuplicateNumber, CPNS::uint32 const dwGroups)=0
 Apply generic changes. More...
 
virtual void RegisterWatcherNotificationHandler (CPNS::CombinedWatcherPOIs const POIs, CPNS::IRemoteDevice_WatcherNotificationHandler *const pHandler)=0
 Register a watcher notification handler. More...
 
virtual void UnregisterWatcherNotificationHandler (CPNS::IRemoteDevice_WatcherNotificationHandler *const pHandler)=0
 Unregister a watcher notification handler. More...
 
virtual CPNS::IAsyncGetName_Async (CPNS::Enums::DeviceNameFormats const format, CPNS::IRemoteDevice_GetName_AsyncReturnHandler *const pHandler, void *const pUserPointer)=0
 Get the device name. More...
 
virtual CPNS::IAsyncGetProperty_Async (CPNS::Enums::ExplorationCommands const ec, CPNS::uint16 const propertyID, CPNS::IRemoteDevice_GetProperty_AsyncReturnHandler *const pHandler, void *const pUserPointer)=0
 Get a device property. More...
 
virtual CPNS::Enums::Errors ClearAllDestinations (CPNS::boolean const fRecursive)=0
 Clear all destinations on all Outputs. More...
 
virtual CPNS::Enums::Errors ClearDestinations (CPNS::uint16 const wOutputID)=0
 Clear all destinations for the specified Output. More...
 
virtual CPNS::IAsyncGetDestination_Async (CPNS::uint16 const wOutputID_or_ControllerID, CPNS::uint16 const wDestinationIndex, CPNS::IRemoteDevice_GetDestination_AsyncReturnHandler *const pHandler, void *const pUserPointer)=0
 Get a destination. More...
 
virtual CPNS::IAsyncGetDetailedDestination_Async (CPNS::uint16 const wOutputID_or_ControllerID, CPNS::uint16 const wDestinationIndex, CPNS::IRemoteDevice_GetDetailedDestination_AsyncReturnHandler *const pHandler, void *const pUserPointer)=0
 Get a destination with more details (path, machine name...) This method can be used to enumerate the current destinations related to the specified Output. More...
 
virtual CPNS::Enums::Errors AddDestination (CPNS::uint16 const wOutputID, CPNS::Endpoint const &destination)=0
 Add a destination to an Output. More...
 
virtual CPNS::Enums::Errors ChangeDestination (CPNS::uint16 const wOutputID, CPNS::Endpoint const &prevDestination, CPNS::Endpoint const &newDestination)=0
 Change a destination on an Output. More...
 
virtual CPNS::Enums::Errors RemoveDestination (CPNS::uint16 const wOutputID, CPNS::Endpoint const &destination)=0
 Remove a destination from an Output. More...
 
virtual CPNS::IAsyncGetDestinationCount_Async (CPNS::uint16 const wOutputID_or_ControllerID, CPNS::IRemoteDevice_GetDestinationCount_AsyncReturnHandler *const pHandler, void *const pUserPointer)=0
 Get the number of destination. More...
 
virtual CPNS::IAsyncGetConnectedDevices_Async (CPNS::boolean const fIncludingSubDevices, CPNS::IRemoteDevice_GetConnectedDevices_AsyncReturnHandler *const pHandler, void *const pUserPointer)=0
 Get the list of connected devices. More...
 
virtual CPNS::Enums::Errors ClearAllRecordingDestinations (CPNS::boolean const fRecursive)=0
 Clear all recording destinations. More...
 
virtual CPNS::Enums::Errors ClearRecordingDestinations (CPNS::uint16 const wOutputID_or_ControllerID)=0
 Clear all recording destinations for the specified Output or Controller. More...
 
virtual CPNS::IAsyncGetRecordingDestination_Async (CPNS::uint16 const wOutputID, CPNS::uint16 const wDestinationIndex, CPNS::IRemoteDevice_GetDestination_AsyncReturnHandler *const pHandler, void *const pUserPointer)=0
 Get a recording destination from the specified Output or Controller. More...
 
virtual CPNS::IAsyncGetRecordingDetailedDestination_Async (CPNS::uint16 const wOutputID_or_ControllerID, CPNS::uint16 const wDestinationIndex, CPNS::IRemoteDevice_GetDetailedDestination_AsyncReturnHandler *const pHandler, void *const pUserPointer)=0
 Get a recording destination with more details (path, machine name...) from the specified Output or Controller. More...
 
virtual CPNS::Enums::Errors AddRecordingDestination (CPNS::uint16 const wOutputID_or_ControllerID, CPNS::Endpoint const &destination)=0
 Add a recording destination to the specified Output or Controller. More...
 
virtual CPNS::Enums::Errors ChangeRecordingDestination (CPNS::uint16 const wOutputID_or_ControllerID, CPNS::Endpoint const &prevDestination, CPNS::Endpoint const &newDestination)=0
 Change a recording destination on the specified Output or Controller. More...
 
virtual CPNS::Enums::Errors RemoveRecordingDestination (CPNS::uint16 const wOutputID_or_ControllerID, CPNS::Endpoint const &destination)=0
 Remove a recording destination from the specified Output or Controller. More...
 
virtual CPNS::IAsyncGetInputInfo_Async (CPNS::Enums::ExplorationCommands const ec, CPNS::uint16 const wInputID, CPNS::IRemoteDevice_GetInputInfo_AsyncReturnHandler *const pHandler, void *const pUserPointer)=0
 Get input information. More...
 
virtual CPNS::IAsyncGetOutputInfo_Async (CPNS::Enums::ExplorationCommands const ec, CPNS::uint16 const wOutputID, CPNS::IRemoteDevice_GetOutputInfo_AsyncReturnHandler *const pHandler, void *const pUserPointer)=0
 Get output information. More...
 
virtual CPNS::IAsyncGetControllerInfo_Async (CPNS::Enums::ExplorationCommands const ec, CPNS::uint16 const wControllerID, CPNS::IRemoteDevice_GetControllerInfo_AsyncReturnHandler *const pHandler, void *const pUserPointer)=0
 Get Controller information. More...
 
virtual CPNS::IAsyncGetParameterInfo_Async (CPNS::Enums::ExplorationCommands const ec, CPNS::SectionID const &sectionID, CPNS::uint16 const wFilterInputID, CPNS::ParameterID const &paramID, CPNS::IRemoteDevice_GetParameterInfo_AsyncReturnHandler *const pHandler, void *const pUserPointer)=0
 Get parameter information. More...
 
virtual CPNS::IAsyncGetModifierDataTypeInfo_Async (CPNS::ParameterID const &paramID, CPNS::Enums::ExplorationCommands const ec, CPNS::Enums::DataTypes const dataType, CPNS::IRemoteDevice_GetModifierDataTypeInfo_AsyncReturnHandler *const pHandler, void *const pUserPointer)=0
 Get Modifier parameter value range information. More...
 
virtual CPNS::IAsyncGetSelectorParameterValueText_Async (CPNS::IListID *const pSelectorItemListID, CPNS::uint16 const wItemIndex, CPNS::boolean const fRequestMultipleValues, CPNS::IRemoteDevice_GetSelectorParameterValueText_AsyncReturnHandler *const pHandler, void *const pUserPointer)=0
 Get Selector parameter item description. More...
 
virtual CPNS::IAsyncGetIndexListItem_Async (CPNS::IListID *const pIndexListID, CPNS::uint16 const wMsgIndex, CPNS::boolean const fRequestMultipleValues, CPNS::IRemoteDevice_GetIndexListItem_AsyncReturnHandler *const pHandler, void *const pUserPointer)=0
 Get one or more ItemList irem description. More...
 
virtual CPNS::IAsyncGetParameterPath_Async (CPNS::ParameterID const &paramID, CPNS::IRemoteDevice_GetParameterPath_AsyncReturnHandler *const pHandler, void *const pUserPointer)=0
 Get a parameter path. More...
 
virtual CPNS::Enums::Errors AssignController (CPNS::uint16 const wControllerID, CPNS::ControllerAssignment const &assignment)=0
 Assign a controller to a message. More...
 
virtual CPNS::Enums::Errors ResetController (CPNS::uint16 const wControllerID)=0
 Reset default controller assignment. More...
 
virtual CPNS::Enums::Errors ResetAllControllers (CPNS::boolean const fRecursive)=0
 Reset all controllers. More...
 
virtual CPNS::IAsyncCollectSnapshotData_Async (CPNS::Enums::SnapshotTypes const type, CPNS::uint32 const dwOffset, CPNS::uint32 const dwContextData, CPNS::uint16 const wMaxBlockSize, CPNS::IRemoteDevice_CollectSnapshotData_AsyncReturnHandler *const pHandler, void *const pUserPointer)=0
 Collect snapshot data. More...
 
virtual CPNS::IAsyncRestoreSnapshotData_Async (CPNS::Enums::SnapshotTypes const type, CPNS::uint32 const dwOffset, CPNS::uint32 const dwContextData, CPNS::uint16 const wBlockSize, CPNS::boolean const fLastBlock, CPNS::byte const *const pBlockData, CPNS::IRemoteDevice_RestoreSnapshotData_AsyncReturnHandler *const pHandler, void *const pUserPointer)=0
 Restore a snapshot data block to the remote device. More...
 
virtual CPNS::Enums::Errors Learn (CPNS::boolean const activate, CPNS::uint16 const wControllerID)=0
 Set the remote device in learning mode. More...
 
virtual CPNS::IAsyncSmartConnectStart_Async (CPNS::uint16 const wArraySize, CPNS::DeviceID const *const arSourceDeviceIDs, CPNS::IRemoteDevice_SmartConnectStart_AsyncReturnHandler *const pHandler, void *const pUserPointer)=0
 Initiate a SmartConnect session. More...
 
- Public Member Functions inherited from CPNS::IHookedObject
virtual void Acquire ()=0
 Acquire an object. More...
 
virtual void Release ()=0
 Release an object. More...
 
virtual CPNS::uint32 GetHookCounter () const =0
 Get object's hook counter. More...
 
- Public Member Functions inherited from CPNS::IObject
virtual CPNS::ICHAIGetCHAI ()=0
 Get a pointer to the CHAI hosting this object. More...
 
virtual void RegisterObjectNotificationHandler (CPNS::IObject_NotificationHandler *const pHandler)=0
 Register an Object's notification handler. More...
 
virtual void UnregisterObjectNotificationHandler (CPNS::IObject_NotificationHandler *const pHandler)=0
 Unregister an Object's notification handler. More...
 
virtual CPNS::Enums::ObjectTypes GetObjectType () const =0
 Get the object type. More...
 
virtual CPNS::uint32 GetHandle () const =0
 Get a unique handle to the object if this object is handled by the trashcan. More...
 
virtual void SetUserDataPtr (void const *const pData)=0
 Set a custom user ptr data. More...
 
virtual void * GetUserDataPtr () const =0
 Get custom user ptr data. More...
 
virtual void SetUserDataUInt32 (const CPNS::uint32 dwData)=0
 Set a custom user uint32 data. More...
 
virtual CPNS::uint32 GetUserDataUInt32 () const =0
 Get custom user uint32 data. More...
 

Detailed Description

The RemoteDevice object is used to perform remote operations on any device on the network.

Member Function Documentation

virtual CPNS::Enums::Errors CPNS::IRemoteDevice::AddDestination ( CPNS::uint16 const  wOutputID,
CPNS::Endpoint const &  destination 
)
pure virtual

Add a destination to an Output.

Remarks
this method is not intended to be used on Controllers
Parameters
[in]wOutputIDOutput ID, can be 0xFFFF to apply on all outputs.
[in]destinationdestination endpoint
Returns
CPNS::Enums::ERR_None | CPNS::Enums::ERR_InvalidDevice | CPNS::Enums::ERR_Failed
virtual CPNS::Enums::Errors CPNS::IRemoteDevice::AddRecordingDestination ( CPNS::uint16 const  wOutputID_or_ControllerID,
CPNS::Endpoint const &  destination 
)
pure virtual

Add a recording destination to the specified Output or Controller.

Parameters
[in]wOutputID_or_ControllerIDOutput ID or Controller ID
[in]destinationdestination endpoint
Returns
CPNS::Enums::ERR_None | CPNS::Enums::ERR_InvalidDevice | CPNS::Enums::ERR_Failed
virtual CPNS::Enums::Errors CPNS::IRemoteDevice::AssignController ( CPNS::uint16 const  wControllerID,
CPNS::ControllerAssignment const &  assignment 
)
pure virtual

Assign a controller to a message.

Parameters
[in]wControllerIDthe Controller ID.
[in]assignmentthe assignment, containing target endpoint and message description.
Returns
CPNS::Enums::ERR_None | CPNS::Enums::ERR_Failed
virtual void CPNS::IRemoteDevice::CancelSubTask ( )
pure virtual

Cancel a IRemoteDevice creation initiated by ICHAI::CreateRemoteDevice.

It is very important to cancel a remote device creation using this method before destroying the notification object implementing IRemoteDevice_NotificationHandler or IRemoteDevice_NotificationHandler2.

virtual CPNS::Enums::Errors CPNS::IRemoteDevice::ChangeDestination ( CPNS::uint16 const  wOutputID,
CPNS::Endpoint const &  prevDestination,
CPNS::Endpoint const &  newDestination 
)
pure virtual

Change a destination on an Output.

Remarks
this method is not intended to be used on Controllers
Parameters
[in]wOutputIDOutput ID , can be 0xFFFF to apply on all outputs.
[in]prevDestinationprevious destination endpoint
[in]newDestinationnew destination endpoint
Returns
CPNS::Enums::ERR_None | CPNS::Enums::ERR_InvalidDevice | CPNS::Enums::ERR_Failed
virtual CPNS::Enums::Errors CPNS::IRemoteDevice::ChangeRecordingDestination ( CPNS::uint16 const  wOutputID_or_ControllerID,
CPNS::Endpoint const &  prevDestination,
CPNS::Endpoint const &  newDestination 
)
pure virtual

Change a recording destination on the specified Output or Controller.

Parameters
[in]wOutputID_or_ControllerIDOutput ID or Controller ID
[in]prevDestinationprevious destination endpoint
[in]newDestinationnew destination endpoint
Returns
CPNS::Enums::ERR_None | CPNS::Enums::ERR_InvalidDevice | CPNS::Enums::ERR_Failed
virtual CPNS::Enums::Errors CPNS::IRemoteDevice::ClearAllDestinations ( CPNS::boolean const  fRecursive)
pure virtual

Clear all destinations on all Outputs.

Remarks
this method does not act on Controllers
Parameters
[in]fRecursiveTRUE to clear all destination of the remote device and all of its children
Returns
CPNS::Enums::ERR_None | CPNS::Enums::ERR_InvalidDevice | CPNS::Enums::ERR_Failed
virtual CPNS::Enums::Errors CPNS::IRemoteDevice::ClearAllRecordingDestinations ( CPNS::boolean const  fRecursive)
pure virtual

Clear all recording destinations.

Remarks
this method clears all recording destination, on all Outputs and Controllers.
Parameters
[in]fRecursiveTRUE to clear all destination of the remote device and all of its children
Returns
CPNS::Enums::ERR_None | CPNS::Enums::ERR_InvalidDevice | CPNS::Enums::ERR_Failed
virtual CPNS::Enums::Errors CPNS::IRemoteDevice::ClearDestinations ( CPNS::uint16 const  wOutputID)
pure virtual

Clear all destinations for the specified Output.

Remarks
this method is not intended to be used on Controllers
Parameters
[in]wOutputIDOutput ID, can be 0xFFFF to apply on all Outputs.
Returns
CPNS::Enums::ERR_None | CPNS::Enums::ERR_InvalidDevice | CPNS::Enums::ERR_Failed
virtual CPNS::Enums::Errors CPNS::IRemoteDevice::ClearRecordingDestinations ( CPNS::uint16 const  wOutputID_or_ControllerID)
pure virtual

Clear all recording destinations for the specified Output or Controller.

Parameters
[in]wOutputID_or_ControllerIDOutput ID or ControllerID, can be 0xFFFF to apply on all recording destination.
Returns
CPNS::Enums::ERR_None | CPNS::Enums::ERR_InvalidDevice | CPNS::Enums::ERR_Failed
virtual CPNS::IAsync* CPNS::IRemoteDevice::CollectSnapshotData_Async ( CPNS::Enums::SnapshotTypes const  type,
CPNS::uint32 const  dwOffset,
CPNS::uint32 const  dwContextData,
CPNS::uint16 const  wMaxBlockSize,
CPNS::IRemoteDevice_CollectSnapshotData_AsyncReturnHandler *const  pHandler,
void *const  pUserPointer 
)
pure virtual

Collect snapshot data.

Parameters
[in]typeRequested snapshot information type
[in]dwOffsetCollect operation starts with offset 0.
[in]dwContextDataContext data. 0 for the 1st block, then value get from previous OnRemoteDevice_CollectSnapshotData_Return
[in]wMaxBlockSizeSpecify a maximum block size. This is the maximum amount of data the collecting application can handle.
[in]pHandlerPointer to the application object implementing IRemoteDevice_CollectSnapshotData_AsyncReturnHandler
[in]pUserPointera user pointer available in the AsyncReturnHandler using CPNS::IAsync::GetUserPointer()
Returns
A pointer to an IAsync object (see IAsync interface for more information on how to handle asynchronous call)
virtual CPNS::Enums::Errors CPNS::IRemoteDevice::GenericChange ( CPNS::char8 const *const  utf8CustomName,
CPNS::Enums::DuplicateModes const  duplicateMode,
CPNS::uint32 const  dwDuplicateNumber,
CPNS::uint32 const  dwGroups 
)
pure virtual

Apply generic changes.

Remarks
Changes are applied only if the related Enhanced Device Capability is set
Parameters
[in]utf8CustomNameCustom name, can be NULL to clear it and come back to default name
[in]duplicateModeDuplicate resolution mode
[in]dwDuplicateNumberPreferred duplicate number for DM_Auto mode (might change in case of conflict), or requested number for DM_Fixed mode.
[in]dwGroupsGroup bit field: 31 LSB = one per group; MSB = super-group
Returns
CPNS::Enums::ERR_None | CPNS::Enums::ERR_Failed
virtual CPNS::uint32 CPNS::IRemoteDevice::GetCHAIGroups ( ) const
pure virtual

Get the Group flags related to the device.

Remarks
The Group information is global for the CHAI owning the device. Group bit field: 31 LSB = one per group; MSB = super-group
Returns
group bitfield information
virtual CPNS::IAsync* CPNS::IRemoteDevice::GetConnectedDevices_Async ( CPNS::boolean const  fIncludingSubDevices,
CPNS::IRemoteDevice_GetConnectedDevices_AsyncReturnHandler *const  pHandler,
void *const  pUserPointer 
)
pure virtual

Get the list of connected devices.

Parameters
[in]fIncludingSubDevicesTRUE if the query is related to the remote device and all of its sub-devices.
[in]pHandlerPointer to the application object implementing IRemoteDevice_GetConnectedDevices_AsyncReturnHandler
[in]pUserPointera user pointer available in the AsyncReturnHandler using CPNS::IAsync::GetUserPointer()
Returns
A pointer to an IAsync object (see IAsync interface for more information on how to handle asynchronous call)
virtual CPNS::IAsync* CPNS::IRemoteDevice::GetControllerInfo_Async ( CPNS::Enums::ExplorationCommands const  ec,
CPNS::uint16 const  wControllerID,
CPNS::IRemoteDevice_GetControllerInfo_AsyncReturnHandler *const  pHandler,
void *const  pUserPointer 
)
pure virtual

Get Controller information.

Parameters
[in]ecexploration command.
[in]wControllerIDRelevant when ec in (EC_FindFirst, EC_FindNext, EC_FindPrev, EC_FindLast). Controller ID related to the exploration command
[in]pHandlerPointer to the application object implementing IRemoteDevice_GetControllerInfo_AsyncReturnHandler
[in]pUserPointera user pointer available in the AsyncReturnHandler using CPNS::IAsync::GetUserPointer()
Returns
A pointer to an IAsync object (see IAsync interface for more information on how to handle asynchronous call)
virtual CPNS::IAsync* CPNS::IRemoteDevice::GetDestination_Async ( CPNS::uint16 const  wOutputID_or_ControllerID,
CPNS::uint16 const  wDestinationIndex,
CPNS::IRemoteDevice_GetDestination_AsyncReturnHandler *const  pHandler,
void *const  pUserPointer 
)
pure virtual

Get a destination.

This method can be used to enumerate the current destinations related to the specified Output.

Remarks
this method can be used to determine the destination of a Controller.
Parameters
[in]wOutputID_or_ControllerIDOutput or Controller ID
[in]wDestinationIndexDestination index. To enumerate destinations, start from 0 and loop until the AsyncReturnHandler fails. Note that a Controller manages only one destination.
[in]pHandlerPointer to the application object implementing IRemoteDevice_GetDestination_AsyncReturnHandler
[in]pUserPointera user pointer available in the AsyncReturnHandler using CPNS::IAsync::GetUserPointer()
Returns
A pointer to an IAsync object (see IAsync interface for more information on how to handle asynchronous call)
virtual CPNS::IAsync* CPNS::IRemoteDevice::GetDestinationCount_Async ( CPNS::uint16 const  wOutputID_or_ControllerID,
CPNS::IRemoteDevice_GetDestinationCount_AsyncReturnHandler *const  pHandler,
void *const  pUserPointer 
)
pure virtual

Get the number of destination.

Remarks
this method can be used to determine the destination of a Controller.
Parameters
[in]wOutputID_or_ControllerIDOutput or Controller ID
[in]pHandlerPointer to the application object implementing IRemoteDevice_GetDestinationCount_AsyncReturnHandler
[in]pUserPointera user pointer available in the AsyncReturnHandler using CPNS::IAsync::GetUserPointer()
Returns
A pointer to an IAsync object (see IAsync interface for more information on how to handle asynchronous call) or NULL in case of invalid argument.
virtual CPNS::IAsync* CPNS::IRemoteDevice::GetDetailedDestination_Async ( CPNS::uint16 const  wOutputID_or_ControllerID,
CPNS::uint16 const  wDestinationIndex,
CPNS::IRemoteDevice_GetDetailedDestination_AsyncReturnHandler *const  pHandler,
void *const  pUserPointer 
)
pure virtual

Get a destination with more details (path, machine name...) This method can be used to enumerate the current destinations related to the specified Output.

Remarks
this method can be used to determine the destination of a Controller.
Parameters
[in]wOutputID_or_ControllerIDOutput or Controller ID
[in]wDestinationIndexDestination index. To enumerate destinations, start from 0 and loop until the AsyncReturnHandler fails. Note that a Controller manages only one destination.
[in]pHandlerPointer to the application object implementing IRemoteDevice_GetDetailedDestination_AsyncReturnHandler
[in]pUserPointera user pointer available in the AsyncReturnHandler using CPNS::IAsync::GetUserPointer()
Returns
A pointer to an IAsync object (see IAsync interface for more information on how to handle asynchronous call)
virtual CPNS::CombinedDeviceCapabilities CPNS::IRemoteDevice::GetDeviceCapabilities ( ) const
pure virtual

Get the consolidated capabilities of the device and its children.

Returns
combined value of CPNS::Enums::DeviceCapabilities
virtual CPNS::DeviceID CPNS::IRemoteDevice::GetDeviceID ( ) const
pure virtual

Get the DeviceID.

Returns
The device ID.
virtual CPNS::CombinedExtendedDeviceCapabilities CPNS::IRemoteDevice::GetExtendedDeviceCapabilities ( ) const
pure virtual

Get the extended device capabilities.

Returns
combined value of CPNS::Enums::ExtendedDeviceCapabilities
virtual CPNS::IAsync* CPNS::IRemoteDevice::GetIndexListItem_Async ( CPNS::IListID *const  pIndexListID,
CPNS::uint16 const  wMsgIndex,
CPNS::boolean const  fRequestMultipleValues,
CPNS::IRemoteDevice_GetIndexListItem_AsyncReturnHandler *const  pHandler,
void *const  pUserPointer 
)
pure virtual

Get one or more ItemList irem description.

Parameters
[in]pIndexListIDthe Index List ID.
[in]wMsgIndexMessage index. CAUTION: first item is related to message index 1!
[in]fRequestMultipleValuesTRUE if multiple consecutive values from wMsgIndex are requested.
[in]pHandlerPointer to the application object implementing IRemoteDevice_GetIndexListItem_AsyncReturnHandler
[in]pUserPointera user pointer available in the AsyncReturnHandler using CPNS::IAsync::GetUserPointer()
Returns
A pointer to an IAsync object (see IAsync interface for more information on how to handle asynchronous call). Returns NULL if the indexListID is not matching the remote device or not related to a Index List, or is wMsgIndex is 0.
virtual CPNS::CombinedInOutCapabilities CPNS::IRemoteDevice::GetInputCapabilities ( ) const
pure virtual

Get the consolidated Input capabilities of the device and its children.

Returns
combined value of CPNS::Enums::InOutCapabilities
virtual CPNS::IAsync* CPNS::IRemoteDevice::GetInputInfo_Async ( CPNS::Enums::ExplorationCommands const  ec,
CPNS::uint16 const  wInputID,
CPNS::IRemoteDevice_GetInputInfo_AsyncReturnHandler *const  pHandler,
void *const  pUserPointer 
)
pure virtual

Get input information.

Parameters
[in]ecexploration command.
[in]wInputIDRelevant when ec in (EC_FindNext, EC_FindPrev, EC_Get). Input ID related to the exploration command
[in]pHandlerPointer to the application object implementing IRemoteDevice_GetInputInfo_AsyncReturnHandler
[in]pUserPointera user pointer available in the AsyncReturnHandler using CPNS::IAsync::GetUserPointer()
Returns
A pointer to an IAsync object (see IAsync interface for more information on how to handle asynchronous call)
virtual CPNS::MachineID CPNS::IRemoteDevice::GetMachineID ( ) const
pure virtual

Get the machine ID.

Returns
the machine ID
virtual CPNS::UTF8String CPNS::IRemoteDevice::GetMachineMACAddress ( ) const
pure virtual

Get the machine MAC address.

Returns
the machine MAC address string
virtual CPNS::UTF8String CPNS::IRemoteDevice::GetMachineName ( ) const
pure virtual

Get the machine name.

Returns
The name of the machine hosting the remote device
virtual CPNS::IAsync* CPNS::IRemoteDevice::GetModifierDataTypeInfo_Async ( CPNS::ParameterID const &  paramID,
CPNS::Enums::ExplorationCommands const  ec,
CPNS::Enums::DataTypes const  dataType,
CPNS::IRemoteDevice_GetModifierDataTypeInfo_AsyncReturnHandler *const  pHandler,
void *const  pUserPointer 
)
pure virtual

Get Modifier parameter value range information.

Parameters
[in]paramIDParameter ID. The index part is ignored since we are collecting the Parameter description, not the Parameter instances!
[in]ecthe exploration command.
[in]dataTypeRelevant when ec in (EC_FindNext, EC_FindPrev, EC_Get). The data type related to the exploration command
[in]pHandlerPointer to the application object implementing IRemoteDevice_GetModifierDataTypeInfo_AsyncReturnHandler
[in]pUserPointera user pointer available in the AsyncReturnHandler using CPNS::IAsync::GetUserPointer()
Returns
A pointer to an IAsync object (see IAsync interface for more information on how to handle asynchronous call)
virtual CPNS::UTF8String CPNS::IRemoteDevice::GetName ( ) const
pure virtual

Get the display name.

Returns
The remote device's display name
virtual CPNS::IAsync* CPNS::IRemoteDevice::GetName_Async ( CPNS::Enums::DeviceNameFormats const  format,
CPNS::IRemoteDevice_GetName_AsyncReturnHandler *const  pHandler,
void *const  pUserPointer 
)
pure virtual

Get the device name.

Query the remote device about its name, depending on format argument.

Parameters
[in]formatrequested name format
[in]pHandlerPointer to the application object implementing IRemoteDevice_GetName_AsyncReturnHandler
[in]pUserPointera user pointer available in the AsyncReturnHandler using CPNS::IAsync::GetUserPointer()
Returns
A pointer to an IAsync object (see IAsync interface for more information on how to handle asynchronous call)
virtual CPNS::CombinedInOutCapabilities CPNS::IRemoteDevice::GetOutputCapabilities ( ) const
pure virtual

Get the consolidated Output capabilities of the device and its children.

Returns
combined value of CPNS::Enums::InOutCapabilities
virtual CPNS::IAsync* CPNS::IRemoteDevice::GetOutputInfo_Async ( CPNS::Enums::ExplorationCommands const  ec,
CPNS::uint16 const  wOutputID,
CPNS::IRemoteDevice_GetOutputInfo_AsyncReturnHandler *const  pHandler,
void *const  pUserPointer 
)
pure virtual

Get output information.

Parameters
[in]ecexploration command.
[in]wOutputIDRelevant when ec in (EC_FindNext, EC_FindPrev, EC_Get). Output ID related to the exploration command
[in]pHandlerPointer to the application object implementing IRemoteDevice_GetOutputInfo_AsyncReturnHandler
[in]pUserPointera user pointer available in the AsyncReturnHandler using CPNS::IAsync::GetUserPointer()
Returns
A pointer to an IAsync object (see IAsync interface for more information on how to handle asynchronous call), or NULL in case of invalid argument.
virtual CPNS::CombinedDeviceCapabilities CPNS::IRemoteDevice::GetOwnDeviceCapabilities ( ) const
pure virtual

Get the device capabilities.

Returns
combined value of CPNS::Enums::DeviceCapabilities
virtual CPNS::CombinedInOutCapabilities CPNS::IRemoteDevice::GetOwnInputCapabilities ( ) const
pure virtual

Get the Input capabilities.

Returns
combined value of CPNS::Enums::InOutCapabilities
virtual CPNS::CombinedInOutCapabilities CPNS::IRemoteDevice::GetOwnOutputCapabilities ( ) const
pure virtual

Get the Output capabilities.

Returns
combined value of CPNS::Enums::InOutCapabilities
virtual CPNS::IAsync* CPNS::IRemoteDevice::GetParameterInfo_Async ( CPNS::Enums::ExplorationCommands const  ec,
CPNS::SectionID const &  sectionID,
CPNS::uint16 const  wFilterInputID,
CPNS::ParameterID const &  paramID,
CPNS::IRemoteDevice_GetParameterInfo_AsyncReturnHandler *const  pHandler,
void *const  pUserPointer 
)
pure virtual

Get parameter information.

Parameters
[in]ecexploration command.
[in]sectionIDRelevant when ec in (EC_FindFirst, EC_FindNext, EC_FindPrev, EC_FindLast). Section ID from where to enumerate parameters. Wildcards can be used (CPNS::SectionID::AnySectionID | CPNS::SectionID::AnyInstanceOf)
[in]wFilterInputIDRelevant when ec in (EC_FindFirst, EC_FindNext, EC_FindPrev, EC_FindLast). Can be used to limit the scan range to a single input in case of sectionID wildcard usage. To avoid filtering, use the wildcard 0xFFFF.
[in]paramIDRelevant when ec in (EC_FindNext, EC_FindPrev, EC_Get). Parameter ID related to the exploration command
[in]pHandlerPointer to the application object implementing IRemoteDevice_GetParameterInfo_AsyncReturnHandler
[in]pUserPointera user pointer available in the AsyncReturnHandler using CPNS::IAsync::GetUserPointer()
Returns
A pointer to an IAsync object (see IAsync interface for more information on how to handle asynchronous call)
virtual CPNS::IAsync* CPNS::IRemoteDevice::GetParameterPath_Async ( CPNS::ParameterID const &  paramID,
CPNS::IRemoteDevice_GetParameterPath_AsyncReturnHandler *const  pHandler,
void *const  pUserPointer 
)
pure virtual

Get a parameter path.

Parameters
[in]paramIDParameter ID.
[in]pHandlerPointer to the application object implementing IRemoteDevice_GetParameterPath_AsyncReturnHandler
[in]pUserPointera user pointer available in the AsyncReturnHandler using CPNS::IAsync::GetUserPointer()
Returns
A pointer to an IAsync object (see IAsync interface for more information on how to handle asynchronous call)
virtual CPNS::DeviceID CPNS::IRemoteDevice::GetParentDeviceID ( ) const
pure virtual

Get the parent DeviceID.

Returns
The parent device ID
virtual CPNS::IAsync* CPNS::IRemoteDevice::GetProperty_Async ( CPNS::Enums::ExplorationCommands const  ec,
CPNS::uint16 const  propertyID,
CPNS::IRemoteDevice_GetProperty_AsyncReturnHandler *const  pHandler,
void *const  pUserPointer 
)
pure virtual

Get a device property.

Query the remote device about one of its properties, depending on exploration command and propertyID argument.

Parameters
[in]ecexploration command.
Warning
This method supports only CPNS::Enums::EC_FindFirst, CPNS::Enums::EC_FindNext and CPNS::Enums::EC_Get
Parameters
[in]propertyIDRelevant when ec in (EC_FindNext, EC_FindPrev, EC_Get). requested property related to the exploration command
[in]pHandlerPointer to the application object implementing IRemoteDevice_GetProperty_AsyncReturnHandler
[in]pUserPointera user pointer available in the AsyncReturnHandler using CPNS::IAsync::GetUserPointer()
Returns
A pointer to an IAsync object (see IAsync interface for more information on how to handle asynchronous call)
virtual CPNS::IAsync* CPNS::IRemoteDevice::GetRecordingDestination_Async ( CPNS::uint16 const  wOutputID,
CPNS::uint16 const  wDestinationIndex,
CPNS::IRemoteDevice_GetDestination_AsyncReturnHandler *const  pHandler,
void *const  pUserPointer 
)
pure virtual

Get a recording destination from the specified Output or Controller.

Parameters
[in]wOutputIDOutput ID or Controller ID
[in]wDestinationIndexDestination index. To enumerate destinations, start from 0 and loop until the AsyncReturnHandler fails.
[in]pHandlerPointer to the application object implementing IRemoteDevice_GetDestination_AsyncReturnHandler
[in]pUserPointera user pointer available in the AsyncReturnHandler using CPNS::IAsync::GetUserPointer()
Returns
A pointer to an IAsync object (see IAsync interface for more information on how to handle asynchronous call)
virtual CPNS::IAsync* CPNS::IRemoteDevice::GetRecordingDetailedDestination_Async ( CPNS::uint16 const  wOutputID_or_ControllerID,
CPNS::uint16 const  wDestinationIndex,
CPNS::IRemoteDevice_GetDetailedDestination_AsyncReturnHandler *const  pHandler,
void *const  pUserPointer 
)
pure virtual

Get a recording destination with more details (path, machine name...) from the specified Output or Controller.

Parameters
[in]wOutputID_or_ControllerIDOutput ID or Controller ID
[in]wDestinationIndexDestination index. To enumerate destinations, start from 0 and loop until the AsyncReturnHandler fails.
[in]pHandlerPointer to the application object implementing IRemoteDevice_GetDetailedDestination_AsyncReturnHandler
[in]pUserPointera user pointer available in the AsyncReturnHandler using CPNS::IAsync::GetUserPointer()
Returns
A pointer to an IAsync object (see IAsync interface for more information on how to handle asynchronous call)
virtual CPNS::IAsync* CPNS::IRemoteDevice::GetSelectorParameterValueText_Async ( CPNS::IListID *const  pSelectorItemListID,
CPNS::uint16 const  wItemIndex,
CPNS::boolean const  fRequestMultipleValues,
CPNS::IRemoteDevice_GetSelectorParameterValueText_AsyncReturnHandler *const  pHandler,
void *const  pUserPointer 
)
pure virtual

Get Selector parameter item description.

Parameters
[in]pSelectorItemListIDthe selector's item list ID
[in]wItemIndexitem index, 0 based
[in]fRequestMultipleValuesTRUE if multiple consecutive values from wItemIndex are requested.
[in]pHandlerPointer to the application object implementing IRemoteDevice_GetSelectorParameterValueText_AsyncReturnHandler
[in]pUserPointera user pointer available in the AsyncReturnHandler using CPNS::IAsync::GetUserPointer()
Returns
A pointer to an IAsync object (see IAsync interface for more information on how to handle asynchronous call) Returns NULL if the selectorItemListID is not matching the remote device or not related to a Selector Item List.
virtual CPNS::boolean CPNS::IRemoteDevice::IsLocal ( )
pure virtual

Check if the device is local.

Returns
TRUE if the device is hosted on the local machine
virtual CPNS::boolean CPNS::IRemoteDevice::IsValid ( ) const
pure virtual

Check if the device is valid.

Returns
TRUE if the remote device is present on the network
virtual CPNS::Enums::Errors CPNS::IRemoteDevice::Learn ( CPNS::boolean const  activate,
CPNS::uint16 const  wControllerID 
)
pure virtual

Set the remote device in learning mode.

Parameters
[in]activateTRUE to activate the learn mode, FALSE to stop it.
[in]wControllerIDController to be assigned by learning.
Returns
CPNS::Enums::ERR_None | CPNS::Enums::ERR_GlobalLearningRunning | CPNS::Enums::ERR_Failed
virtual void CPNS::IRemoteDevice::RegisterWatcherNotificationHandler ( CPNS::CombinedWatcherPOIs const  POIs,
CPNS::IRemoteDevice_WatcherNotificationHandler *const  pHandler 
)
pure virtual

Register a watcher notification handler.

The watcher notification handler is used to notify the application when something occurs on the remote device side.

Parameters
[in]POIsBitfield containing the points of interest.
[in]pHandlerPointer to the application object implementing IRemoteDevice_WatcherNotificationHandler. If pHandler is NULL, clear all registered handlers.
Remarks
The CHAI recall only the last POIs value for a specific remote device. It means that if you register several global watchers, the CHAI uses the POIs value passed during the last registering call on this remote device.
virtual CPNS::Enums::Errors CPNS::IRemoteDevice::RemoveDestination ( CPNS::uint16 const  wOutputID,
CPNS::Endpoint const &  destination 
)
pure virtual

Remove a destination from an Output.

Remarks
this method is not intended to be used on Controllers
Parameters
[in]wOutputIDOutput ID , can be 0xFFFF to apply on all outputs.
[in]destinationdestination endpoint
Returns
CPNS::Enums::ERR_None | CPNS::Enums::ERR_InvalidDevice | CPNS::Enums::ERR_Failed
virtual CPNS::Enums::Errors CPNS::IRemoteDevice::RemoveRecordingDestination ( CPNS::uint16 const  wOutputID_or_ControllerID,
CPNS::Endpoint const &  destination 
)
pure virtual

Remove a recording destination from the specified Output or Controller.

Parameters
[in]wOutputID_or_ControllerIDOutput or Controller ID
[in]destinationdestination endpoint
Returns
CPNS::Enums::ERR_None | CPNS::Enums::ERR_InvalidDevice | CPNS::Enums::ERR_Failed
virtual CPNS::Enums::Errors CPNS::IRemoteDevice::ResetAllControllers ( CPNS::boolean const  fRecursive)
pure virtual

Reset all controllers.

Parameters
[in]fRecursiveTRUE to reset all controller of the remote device and all of its children
Returns
CPNS::Enums::ERR_None | CPNS::Enums::ERR_InvalidDevice | CPNS::Enums::ERR_Failed
virtual CPNS::Enums::Errors CPNS::IRemoteDevice::ResetController ( CPNS::uint16 const  wControllerID)
pure virtual

Reset default controller assignment.

Parameters
[in]wControllerIDThe Controller ID.
Returns
CPNS::Enums::ERR_None | CPNS::Enums::ERR_Failed
virtual CPNS::IAsync* CPNS::IRemoteDevice::RestoreSnapshotData_Async ( CPNS::Enums::SnapshotTypes const  type,
CPNS::uint32 const  dwOffset,
CPNS::uint32 const  dwContextData,
CPNS::uint16 const  wBlockSize,
CPNS::boolean const  fLastBlock,
CPNS::byte const *const  pBlockData,
CPNS::IRemoteDevice_RestoreSnapshotData_AsyncReturnHandler *const  pHandler,
void *const  pUserPointer 
)
pure virtual

Restore a snapshot data block to the remote device.

Parameters
[in]typeSnapshot information type related to this block
[in]dwOffsetBlock offset
[in]dwContextDataContext data. 0 for the 1st block, then value get from previous IRemoteDevice_RestoreSnapshotData_AsyncReturnHandler
[in]wBlockSizeBlock size, will be the same for each restore request
[in]fLastBlockTRUE if this is the last block
[in]pBlockDataBlock data
[in]pHandlerPointer to the application object implementing IRemoteDevice_RestoreSnapshotData_AsyncReturnHandler
[in]pUserPointera user pointer available in the AsyncReturnHandler using CPNS::IAsync::GetUserPointer()
Returns
A pointer to an IAsync object (see IAsync interface for more information on how to handle asynchronous call)
virtual CPNS::IAsync* CPNS::IRemoteDevice::SmartConnectStart_Async ( CPNS::uint16 const  wArraySize,
CPNS::DeviceID const *const  arSourceDeviceIDs,
CPNS::IRemoteDevice_SmartConnectStart_AsyncReturnHandler *const  pHandler,
void *const  pUserPointer 
)
pure virtual

Initiate a SmartConnect session.

Call this method from the RemoteDevice related to the target. The source device IDs array contains a list of controller devices to be assigned during this session.

Parameters
[in]wArraySizesource device ID array size (theoretical max ~80, but take care of target memory!)
[in]arSourceDeviceIDssource device ID array
[in]pHandlerPointer to the application object implementing IRemoteDevice_GetName_AsyncReturnHandler
[in]pUserPointera user pointer available in the AsyncReturnHandler using CPNS::IAsync::GetUserPointer()
Returns
A pointer to an IAsync object (see IAsync interface for more information on how to handle asynchronous call) or NULL if the number of source device IDs is too high.
virtual void CPNS::IRemoteDevice::UnregisterWatcherNotificationHandler ( CPNS::IRemoteDevice_WatcherNotificationHandler *const  pHandler)
pure virtual

Unregister a watcher notification handler.

Parameters
[in]pHandlerPointer to the application object implementing IRemoteDevice_WatcherNotificationHandler. If pHandler is NULL, clear all registered handlers.