getDataSource method
Gets the current state of a data source (symbology or NFC tag type).
id is the data source identifier (see CaptureDataSourceID).
Implementation
Future<DataSource> getDataSource(int id) async {
final DataSource query = DataSource(
id: id,
name: '',
status: CaptureDataSourceStatus.defaultStatus,
flags: CaptureDataSourceFlags.status,
);
final dynamic raw = await _get(
CapturePropertyIds.dataSourceDevice,
CapturePropertyTypes.dataSource,
query,
);
if (raw is DataSource) {
return raw;
}
if (raw is Map) {
return DataSource(
id: raw['id'] as int? ?? -1,
name: raw['name'] as String? ?? '',
status: raw['status'] as int? ?? -1,
flags: raw['flags'] as int? ?? 0,
);
}
throw StateError('Unexpected data source format: ${raw.runtimeType}');
}