tikslop / lib /models /video_orientation.dart
jbilcke-hf's picture
jbilcke-hf HF Staff
paving the way for orientation control
3cc7c13
// lib/models/video_orientation.dart
/// Enum representing the orientation of a video clip.
enum VideoOrientation {
/// Landscape orientation (horizontal, typically 16:9)
LANDSCAPE,
/// Portrait orientation (vertical, typically 9:16)
PORTRAIT
}
/// Extension methods for VideoOrientation enum
extension VideoOrientationExtension on VideoOrientation {
/// Get the string representation of the orientation
String get name {
switch (this) {
case VideoOrientation.LANDSCAPE:
return 'LANDSCAPE';
case VideoOrientation.PORTRAIT:
return 'PORTRAIT';
}
}
/// Value for API communication
String get value {
return name;
}
/// Get the orientation from a string
static VideoOrientation fromString(String? str) {
if (str?.toUpperCase() == 'PORTRAIT') {
return VideoOrientation.PORTRAIT;
}
return VideoOrientation.LANDSCAPE; // Default to landscape
}
/// Whether this orientation is portrait
bool get isPortrait => this == VideoOrientation.PORTRAIT;
/// Whether this orientation is landscape
bool get isLandscape => this == VideoOrientation.LANDSCAPE;
}
/// Helper function to determine orientation from width and height
VideoOrientation getOrientationFromDimensions(int width, int height) {
return width >= height ? VideoOrientation.LANDSCAPE : VideoOrientation.PORTRAIT;
}