diff --git a/DiscImageChef.Devices/Remote/Enums.cs b/DiscImageChef.Devices/Remote/Enums.cs index 3d2914f80..95fce0c35 100644 --- a/DiscImageChef.Devices/Remote/Enums.cs +++ b/DiscImageChef.Devices/Remote/Enums.cs @@ -20,7 +20,13 @@ namespace DiscImageChef.Devices.Remote CommandGetType = 15, ResponseGetType = 16, CommandGetSdhciRegisters = 17, - ResponseGetSdhciRegisters = 18 + ResponseGetSdhciRegisters = 18, + CommandGetUsbData = 19, + ResponseGetUsbData = 20, + CommandGetFireWireData = 21, + ResponseGetFireWireData = 22, + CommandGetPcmciaData = 23, + ResponseGetPcmciaData = 24 } public enum DicNopReason : byte diff --git a/DiscImageChef.Devices/Remote/Remote.cs b/DiscImageChef.Devices/Remote/Remote.cs index 12580c0a5..ade22010e 100644 --- a/DiscImageChef.Devices/Remote/Remote.cs +++ b/DiscImageChef.Devices/Remote/Remote.cs @@ -378,5 +378,22 @@ namespace DiscImageChef.Devices.Remote { throw new NotImplementedException("Getting SDHCI registers not yet implemented..."); } + + public bool GetUsbData(out byte[] descriptors, out ushort idVendor, out ushort idProduct, + out string manufacturer, out string product, out string serial) + { + throw new NotImplementedException("Getting USB data not yet implemented..."); + } + + public bool GetFirewireData(out uint idVendor, out uint idProduct, + out ulong guid, out string vendor, out string model) + { + throw new NotImplementedException("Getting FireWire data not yet implemented..."); + } + + public bool GetPcmciaData(out byte[] cis) + { + throw new NotImplementedException("Getting PCMCIA data not yet implemented..."); + } } } \ No newline at end of file diff --git a/DiscImageChef.Devices/Remote/Structs.cs b/DiscImageChef.Devices/Remote/Structs.cs index 08d16cea3..71d9badb7 100644 --- a/DiscImageChef.Devices/Remote/Structs.cs +++ b/DiscImageChef.Devices/Remote/Structs.cs @@ -206,24 +206,24 @@ namespace DiscImageChef.Devices.Remote [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)] public struct DicPacketCmdGetDeviceType { - private readonly DicPacketHeader hdr; + public DicPacketHeader hdr; } [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)] public struct DicPacketResGetDeviceType { - private readonly DicPacketHeader hdr; - private readonly DeviceType device_type; + public DicPacketHeader hdr; + public DeviceType device_type; } public struct DicPacketCmdGetSdhciRegisters { - private DicPacketHeader hdr; + public DicPacketHeader hdr; } public struct DicPacketResGetSdhciRegisters { - private DicPacketHeader hdr; + public DicPacketHeader hdr; [MarshalAs(UnmanagedType.U1)] public bool isSdhci; [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)] @@ -238,4 +238,66 @@ namespace DiscImageChef.Devices.Remote [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)] public byte[] scr; } + + public struct DicPacketCmdGetUsbData + { + public DicPacketHeader hdr; + } + + public struct DicPacketResGetUsbData + { + public DicPacketHeader hdr; + [MarshalAs(UnmanagedType.U1)] public bool isUsb; + public ushort descLen; + + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 65536)] + public byte[] descriptors; + + public ushort idVendor; + public ushort idProduct; + + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] + public string manufacturer; + + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] + public string product; + + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] + public string serial; + } + + public struct DicPacketCmdGetFireWireData + { + public DicPacketHeader hdr; + } + + public struct DicPacketResGetFireWireData + { + public DicPacketHeader hdr; + [MarshalAs(UnmanagedType.U1)] public bool isFireWire; + public uint idModel; + public uint idVendor; + public ulong guid; + + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] + public string vendor; + + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] + public string model; + } + + public struct DicPacketCmdGetPcmciaData + { + public DicPacketHeader hdr; + } + + public struct DicPacketResGetPcmciaData + { + public DicPacketHeader hdr; + [MarshalAs(UnmanagedType.U1)] public bool isPcmcia; + public ushort cis_len; + + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 65536)] + public byte[] cis; + } } \ No newline at end of file