core: preparation work for introducing options
authorKostya Shishkov <kostya.shishkov@gmail.com>
Sat, 30 May 2020 10:08:49 +0000 (12:08 +0200)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Sat, 30 May 2020 10:08:49 +0000 (12:08 +0200)
nihav-core/src/frame.rs

index 5b090bb942841e6006beceec1a94591c07b9389b..badc7f8c0a542a3a64b60e860cd5490b72404344 100644 (file)
@@ -857,15 +857,41 @@ pub const DUMMY_CODEC_INFO: NACodecInfo = NACodecInfo {
                                 properties: NACodecTypeInfo::None,
                                 extradata: None };
 
+/// Option definition.
+#[derive(Debug)]
+pub struct NAOptionDefinition {
+    /// Option name.
+    pub name:           &'static str,
+    /// Option meaning.
+    pub description:    &'static str,
+    /// Minimal value for the option (if applicable).
+    pub min_value:      Option<NAValue>,
+    /// Maximum value for the option (if applicable).
+    pub max_value:      Option<NAValue>,
+}
+
+/// Option.
+#[derive(Clone,Debug,PartialEq)]
+pub struct NAOption {
+    /// Option name.
+    pub name:   String,
+    /// Option value.
+    pub value:  NAValue,
+}
+
 /// A list of accepted option values.
-#[derive(Debug,Clone)]
+#[derive(Debug,Clone,PartialEq)]
 pub enum NAValue {
     /// Empty value.
     None,
+    /// Boolean value.
+    Bool(bool),
     /// Integer value.
     Int(i32),
     /// Long integer value.
     Long(i64),
+    /// Floating point value.
+    Float(f32),
     /// String value.
     String(String),
     /// Binary data value.