Legrand / Raritan Xerus™ JSON-RPC API for Remote Access Devices like KX4-101, KX3G2

Loading...
Searching...
No Matches
KvmDevice.idl
1#ifndef __RADM_KVM_DEVICE_IDL__
2#define __RADM_KVM_DEVICE_IDL__
3
4#include <Device.idl>
5#include <KvmPort.idl>
6#include <LocalMonitor.idl>
7#include <LocalPort.idl>
8#include <TerminalBlock.idl>
9#include <UsbProfileSettings.idl>
10#include <VideoResolution.idl>
11
12module radm {
13
14 interface KvmDevice extends Device {
15
16 constant int ERR_EDID_DATA_IN_USE = 10; ///< EDID data is in use, cannot be deleted
17 constant int ERR_EDID_GENERATION_FAILED = 11; ///< Failed to generate custom EDID
18
19 structure CustomEdidLimits {
20 int maxWidth;
21 int maxHeight;
22 int minWidth;
23 int minHeight;
24 int maxFrameRate;
25 int minFrameRate;
26 double maxPixelClock;
27 double minPixelClock;
28 };
29
30 enumeration EdidInterfaceType {
31 DVI, ///< DVI EDID data
32 HDMI ///< HDMI EDID data
33 };
34
35 /** EDID data for a given resolution */
36 structure EdidData {
37 VideoResolution resolution; ///< Resolution described by the EDID data
38 string description; ///< Text describing the EDID data
39 EdidInterfaceType videoInterface; ///< Video interface type the EDID data is meant for
40 };
41
42 /** An uploaded USB profile */
43 structure UsbProfile {
44 long key; ///< Profile key
45 int id; ///< Profile ID
46 string name; ///< Profile name
47 string description; ///< Profile description
48 boolean systemProfile; ///< Whether the profile is a system (built-in) profile
49 UsbProfileSettings settings; ///< Profile settings
50 };
51
52 /** Device temperature reading */
53 structure TemperatureReading {
54 boolean available; ///< Whether the reading data is valid
55 float currentValue; ///< Current device temperature (in degree Celsius)
56 float maximumValue; ///< Historical temperature maximum (in degree Celsius)
57 float minimumValue; ///< Historical temperature minimum (in degree Celsius)
58 };
59
60 /**
61 * Get KVM ports of this device
62 *
63 * @return List of KVM ports
64 */
65 vector<KvmPort> getKvmPorts();
66
67 /**
68 * Get monitor(s) locally attached to the device
69 *
70 * @return List of locally attached monitors
71 */
72 vector<LocalMonitor> getLocalMonitors();
73
74 /**
75 * Gets local control port of the device
76 *
77 * @return Local port if present on the device
78 */
79 LocalPort getLocalPort();
80
81 /**
82 * Get the terminal block of the device
83 *
84 * @return Terminal block if present on the device
85 */
86 TerminalBlock getTerminalBlock();
87
88 /**
89 * Get the device's internal temperature
90 *
91 * @return Device temperature reading
92 */
93 TemperatureReading getInternalTemperature();
94
95 /**
96 * Get data of the video resolutions supported by the device
97 *
98 * @return List of EDID data built into the device
99 */
100 vector<EdidData> getSupportedResolutionData();
101
102 /**
103 * Get data of the video resolution data uploaded to the device
104 *
105 * @return List of custom EDID data
106 */
107 vector<EdidData> getCustomEdidData();
108
109 /**
110 * Delete previously uploaded custom EDID data
111 *
112 * @param resolution Video resolution to delete
113 * @param videoInterface Interface type to delete resolution for
114 *
115 * @return 0 on success
116 * @return 1 if the given resolution/interface combination could not be found
117 * @return 10 if the given resolution/interface combination currently is in use
118 */
119 int deleteCustomEdidData(in VideoResolution resolution, in EdidInterfaceType videoInterface);
120
121 /**
122 * Create custom EDID
123 *
124 * @param resolution Resolution for custom EDID
125 *
126 * @return 0 if success
127 * @return 1 if no valid EDID can be generated from the provided resolution
128 * @return 2 if custom EDID data generation is not supported
129 * @return 11 if there was an internal error while generating the EDID data
130 */
131 int createCustomEdid(in VideoResolution resolution);
132
133 /**
134 * Validate custom EDID argument and calculate pixel clock
135 *
136 * @param resolution Resolution for custom EDID
137 * @param resultingPixelClock Pixel clock calculated if valid (output)
138 *
139 * @return 0 if validation successful
140 * @return 1 if the provided resolution is not valid for EDID generation
141 * @return 2 if if custom EDID data generation is not supported
142 */
143 int validateCustomEdidArgument(in VideoResolution resolution, out double resultingPixelClock);
144
145 /**
146 * Get limits for custom EDID generation
147 *
148 * @return limits
149 */
150 CustomEdidLimits getCustomEdidLimits();
151
152 /**
153 * Get USB profiles available on the device
154 *
155 * @return USB profiles, or an empty list in case USB profiles are not supported
156 */
157 vector<UsbProfile> getUsbProfiles();
158
159 /**
160 * Delete a previously uploaded USB profile
161 *
162 * @param Profile ID of the profile to be deleted
163 *
164 * @return 0 on success
165 * @return 1 if the profile with the given ID could not be found
166 */
167 int deleteUsbProfile(in int profileId);
168
169 /** Event: The list of available USB profiles changed */
170 valueobject UsbProfilesChangedEvent extends event.UserEvent {
171 vector<UsbProfile> newUsbProfiles; ///< USB profile list after the change
172 };
173
174 /** Event: A USB profile was added */
175 valueobject UsbProfileAddedEvent extends UsbProfilesChangedEvent {
176 UsbProfile profile; ///< Added profile
177 };
178
179 /** Event: A USB profile was deleted */
180 valueobject UsbProfileDeletedEvent extends UsbProfilesChangedEvent {
181 UsbProfile deletedProfile; ///< Deleted profile
182 };
183
184 /** Event: Custom EDID data changed */
185 valueobject CustomEdidDataChangedEvent extends event.UserEvent {
186 vector<EdidData> newCustomEdidData; ///< List of custom EDID data after the change
187 };
188
189 /** Event: Device temperature has changed */
190 valueobject TemperatureChangedEvent extends idl.Event {
191 TemperatureReading newReading; ///< Device temperature reading after the change
192 };
193 };
194
195}
196
197#endif //__RADM_KVM_DEVICE_IDL__
radm::Device
Definition Device.idl:7
radm::KvmDevice
Definition KvmDevice.idl:14
radm::KvmDevice::validateCustomEdidArgument
int validateCustomEdidArgument(in VideoResolution resolution, out double resultingPixelClock)
Validate custom EDID argument and calculate pixel clock.
radm::KvmDevice::getLocalMonitors
vector< LocalMonitor > getLocalMonitors()
Get monitor(s) locally attached to the device.
radm::KvmDevice::getLocalPort
LocalPort getLocalPort()
Gets local control port of the device.
radm::KvmDevice::ERR_EDID_DATA_IN_USE
constant int ERR_EDID_DATA_IN_USE
EDID data is in use, cannot be deleted.
Definition KvmDevice.idl:16
radm::KvmDevice::getUsbProfiles
vector< UsbProfile > getUsbProfiles()
Get USB profiles available on the device.
radm::KvmDevice::getSupportedResolutionData
vector< EdidData > getSupportedResolutionData()
Get data of the video resolutions supported by the device.
radm::KvmDevice::ERR_EDID_GENERATION_FAILED
constant int ERR_EDID_GENERATION_FAILED
Failed to generate custom EDID.
Definition KvmDevice.idl:17
radm::KvmDevice::getInternalTemperature
TemperatureReading getInternalTemperature()
Get the device's internal temperature.
radm::KvmDevice::getCustomEdidData
vector< EdidData > getCustomEdidData()
Get data of the video resolution data uploaded to the device.
radm::KvmDevice::getTerminalBlock
TerminalBlock getTerminalBlock()
Get the terminal block of the device.
radm::KvmDevice::createCustomEdid
int createCustomEdid(in VideoResolution resolution)
Create custom EDID.
radm::KvmDevice::EdidInterfaceType
EdidInterfaceType
Definition KvmDevice.idl:30
radm::KvmDevice::DVI
@ DVI
DVI EDID data.
Definition KvmDevice.idl:31
radm::KvmDevice::HDMI
@ HDMI
HDMI EDID data.
Definition KvmDevice.idl:32
radm::KvmDevice::getKvmPorts
vector< KvmPort > getKvmPorts()
Get KVM ports of this device.
radm::KvmDevice::deleteUsbProfile
int deleteUsbProfile(in int profileId)
Delete a previously uploaded USB profile.
radm::KvmDevice::getCustomEdidLimits
CustomEdidLimits getCustomEdidLimits()
Get limits for custom EDID generation.
radm::KvmDevice::deleteCustomEdidData
int deleteCustomEdidData(in VideoResolution resolution, in EdidInterfaceType videoInterface)
Delete previously uploaded custom EDID data.
radm::LocalPort
Interface for local user interface.
Definition LocalPort.idl:12
radm::TerminalBlock
TerminalBlock interface
Definition TerminalBlock.idl:10
idl
Basic IDL definitions.
Definition Event.idl:10
radm
Radm Model.
Definition AccessPort.idl:8
idl::Event
Common base for all events.
Definition Event.idl:13
radm::KvmDevice::CustomEdidDataChangedEvent
Event: Custom EDID data changed.
Definition KvmDevice.idl:185
radm::KvmDevice::CustomEdidDataChangedEvent::newCustomEdidData
vector< EdidData > newCustomEdidData
List of custom EDID data after the change.
Definition KvmDevice.idl:186
radm::KvmDevice::CustomEdidLimits
Definition KvmDevice.idl:19
radm::KvmDevice::EdidData
EDID data for a given resolution.
Definition KvmDevice.idl:36
radm::KvmDevice::EdidData::resolution
VideoResolution resolution
Resolution described by the EDID data.
Definition KvmDevice.idl:37
radm::KvmDevice::EdidData::description
string description
Text describing the EDID data.
Definition KvmDevice.idl:38
radm::KvmDevice::EdidData::videoInterface
EdidInterfaceType videoInterface
Video interface type the EDID data is meant for.
Definition KvmDevice.idl:39
radm::KvmDevice::TemperatureChangedEvent
Event: Device temperature has changed.
Definition KvmDevice.idl:190
radm::KvmDevice::TemperatureChangedEvent::newReading
TemperatureReading newReading
Device temperature reading after the change.
Definition KvmDevice.idl:191
radm::KvmDevice::TemperatureReading
Device temperature reading.
Definition KvmDevice.idl:53
radm::KvmDevice::TemperatureReading::currentValue
float currentValue
Current device temperature (in degree Celsius)
Definition KvmDevice.idl:55
radm::KvmDevice::TemperatureReading::available
boolean available
Whether the reading data is valid.
Definition KvmDevice.idl:54
radm::KvmDevice::TemperatureReading::minimumValue
float minimumValue
Historical temperature minimum (in degree Celsius)
Definition KvmDevice.idl:57
radm::KvmDevice::TemperatureReading::maximumValue
float maximumValue
Historical temperature maximum (in degree Celsius)
Definition KvmDevice.idl:56
radm::KvmDevice::UsbProfileAddedEvent
Event: A USB profile was added.
Definition KvmDevice.idl:175
radm::KvmDevice::UsbProfileAddedEvent::profile
UsbProfile profile
Added profile.
Definition KvmDevice.idl:176
radm::KvmDevice::UsbProfileDeletedEvent
Event: A USB profile was deleted.
Definition KvmDevice.idl:180
radm::KvmDevice::UsbProfileDeletedEvent::deletedProfile
UsbProfile deletedProfile
Deleted profile.
Definition KvmDevice.idl:181
radm::KvmDevice::UsbProfile
An uploaded USB profile.
Definition KvmDevice.idl:43
radm::KvmDevice::UsbProfile::description
string description
Profile description.
Definition KvmDevice.idl:47
radm::KvmDevice::UsbProfile::key
long key
Profile key.
Definition KvmDevice.idl:44
radm::KvmDevice::UsbProfile::systemProfile
boolean systemProfile
Whether the profile is a system (built-in) profile.
Definition KvmDevice.idl:48
radm::KvmDevice::UsbProfile::settings
UsbProfileSettings settings
Profile settings.
Definition KvmDevice.idl:49
radm::KvmDevice::UsbProfile::name
string name
Profile name.
Definition KvmDevice.idl:46
radm::KvmDevice::UsbProfile::id
int id
Profile ID.
Definition KvmDevice.idl:45
radm::KvmDevice::UsbProfilesChangedEvent
Event: The list of available USB profiles changed.
Definition KvmDevice.idl:170
radm::KvmDevice::UsbProfilesChangedEvent::newUsbProfiles
vector< UsbProfile > newUsbProfiles
USB profile list after the change.
Definition KvmDevice.idl:171
radm::UsbProfileSettings
Definition UsbProfileSettings.idl:17
radm::VideoResolution
Definition VideoResolution.idl:6