mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Add packets for list devices.
This commit is contained in:
@@ -31,26 +31,38 @@
|
|||||||
// ****************************************************************************/
|
// ****************************************************************************/
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
using DiscImageChef.CommonTypes.Interop;
|
using DiscImageChef.CommonTypes.Interop;
|
||||||
using PlatformID = DiscImageChef.CommonTypes.Interop.PlatformID;
|
using PlatformID = DiscImageChef.CommonTypes.Interop.PlatformID;
|
||||||
|
|
||||||
namespace DiscImageChef.Devices
|
namespace DiscImageChef.Devices
|
||||||
{
|
{
|
||||||
|
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
|
||||||
public struct DeviceInfo
|
public struct DeviceInfo
|
||||||
{
|
{
|
||||||
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 1024)]
|
||||||
public string Path;
|
public string Path;
|
||||||
|
|
||||||
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
|
||||||
public string Vendor;
|
public string Vendor;
|
||||||
|
|
||||||
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
|
||||||
public string Model;
|
public string Model;
|
||||||
|
|
||||||
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
|
||||||
public string Serial;
|
public string Serial;
|
||||||
|
|
||||||
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
|
||||||
public string Bus;
|
public string Bus;
|
||||||
public bool Supported;
|
|
||||||
|
[MarshalAs(UnmanagedType.U1)] public bool Supported;
|
||||||
}
|
}
|
||||||
|
|
||||||
public partial class Device
|
public partial class Device
|
||||||
{
|
{
|
||||||
public static DeviceInfo[] ListDevices()
|
public static DeviceInfo[] ListDevices()
|
||||||
{
|
{
|
||||||
switch(DetectOS.GetRealPlatformID())
|
switch (DetectOS.GetRealPlatformID())
|
||||||
{
|
{
|
||||||
case PlatformID.Win32NT: return Windows.ListDevices.GetList();
|
case PlatformID.Win32NT: return Windows.ListDevices.GetList();
|
||||||
case PlatformID.Linux: return Linux.ListDevices.GetList();
|
case PlatformID.Linux: return Linux.ListDevices.GetList();
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ namespace DiscImageChef.Devices.Remote
|
|||||||
{
|
{
|
||||||
public enum DicPacketType : byte
|
public enum DicPacketType : byte
|
||||||
{
|
{
|
||||||
Hello = 1
|
Hello = 1,
|
||||||
|
CommandListDevices = 2,
|
||||||
|
ResponseListDevices = 3
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2,7 +2,7 @@ using System.Runtime.InteropServices;
|
|||||||
|
|
||||||
namespace DiscImageChef.Devices.Remote
|
namespace DiscImageChef.Devices.Remote
|
||||||
{
|
{
|
||||||
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
|
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
|
||||||
public struct DicPacketHeader
|
public struct DicPacketHeader
|
||||||
{
|
{
|
||||||
public ulong id;
|
public ulong id;
|
||||||
@@ -12,10 +12,10 @@ namespace DiscImageChef.Devices.Remote
|
|||||||
public DicPacketType packetType;
|
public DicPacketType packetType;
|
||||||
|
|
||||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
|
||||||
public byte[] spare;
|
public readonly byte[] spare;
|
||||||
}
|
}
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
|
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
|
||||||
public struct DicPacketHello
|
public struct DicPacketHello
|
||||||
{
|
{
|
||||||
public DicPacketHeader hdr;
|
public DicPacketHeader hdr;
|
||||||
@@ -29,7 +29,7 @@ namespace DiscImageChef.Devices.Remote
|
|||||||
public byte maxProtocol;
|
public byte maxProtocol;
|
||||||
|
|
||||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
|
||||||
public byte[] spare;
|
public readonly byte[] spare;
|
||||||
|
|
||||||
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
|
||||||
public string sysname;
|
public string sysname;
|
||||||
@@ -40,4 +40,17 @@ namespace DiscImageChef.Devices.Remote
|
|||||||
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
|
||||||
public string machine;
|
public string machine;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
|
||||||
|
public struct DicPacketCommandListDevices
|
||||||
|
{
|
||||||
|
public DicPacketHeader hdr;
|
||||||
|
}
|
||||||
|
|
||||||
|
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
|
||||||
|
public struct DicPacketResponseListDevices
|
||||||
|
{
|
||||||
|
public readonly DicPacketHeader hdr;
|
||||||
|
public readonly ushort devices;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user