getDataSource method

Future<DataSource> getDataSource(
  1. int id
)

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}');
}