diff --git a/atem-connection-rs/Cargo.toml b/atem-connection-rs/Cargo.toml index ffc5820..732362e 100644 --- a/atem-connection-rs/Cargo.toml +++ b/atem-connection-rs/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "atem-connection-rs" version = "0.1.0" -edition = "2021" +edition = "2024" [dependencies] derive-getters = "0.2.0" diff --git a/atem-connection-rs/src/atem_lib/atem_packet.rs b/atem-connection-rs/src/atem_lib/atem_packet.rs index 94cd59f..d597c0b 100755 --- a/atem-connection-rs/src/atem_lib/atem_packet.rs +++ b/atem-connection-rs/src/atem_lib/atem_packet.rs @@ -1,5 +1,5 @@ use core::{fmt::Display, str}; -use enumflags2::{bitflags, BitFlags}; +use enumflags2::{BitFlags, bitflags}; use super::atem_field::{Field, FieldParsingError, RawField}; diff --git a/atem-connection-rs/src/commands/command_base.rs b/atem-connection-rs/src/commands/command_base.rs index b708af6..f754fc8 100644 --- a/atem-connection-rs/src/commands/command_base.rs +++ b/atem-connection-rs/src/commands/command_base.rs @@ -9,7 +9,7 @@ pub trait DeserializedCommand: Send + Sync + Debug { pub trait CommandDeserializer: Send + Sync { fn deserialize(&self, buffer: &[u8], version: &ProtocolVersion) - -> Arc; + -> Arc; } pub trait SerializableCommand: Send + Sync { diff --git a/atem-connection-rs/src/commands/mix_effects/program_input.rs b/atem-connection-rs/src/commands/mix_effects/program_input.rs index 47a6738..85da9ac 100644 --- a/atem-connection-rs/src/commands/mix_effects/program_input.rs +++ b/atem-connection-rs/src/commands/mix_effects/program_input.rs @@ -1,4 +1,5 @@ use std::sync::Arc; +use derive_new::new; use crate::{ commands::command_base::{ diff --git a/atem-connection-rs/src/commands/parse_commands.rs b/atem-connection-rs/src/commands/parse_commands.rs index a463c0e..2f83e10 100644 --- a/atem-connection-rs/src/commands/parse_commands.rs +++ b/atem-connection-rs/src/commands/parse_commands.rs @@ -2,7 +2,7 @@ use std::{collections::VecDeque, sync::Arc}; use crate::{ 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, }; @@ -10,20 +10,20 @@ use super::{ command_base::{CommandDeserializer, DeserializedCommand}, device_profile::{ 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::{ - 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::{ - 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}, - mix_effects::program_input::{ProgramInputDeserializer, DESERIALIZE_PROGRAM_INPUT_RAW_NAME}, - tally_by_source::{TallyBySourceDeserializer, DESERIALIZE_TALLY_BY_SOURCE_RAW_NAME}, - time::{TimeDeserializer, DESERIALIZE_TIME_RAW_NAME}, + init_complete::{DESERIALIZE_INIT_COMPLETE_RAW_NAME, InitCompleteDeserializer}, + mix_effects::program_input::{DESERIALIZE_PROGRAM_INPUT_RAW_NAME, ProgramInputDeserializer}, + tally_by_source::{DESERIALIZE_TALLY_BY_SOURCE_RAW_NAME, TallyBySourceDeserializer}, + time::{DESERIALIZE_TIME_RAW_NAME, TimeDeserializer}, }; pub fn deserialize_commands>( diff --git a/atem-connection-rs/src/commands/tally_by_source.rs b/atem-connection-rs/src/commands/tally_by_source.rs index dd6e341..a3f184b 100644 --- a/atem-connection-rs/src/commands/tally_by_source.rs +++ b/atem-connection-rs/src/commands/tally_by_source.rs @@ -1,3 +1,4 @@ +use derive_new::new; use std::{collections::HashMap, sync::Arc}; use crate::enums::ProtocolVersion; diff --git a/atem-connection-rs/src/lib.rs b/atem-connection-rs/src/lib.rs index b82f233..3b421b2 100644 --- a/atem-connection-rs/src/lib.rs +++ b/atem-connection-rs/src/lib.rs @@ -1,7 +1,4 @@ -#[macro_use] -extern crate derive_new; -#[macro_use] -extern crate derive_getters; + pub mod atem; pub mod atem_lib; diff --git a/atem-connection-rs/src/state/atem_macro.rs b/atem-connection-rs/src/state/atem_macro.rs index 4236470..0b5dd01 100644 --- a/atem-connection-rs/src/state/atem_macro.rs +++ b/atem-connection-rs/src/state/atem_macro.rs @@ -1,3 +1,5 @@ +use derive_getters::Getters; +use derive_new::new; #[derive(Clone, PartialEq, Getters, new, Default)] pub struct MacroPlayerState { pub is_running: bool, diff --git a/atem-connection-rs/src/state/audio.rs b/atem-connection-rs/src/state/audio.rs index 0255afd..6df76e1 100644 --- a/atem-connection-rs/src/state/audio.rs +++ b/atem-connection-rs/src/state/audio.rs @@ -1,6 +1,8 @@ use std::collections::HashMap; use crate::enums::{AudioMixOption, AudioSourceType, ExternalPortType}; +use derive_getters::Getters; +use derive_new::new; pub type AudioChannel = ClassicAudioChannel; pub type AudioMasterChannel = ClassicAudioMasterChannel; diff --git a/atem-connection-rs/src/state/color.rs b/atem-connection-rs/src/state/color.rs index 9fd9290..a867ccf 100644 --- a/atem-connection-rs/src/state/color.rs +++ b/atem-connection-rs/src/state/color.rs @@ -1,3 +1,5 @@ +use derive_getters::Getters; +use derive_new::new; #[derive(Clone, PartialEq, Getters, new)] pub struct ColorGeneratorState { pub hue: u64, diff --git a/atem-connection-rs/src/state/common.rs b/atem-connection-rs/src/state/common.rs index aaf2f02..f69e0b4 100644 --- a/atem-connection-rs/src/state/common.rs +++ b/atem-connection-rs/src/state/common.rs @@ -1,3 +1,5 @@ +use derive_getters::Getters; +use derive_new::new; #[derive(Clone, PartialEq, Getters, new)] pub struct Timecode { pub hours: u64, diff --git a/atem-connection-rs/src/state/fairlight.rs b/atem-connection-rs/src/state/fairlight.rs index ba97e30..981adf7 100644 --- a/atem-connection-rs/src/state/fairlight.rs +++ b/atem-connection-rs/src/state/fairlight.rs @@ -1,4 +1,6 @@ use std::collections::HashMap; +use derive_getters::Getters; +use derive_new::new; use crate::enums::{ ExternalPortType, FairlightAnalogInputLevel, FairlightAudioMixOption, FairlightAudioSourceType, diff --git a/atem-connection-rs/src/state/info.rs b/atem-connection-rs/src/state/info.rs index c97f2be..79a37b6 100644 --- a/atem-connection-rs/src/state/info.rs +++ b/atem-connection-rs/src/state/info.rs @@ -1,4 +1,6 @@ use crate::enums::{Model, ProtocolVersion}; +use derive_getters::Getters; +use derive_new::new; #[derive(Clone, PartialEq, Getters, new)] pub struct AtemCapabilites { diff --git a/atem-connection-rs/src/state/input.rs b/atem-connection-rs/src/state/input.rs index 0c3c654..9b312b2 100644 --- a/atem-connection-rs/src/state/input.rs +++ b/atem-connection-rs/src/state/input.rs @@ -1,4 +1,6 @@ use crate::enums::{ExternalPortType, InternalPortType, MeAvailability, SourceAvailability}; +use derive_getters::Getters; +use derive_new::new; #[derive(Clone, PartialEq, Getters, new)] pub struct InputChannel { diff --git a/atem-connection-rs/src/state/media.rs b/atem-connection-rs/src/state/media.rs index f32824e..7d10789 100644 --- a/atem-connection-rs/src/state/media.rs +++ b/atem-connection-rs/src/state/media.rs @@ -1,4 +1,6 @@ use crate::enums; +use derive_getters::Getters; +use derive_new::new; #[derive(Clone, PartialEq, Getters, new)] pub struct MediaPlayer { diff --git a/atem-connection-rs/src/state/recording.rs b/atem-connection-rs/src/state/recording.rs index 4aa8220..58b62e4 100644 --- a/atem-connection-rs/src/state/recording.rs +++ b/atem-connection-rs/src/state/recording.rs @@ -1,3 +1,5 @@ +use derive_getters::Getters; +use derive_new::new; use std::collections::HashMap; use crate::enums::{RecordingDiskStatus, RecordingError, RecordingStatus}; diff --git a/atem-connection-rs/src/state/settings.rs b/atem-connection-rs/src/state/settings.rs index 2f601cc..7f965ba 100644 --- a/atem-connection-rs/src/state/settings.rs +++ b/atem-connection-rs/src/state/settings.rs @@ -1,4 +1,6 @@ use crate::enums::{MultiViewerLayout, VideoMode}; +use derive_getters::Getters; +use derive_new::new; pub trait MultiViewerSourceState { fn get_source(&self) -> u64; diff --git a/atem-connection-rs/src/state/streaming.rs b/atem-connection-rs/src/state/streaming.rs index c94644b..aa04def 100644 --- a/atem-connection-rs/src/state/streaming.rs +++ b/atem-connection-rs/src/state/streaming.rs @@ -1,4 +1,6 @@ use crate::enums::{StreamingError, StreamingStatus}; +use derive_getters::Getters; +use derive_new::new; use super::common::Timecode; diff --git a/atem-connection-rs/src/state/util.rs b/atem-connection-rs/src/state/util.rs index 776e7b5..de8dacf 100644 --- a/atem-connection-rs/src/state/util.rs +++ b/atem-connection-rs/src/state/util.rs @@ -1,9 +1,9 @@ use crate::enums::{TransitionSelection, TransitionStyle}; use super::{ + AtemState, settings::MultiViewer, video::{MixEffect, TransitionPosition, TransitionProperties, TransitionSettings}, - AtemState, }; pub fn create() -> AtemState { diff --git a/atem-connection-rs/src/state/video/downstream_keyers.rs b/atem-connection-rs/src/state/video/downstream_keyers.rs index 06d244d..a18cb90 100644 --- a/atem-connection-rs/src/state/video/downstream_keyers.rs +++ b/atem-connection-rs/src/state/video/downstream_keyers.rs @@ -1,3 +1,5 @@ +use derive_getters::Getters; +use derive_new::new; pub trait DownstreamKeyerBase { fn get_in_transition(&self) -> bool; fn get_remaining_frames(&self) -> f64; diff --git a/atem-connection-rs/src/state/video/mod.rs b/atem-connection-rs/src/state/video/mod.rs index fba70b5..4b3c396 100644 --- a/atem-connection-rs/src/state/video/mod.rs +++ b/atem-connection-rs/src/state/video/mod.rs @@ -1,4 +1,6 @@ use crate::enums; +use derive_getters::Getters; +use derive_new::new; mod downstream_keyers; mod super_source; diff --git a/atem-connection-rs/src/state/video/super_source.rs b/atem-connection-rs/src/state/video/super_source.rs index 92d85cd..b7c4ae4 100644 --- a/atem-connection-rs/src/state/video/super_source.rs +++ b/atem-connection-rs/src/state/video/super_source.rs @@ -1,4 +1,6 @@ use crate::enums; +use derive_getters::Getters; +use derive_new::new; #[derive(Clone, PartialEq, Getters, new)] pub struct SuperSourceBox { diff --git a/atem-test/Cargo.toml b/atem-test/Cargo.toml index 6496268..028b623 100644 --- a/atem-test/Cargo.toml +++ b/atem-test/Cargo.toml @@ -1,9 +1,7 @@ [package] name = "atem-test" version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +edition = "2024" [dependencies] atem-connection-rs = { path = "../atem-connection-rs" } diff --git a/atem-test/src/main.rs b/atem-test/src/main.rs index 3fe8795..72e0911 100644 --- a/atem-test/src/main.rs +++ b/atem-test/src/main.rs @@ -69,12 +69,16 @@ async fn main() { fn setup_logging() -> Result<(), Report> { 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()?; 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();