1+ using Newtonsoft . Json ;
2+
3+ namespace Buttplug . Core . Messages
4+ {
5+ /// <summary>
6+ /// Container class for describing a device.
7+ /// </summary>
8+ public class DeviceMessageInfo : IButtplugDeviceInfoMessage
9+ {
10+ /// <summary>
11+ /// Name of the device.
12+ /// </summary>
13+ [ JsonProperty ( Required = Required . Always ) ]
14+ public readonly string DeviceName ;
15+
16+ /// <summary>
17+ /// Device index.
18+ /// </summary>
19+ [ JsonProperty ( Required = Required . Always ) ]
20+ public readonly uint DeviceIndex ;
21+
22+ /// <summary>
23+ /// Device display name, set up by the user.
24+ /// </summary>
25+ public readonly string DeviceDisplayName ;
26+
27+ /// <summary>
28+ /// Recommended amount of time between commands, in milliseconds.
29+ /// </summary>
30+ [ JsonProperty ( Required = Required . Default ) ]
31+ public readonly uint DeviceMessageTimingGap ;
32+
33+ /// <summary>
34+ /// List of messages that a device supports, with additional attribute data.
35+ /// </summary>
36+ [ JsonProperty ( Required = Required . Always ) ]
37+ public readonly DeviceMessageAttributes DeviceMessages ;
38+
39+ /// <summary>
40+ /// Initializes a new instance of the <see cref="DeviceMessageInfo"/> class.
41+ /// </summary>
42+ /// <param name="index">Device index.</param>
43+ /// <param name="name">Device name.</param>
44+ /// <param name="messages">List of device messages/attributes supported.</param>
45+ public DeviceMessageInfo ( uint index , string name ,
46+ DeviceMessageAttributes messages )
47+ {
48+ DeviceName = name ;
49+ DeviceIndex = index ;
50+ DeviceMessages = messages ;
51+ }
52+
53+ // Implementation details for IButtplugDeviceInfoMessage interface
54+ string IButtplugDeviceInfoMessage . DeviceName => DeviceName ;
55+
56+ uint IButtplugDeviceInfoMessage . DeviceIndex => DeviceIndex ;
57+
58+ DeviceMessageAttributes IButtplugDeviceInfoMessage . DeviceMessages => DeviceMessages ;
59+
60+ string IButtplugDeviceInfoMessage . DeviceDisplayName => DeviceDisplayName ;
61+
62+ uint IButtplugDeviceInfoMessage . DeviceMessageTimingGap => DeviceMessageTimingGap ;
63+ }
64+ }
0 commit comments