eldritchwire 0.2.4

A Rust crate for working with the Black Magic Design SDI camera control protocol.
Documentation
use crate::{commands::CommandData, EldritchError, Operation};
use eldritchwire_macros::CommandGroup;

#[derive(Clone, Debug, PartialEq, CommandGroup)]
pub enum MediaCommand {
    #[command(parameter(0x00), data_type(1), data(basic_codec, codec_varient))]
    Codec {
        operation: Operation,
        data: CodecData,
    },
    #[command(
        parameter(0x01),
        data_type(1),
        data(mode, speed, flags, slot_one_storage_medium, slot_two_storage_medium)
    )]
    TransportMode {
        operation: Operation,
        data: TransportModeData,
    },
}

#[derive(Clone, Debug, PartialEq)]
pub struct CodecData {
    pub basic_codec: i8,
    pub codec_varient: i8,
}

#[derive(Clone, Debug, PartialEq)]
pub struct TransportModeData {
    pub mode: i8,
    pub speed: i8,
    pub flags: i8,
    pub slot_one_storage_medium: i8,
    pub slot_two_storage_medium: i8,
}