Files
usb_serial/ios/flutter_usb_serial/Sources/DriverKitSerialClient/include/DriverKitSerialClient.h
T
Tony 17414656a9 Enhance USB serial plugin for Android and iPadOS with DriverKit support
- Updated README.md to reflect platform support for iPadOS.
- Implemented isDriverAvailable method in FlutterUsbSerialPlugin for DriverKit readiness check.
- Added DriverKitSerialClient C source and header files for iPadOS integration.
- Created Swift Package for iPadOS support.
- Updated pubspec.yaml and flutter_usb_serial.dart to clarify platform compatibility.
- Enhanced tests to verify isDriverAvailable functionality.

Signed-off-by: Tony <tonylu@tony-cloud.com>
2026-08-01 20:40:46 +08:00

65 lines
2.1 KiB
C

#ifndef DRIVER_KIT_SERIAL_CLIENT_H
#define DRIVER_KIT_SERIAL_CLIENT_H
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
enum {
FlutterUsbDriverKindUnknown = 0,
FlutterUsbDriverKindSerial = 1,
FlutterUsbDriverKindHid = 2,
};
typedef struct {
uint64_t registryEntryId;
uint32_t protocolVersion;
uint32_t kind;
uint16_t vendorId;
uint16_t productId;
uint16_t maxInputPacketSize;
uint16_t maxOutputPacketSize;
uint8_t interfaceNumber;
uint8_t inputEndpoint;
uint8_t outputEndpoint;
uint8_t reserved;
} FlutterUsbDriverDeviceInfo;
bool FlutterUsbSerialDriverIsAvailable(void);
size_t FlutterUsbSerialDriverCopyDevices(
FlutterUsbDriverDeviceInfo *devices,
size_t capacity);
int32_t FlutterUsbSerialDriverOpen(uint64_t registryEntryId,
uint32_t *connection);
void FlutterUsbSerialDriverClose(uint32_t connection);
int32_t FlutterUsbSerialDriverWrite(uint32_t connection,
const uint8_t *bytes,
uint32_t length,
uint32_t *bytesWritten);
int32_t FlutterUsbSerialDriverRead(uint32_t connection,
uint8_t *bytes,
uint32_t capacity,
uint32_t timeoutMilliseconds,
uint32_t *bytesRead);
int32_t FlutterUsbSerialDriverConfigure(uint32_t connection,
uint32_t baudRate,
uint8_t dataBits,
uint8_t parity,
uint8_t stopBits);
int32_t FlutterUsbSerialDriverSetLineState(uint32_t connection,
bool dtr,
bool rts);
int32_t FlutterUsbSerialDriverPurge(uint32_t connection,
bool purgeWrite,
bool purgeRead);
#ifdef __cplusplus
}
#endif
#endif