Skip to content

Commit d466785

Browse files
authored
Allow requestUsbDevice to take filters and return device data (microsoft#152257)
1 parent a765abc commit d466785

File tree

1 file changed

+37
-2
lines changed

1 file changed

+37
-2
lines changed

src/vs/workbench/browser/actions/workspaceCommands.ts

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,42 @@ CommandsRegistry.registerCommand('_workbench.getRecentlyOpened', async function
309309
});
310310

311311
if (isWeb) {
312-
CommandsRegistry.registerCommand('workbench.experimental.requestUsbDevice', async (_accessor: ServicesAccessor): Promise<void> => {
313-
await (navigator as any).usb.requestDevice({ filters: [] });
312+
interface UsbDeviceData {
313+
readonly deviceClass: number;
314+
readonly deviceProtocol: number;
315+
readonly deviceSubclass: number;
316+
readonly deviceVersionMajor: number;
317+
readonly deviceVersionMinor: number;
318+
readonly deviceVersionSubminor: number;
319+
readonly manufacturerName?: string;
320+
readonly productId: number;
321+
readonly productName?: string;
322+
readonly serialNumber?: string;
323+
readonly usbVersionMajor: number;
324+
readonly usbVersionMinor: number;
325+
readonly usbVersionSubminor: number;
326+
readonly vendorId: number;
327+
}
328+
CommandsRegistry.registerCommand('workbench.experimental.requestUsbDevice', async (_accessor: ServicesAccessor, options?: { filters?: unknown[] }): Promise<UsbDeviceData | undefined> => {
329+
const device = await (navigator as any).usb.requestDevice({ filters: options?.filters ?? [] });
330+
if (!device) {
331+
return undefined;
332+
}
333+
return {
334+
deviceClass: device.deviceClass,
335+
deviceProtocol: device.deviceProtocol,
336+
deviceSubclass: device.deviceSubclass,
337+
deviceVersionMajor: device.deviceVersionMajor,
338+
deviceVersionMinor: device.deviceVersionMinor,
339+
deviceVersionSubminor: device.deviceVersionSubminor,
340+
manufacturerName: device.manufacturerName,
341+
productId: device.productId,
342+
productName: device.productName,
343+
serialNumber: device.serialNumber,
344+
usbVersionMajor: device.usbVersionMajor,
345+
usbVersionMinor: device.usbVersionMinor,
346+
usbVersionSubminor: device.usbVersionSubminor,
347+
vendorId: device.vendorId,
348+
};
314349
});
315350
}

0 commit comments

Comments
 (0)