edition 2024

This commit is contained in:
Sam W 2025-06-19 00:36:38 +01:00
parent 3e1ecb0df1
commit aaa8640a96
24 changed files with 52 additions and 23 deletions

View File

@ -1,7 +1,7 @@
[package]
name = "atem-connection-rs"
version = "0.1.0"
edition = "2021"
edition = "2024"
[dependencies]
derive-getters = "0.2.0"

View File

@ -1,5 +1,5 @@
use core::{fmt::Display, str};
use enumflags2::{bitflags, BitFlags};
use enumflags2::{BitFlags, bitflags};
use super::atem_field::{Field, FieldParsingError, RawField};

View File

@ -9,7 +9,7 @@ pub trait DeserializedCommand: Send + Sync + Debug {
pub trait CommandDeserializer: Send + Sync {
fn deserialize(&self, buffer: &[u8], version: &ProtocolVersion)
-> Arc<dyn DeserializedCommand>;
-> Arc<dyn DeserializedCommand>;
}
pub trait SerializableCommand: Send + Sync {

View File

@ -1,4 +1,5 @@
use std::sync::Arc;
use derive_new::new;
use crate::{
commands::command_base::{

View File

@ -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<T: AsRef<[u8]>>(

View File

@ -1,3 +1,4 @@
use derive_new::new;
use std::{collections::HashMap, sync::Arc};
use crate::enums::ProtocolVersion;

View File

@ -1,7 +1,4 @@
#[macro_use]
extern crate derive_new;
#[macro_use]
extern crate derive_getters;
pub mod atem;
pub mod atem_lib;

View File

@ -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,

View File

@ -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;

View File

@ -1,3 +1,5 @@
use derive_getters::Getters;
use derive_new::new;
#[derive(Clone, PartialEq, Getters, new)]
pub struct ColorGeneratorState {
pub hue: u64,

View File

@ -1,3 +1,5 @@
use derive_getters::Getters;
use derive_new::new;
#[derive(Clone, PartialEq, Getters, new)]
pub struct Timecode {
pub hours: u64,

View File

@ -1,4 +1,6 @@
use std::collections::HashMap;
use derive_getters::Getters;
use derive_new::new;
use crate::enums::{
ExternalPortType, FairlightAnalogInputLevel, FairlightAudioMixOption, FairlightAudioSourceType,

View File

@ -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 {

View File

@ -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 {

View File

@ -1,4 +1,6 @@
use crate::enums;
use derive_getters::Getters;
use derive_new::new;
#[derive(Clone, PartialEq, Getters, new)]
pub struct MediaPlayer {

View File

@ -1,3 +1,5 @@
use derive_getters::Getters;
use derive_new::new;
use std::collections::HashMap;
use crate::enums::{RecordingDiskStatus, RecordingError, RecordingStatus};

View File

@ -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;

View File

@ -1,4 +1,6 @@
use crate::enums::{StreamingError, StreamingStatus};
use derive_getters::Getters;
use derive_new::new;
use super::common::Timecode;

View File

@ -1,9 +1,9 @@
use crate::enums::{TransitionSelection, TransitionStyle};
use super::{
AtemState,
settings::MultiViewer,
video::{MixEffect, TransitionPosition, TransitionProperties, TransitionSettings},
AtemState,
};
pub fn create() -> AtemState {

View File

@ -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;

View File

@ -1,4 +1,6 @@
use crate::enums;
use derive_getters::Getters;
use derive_new::new;
mod downstream_keyers;
mod super_source;

View File

@ -1,4 +1,6 @@
use crate::enums;
use derive_getters::Getters;
use derive_new::new;
#[derive(Clone, PartialEq, Getters, new)]
pub struct SuperSourceBox {

View File

@ -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" }

View File

@ -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();