1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- import 'dart:typed_data';
- import 'package:vid/us/vid_us_2d_visual.dart';
- import 'package:vid/us/vid_us_3d_visual.dart';
- import 'package:vid/us/vid_us_data_reader.dart';
- import 'package:vid/us/vid_us_data_writer.dart';
- import 'package:vid/us/vid_us_display_mode.dart';
- import 'package:vid/us/vid_us_mode.dart';
- import 'package:vid/us/vid_us_visual_indicator.dart';
- import 'package:vid/us/vid_us_visual_type.dart';
- class VidUsVisual {
- late VidUsDisplayMode _displayMode;
- late VidUsModeType _activeModeType;
- late VidUsVisualIndicator _indicator;
- late VidUsVisualType _visualType;
- late List<VidUsMode> _modes;
- /// Gets or sets the Display mode of this image.
- VidUsDisplayMode get displayMode => _displayMode;
- /// Gets the visual type of this Visual.
- VidUsVisualType get visualType => _visualType;
- /// Gets or sets the Indicator of this Visual.
- VidUsVisualIndicator get indicator => _indicator;
- /// Gets or set the active mode type of this visual.
- VidUsModeType get activeModeType => _activeModeType;
- /// Gets all modse of this visual.
- List<VidUsMode> get modes => _modes;
- VidUsVisual() {
- _activeModeType = VidUsModeType.Undefined;
- _modes = [];
- //Default is A
- _indicator = VidUsVisualIndicator.A;
- //Default is Normal
- _displayMode = VidUsDisplayMode.Normal;
- }
- void setVisualType(VidUsVisualType type) {
- _visualType = type;
- }
- void setIndicator(VidUsVisualIndicator indicator) {
- _indicator = indicator;
- }
- void setActiveModeType(VidUsModeType type) {
- _activeModeType = type;
- }
- void setDisplayMode(VidUsDisplayMode mode) {
- _displayMode = mode;
- }
- Uint8List toBytes() {
- var writer = VidUsDataWriter();
- writer.writeByte(_visualType.index);
- writer.writeByte(_displayMode.index);
- writer.writeByte(_indicator.index);
- writer.writeByte(_activeModeType.index);
- writer.writeByte(_modes.length);
- _modes.forEach((mode) {
- writer.writeBytes(mode.toBytes());
- });
- return writer.data;
- }
- static VidUsVisual fromBytes(Uint8List bytes) {
- var reader = VidUsDataReader(bytes);
- var visualType = VidUsVisualType.values[reader.readByte()];
- if (visualType == VidUsVisualType.V2D) {
- return VidUs2DVisual.fromBytes(bytes);
- }
- if (visualType == VidUsVisualType.V3D) {
- return VidUs3DVisual.fromBytes(bytes);
- }
- throw Exception("Not supported visual $visualType");
- }
- }
|