edition 2024
This commit is contained in:
parent
3e1ecb0df1
commit
aaa8640a96
|
@ -1,7 +1,7 @@
|
||||||
[package]
|
[package]
|
||||||
name = "atem-connection-rs"
|
name = "atem-connection-rs"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
edition = "2021"
|
edition = "2024"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
derive-getters = "0.2.0"
|
derive-getters = "0.2.0"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
use core::{fmt::Display, str};
|
use core::{fmt::Display, str};
|
||||||
use enumflags2::{bitflags, BitFlags};
|
use enumflags2::{BitFlags, bitflags};
|
||||||
|
|
||||||
use super::atem_field::{Field, FieldParsingError, RawField};
|
use super::atem_field::{Field, FieldParsingError, RawField};
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ pub trait DeserializedCommand: Send + Sync + Debug {
|
||||||
|
|
||||||
pub trait CommandDeserializer: Send + Sync {
|
pub trait CommandDeserializer: Send + Sync {
|
||||||
fn deserialize(&self, buffer: &[u8], version: &ProtocolVersion)
|
fn deserialize(&self, buffer: &[u8], version: &ProtocolVersion)
|
||||||
-> Arc<dyn DeserializedCommand>;
|
-> Arc<dyn DeserializedCommand>;
|
||||||
}
|
}
|
||||||
|
|
||||||
pub trait SerializableCommand: Send + Sync {
|
pub trait SerializableCommand: Send + Sync {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
use derive_new::new;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
commands::command_base::{
|
commands::command_base::{
|
||||||
|
|
|
@ -2,7 +2,7 @@ use std::{collections::VecDeque, sync::Arc};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
atem_lib::atem_packet::{AtemPacket, RawFields},
|
atem_lib::atem_packet::{AtemPacket, RawFields},
|
||||||
commands::device_profile::version::{deserialize_version, DESERIALIZE_VERSION_RAW_NAME},
|
commands::device_profile::version::{DESERIALIZE_VERSION_RAW_NAME, deserialize_version},
|
||||||
enums::ProtocolVersion,
|
enums::ProtocolVersion,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -10,20 +10,20 @@ use super::{
|
||||||
command_base::{CommandDeserializer, DeserializedCommand},
|
command_base::{CommandDeserializer, DeserializedCommand},
|
||||||
device_profile::{
|
device_profile::{
|
||||||
audio_mixer_config::{AudioMixerConfigDeserializer, DESERIALIZE_AUDIO_MIXER_CONFIG_NAME},
|
audio_mixer_config::{AudioMixerConfigDeserializer, DESERIALIZE_AUDIO_MIXER_CONFIG_NAME},
|
||||||
media_pool_config::{MediaPoolConfigDeserializer, DESERIALIZE_MEDIA_POOL_CONFIG_NAME},
|
media_pool_config::{DESERIALIZE_MEDIA_POOL_CONFIG_NAME, MediaPoolConfigDeserializer},
|
||||||
mix_effect_block_config::{
|
mix_effect_block_config::{
|
||||||
MixEffectBlockConfigDeserializer, DESERIALIZE_MIX_EFFECT_BLOCK_CONFIG_NAME,
|
DESERIALIZE_MIX_EFFECT_BLOCK_CONFIG_NAME, MixEffectBlockConfigDeserializer,
|
||||||
},
|
},
|
||||||
multiviewer_config::{MultiviewerConfigDeserializer, DESERIALIZE_MULTIVIEWER_NAME},
|
multiviewer_config::{DESERIALIZE_MULTIVIEWER_NAME, MultiviewerConfigDeserializer},
|
||||||
product_identifier::{
|
product_identifier::{
|
||||||
ProductIdentifierDeserializer, DESERIALIZE_PRODUCT_IDENTIFIER_RAW_NAME,
|
DESERIALIZE_PRODUCT_IDENTIFIER_RAW_NAME, ProductIdentifierDeserializer,
|
||||||
},
|
},
|
||||||
topology::{TopologyDeserializer, DESERIALIZE_TOPOLOGY_RAW_NAME},
|
topology::{DESERIALIZE_TOPOLOGY_RAW_NAME, TopologyDeserializer},
|
||||||
},
|
},
|
||||||
init_complete::{InitCompleteDeserializer, DESERIALIZE_INIT_COMPLETE_RAW_NAME},
|
init_complete::{DESERIALIZE_INIT_COMPLETE_RAW_NAME, InitCompleteDeserializer},
|
||||||
mix_effects::program_input::{ProgramInputDeserializer, DESERIALIZE_PROGRAM_INPUT_RAW_NAME},
|
mix_effects::program_input::{DESERIALIZE_PROGRAM_INPUT_RAW_NAME, ProgramInputDeserializer},
|
||||||
tally_by_source::{TallyBySourceDeserializer, DESERIALIZE_TALLY_BY_SOURCE_RAW_NAME},
|
tally_by_source::{DESERIALIZE_TALLY_BY_SOURCE_RAW_NAME, TallyBySourceDeserializer},
|
||||||
time::{TimeDeserializer, DESERIALIZE_TIME_RAW_NAME},
|
time::{DESERIALIZE_TIME_RAW_NAME, TimeDeserializer},
|
||||||
};
|
};
|
||||||
|
|
||||||
pub fn deserialize_commands<T: AsRef<[u8]>>(
|
pub fn deserialize_commands<T: AsRef<[u8]>>(
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
use derive_new::new;
|
||||||
use std::{collections::HashMap, sync::Arc};
|
use std::{collections::HashMap, sync::Arc};
|
||||||
|
|
||||||
use crate::enums::ProtocolVersion;
|
use crate::enums::ProtocolVersion;
|
||||||
|
|
|
@ -1,7 +1,4 @@
|
||||||
#[macro_use]
|
|
||||||
extern crate derive_new;
|
|
||||||
#[macro_use]
|
|
||||||
extern crate derive_getters;
|
|
||||||
|
|
||||||
pub mod atem;
|
pub mod atem;
|
||||||
pub mod atem_lib;
|
pub mod atem_lib;
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
use derive_getters::Getters;
|
||||||
|
use derive_new::new;
|
||||||
#[derive(Clone, PartialEq, Getters, new, Default)]
|
#[derive(Clone, PartialEq, Getters, new, Default)]
|
||||||
pub struct MacroPlayerState {
|
pub struct MacroPlayerState {
|
||||||
pub is_running: bool,
|
pub is_running: bool,
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
use crate::enums::{AudioMixOption, AudioSourceType, ExternalPortType};
|
use crate::enums::{AudioMixOption, AudioSourceType, ExternalPortType};
|
||||||
|
use derive_getters::Getters;
|
||||||
|
use derive_new::new;
|
||||||
|
|
||||||
pub type AudioChannel = ClassicAudioChannel;
|
pub type AudioChannel = ClassicAudioChannel;
|
||||||
pub type AudioMasterChannel = ClassicAudioMasterChannel;
|
pub type AudioMasterChannel = ClassicAudioMasterChannel;
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
use derive_getters::Getters;
|
||||||
|
use derive_new::new;
|
||||||
#[derive(Clone, PartialEq, Getters, new)]
|
#[derive(Clone, PartialEq, Getters, new)]
|
||||||
pub struct ColorGeneratorState {
|
pub struct ColorGeneratorState {
|
||||||
pub hue: u64,
|
pub hue: u64,
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
use derive_getters::Getters;
|
||||||
|
use derive_new::new;
|
||||||
#[derive(Clone, PartialEq, Getters, new)]
|
#[derive(Clone, PartialEq, Getters, new)]
|
||||||
pub struct Timecode {
|
pub struct Timecode {
|
||||||
pub hours: u64,
|
pub hours: u64,
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
use derive_getters::Getters;
|
||||||
|
use derive_new::new;
|
||||||
|
|
||||||
use crate::enums::{
|
use crate::enums::{
|
||||||
ExternalPortType, FairlightAnalogInputLevel, FairlightAudioMixOption, FairlightAudioSourceType,
|
ExternalPortType, FairlightAnalogInputLevel, FairlightAudioMixOption, FairlightAudioSourceType,
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
use crate::enums::{Model, ProtocolVersion};
|
use crate::enums::{Model, ProtocolVersion};
|
||||||
|
use derive_getters::Getters;
|
||||||
|
use derive_new::new;
|
||||||
|
|
||||||
#[derive(Clone, PartialEq, Getters, new)]
|
#[derive(Clone, PartialEq, Getters, new)]
|
||||||
pub struct AtemCapabilites {
|
pub struct AtemCapabilites {
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
use crate::enums::{ExternalPortType, InternalPortType, MeAvailability, SourceAvailability};
|
use crate::enums::{ExternalPortType, InternalPortType, MeAvailability, SourceAvailability};
|
||||||
|
use derive_getters::Getters;
|
||||||
|
use derive_new::new;
|
||||||
|
|
||||||
#[derive(Clone, PartialEq, Getters, new)]
|
#[derive(Clone, PartialEq, Getters, new)]
|
||||||
pub struct InputChannel {
|
pub struct InputChannel {
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
use crate::enums;
|
use crate::enums;
|
||||||
|
use derive_getters::Getters;
|
||||||
|
use derive_new::new;
|
||||||
|
|
||||||
#[derive(Clone, PartialEq, Getters, new)]
|
#[derive(Clone, PartialEq, Getters, new)]
|
||||||
pub struct MediaPlayer {
|
pub struct MediaPlayer {
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
use derive_getters::Getters;
|
||||||
|
use derive_new::new;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
use crate::enums::{RecordingDiskStatus, RecordingError, RecordingStatus};
|
use crate::enums::{RecordingDiskStatus, RecordingError, RecordingStatus};
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
use crate::enums::{MultiViewerLayout, VideoMode};
|
use crate::enums::{MultiViewerLayout, VideoMode};
|
||||||
|
use derive_getters::Getters;
|
||||||
|
use derive_new::new;
|
||||||
|
|
||||||
pub trait MultiViewerSourceState {
|
pub trait MultiViewerSourceState {
|
||||||
fn get_source(&self) -> u64;
|
fn get_source(&self) -> u64;
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
use crate::enums::{StreamingError, StreamingStatus};
|
use crate::enums::{StreamingError, StreamingStatus};
|
||||||
|
use derive_getters::Getters;
|
||||||
|
use derive_new::new;
|
||||||
|
|
||||||
use super::common::Timecode;
|
use super::common::Timecode;
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
use crate::enums::{TransitionSelection, TransitionStyle};
|
use crate::enums::{TransitionSelection, TransitionStyle};
|
||||||
|
|
||||||
use super::{
|
use super::{
|
||||||
|
AtemState,
|
||||||
settings::MultiViewer,
|
settings::MultiViewer,
|
||||||
video::{MixEffect, TransitionPosition, TransitionProperties, TransitionSettings},
|
video::{MixEffect, TransitionPosition, TransitionProperties, TransitionSettings},
|
||||||
AtemState,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
pub fn create() -> AtemState {
|
pub fn create() -> AtemState {
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
use derive_getters::Getters;
|
||||||
|
use derive_new::new;
|
||||||
pub trait DownstreamKeyerBase {
|
pub trait DownstreamKeyerBase {
|
||||||
fn get_in_transition(&self) -> bool;
|
fn get_in_transition(&self) -> bool;
|
||||||
fn get_remaining_frames(&self) -> f64;
|
fn get_remaining_frames(&self) -> f64;
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
use crate::enums;
|
use crate::enums;
|
||||||
|
use derive_getters::Getters;
|
||||||
|
use derive_new::new;
|
||||||
|
|
||||||
mod downstream_keyers;
|
mod downstream_keyers;
|
||||||
mod super_source;
|
mod super_source;
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
use crate::enums;
|
use crate::enums;
|
||||||
|
use derive_getters::Getters;
|
||||||
|
use derive_new::new;
|
||||||
|
|
||||||
#[derive(Clone, PartialEq, Getters, new)]
|
#[derive(Clone, PartialEq, Getters, new)]
|
||||||
pub struct SuperSourceBox {
|
pub struct SuperSourceBox {
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
[package]
|
[package]
|
||||||
name = "atem-test"
|
name = "atem-test"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
edition = "2021"
|
edition = "2024"
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
atem-connection-rs = { path = "../atem-connection-rs" }
|
atem-connection-rs = { path = "../atem-connection-rs" }
|
||||||
|
|
|
@ -69,12 +69,16 @@ async fn main() {
|
||||||
|
|
||||||
fn setup_logging() -> Result<(), Report> {
|
fn setup_logging() -> Result<(), Report> {
|
||||||
if std::env::var("RUST_LIB_BACKTRACE").is_err() {
|
if std::env::var("RUST_LIB_BACKTRACE").is_err() {
|
||||||
std::env::set_var("RUST_LIB_BACKTRACE", "1");
|
unsafe {
|
||||||
|
std::env::set_var("RUST_LIB_BACKTRACE", "1");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
color_eyre::install()?;
|
color_eyre::install()?;
|
||||||
|
|
||||||
if std::env::var("RUST_LOG").is_err() {
|
if std::env::var("RUST_LOG").is_err() {
|
||||||
std::env::set_var("RUST_LOG", "debug");
|
unsafe {
|
||||||
|
std::env::set_var("RUST_LOG", "debug");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
env_logger::init();
|
env_logger::init();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue