m3_lightmeter/lib/screens/metering/state_metering.dart

47 lines
1.2 KiB
Dart
Raw Normal View History

2022-12-16 08:08:12 +00:00
import 'package:lightmeter/data/models/exposure_pair.dart';
import 'package:lightmeter/data/models/photography_values/iso_value.dart';
import 'package:lightmeter/data/models/photography_values/nd_value.dart';
2022-10-29 18:02:45 +00:00
abstract class MeteringState {
const MeteringState();
}
class LoadingState extends MeteringState {
const LoadingState();
}
abstract class MeteringDataState extends MeteringState {
2022-10-29 18:02:45 +00:00
final double ev;
final IsoValue iso;
final NdValue nd;
2022-10-29 18:02:45 +00:00
final List<ExposurePair> exposurePairs;
const MeteringDataState({
2022-10-29 18:02:45 +00:00
required this.ev,
required this.iso,
required this.nd,
required this.exposurePairs,
});
ExposurePair? get fastest => exposurePairs.isEmpty ? null : exposurePairs.first;
ExposurePair? get slowest => exposurePairs.isEmpty ? null : exposurePairs.last;
}
class MeteringInProgressState extends MeteringDataState {
MeteringInProgressState({
required super.ev,
required super.iso,
required super.nd,
required super.exposurePairs,
});
}
class MeteringEndedState extends MeteringDataState {
MeteringEndedState({
required super.ev,
required super.iso,
required super.nd,
required super.exposurePairs,
});
}