#[derive(Default)]
pub struct SyncProbeCapture;

impl SyncProbeCapture {
    pub fn new(
        _camera: crate::input::camera::CameraConfig,
        _schedule: crate::sync_probe::schedule::PulseSchedule,
        _duration: std::time::Duration,
    ) -> anyhow::Result<Self> {
        Ok(Self)
    }

    pub fn video_queue(
        &self,
    ) -> crate::uplink_fresh_queue::FreshPacketQueue<lesavka_common::lesavka::VideoPacket> {
        crate::uplink_fresh_queue::FreshPacketQueue::new(
            crate::uplink_fresh_queue::FreshQueueConfig {
                capacity: 1,
                max_age: std::time::Duration::from_millis(1),
                policy: crate::uplink_fresh_queue::FreshQueuePolicy::LatestOnly,
            },
        )
    }

    pub fn audio_queue(
        &self,
    ) -> crate::uplink_fresh_queue::FreshPacketQueue<lesavka_common::lesavka::AudioPacket> {
        crate::uplink_fresh_queue::FreshPacketQueue::new(
            crate::uplink_fresh_queue::FreshQueueConfig {
                capacity: 1,
                max_age: std::time::Duration::from_millis(1),
                policy: crate::uplink_fresh_queue::FreshQueuePolicy::DrainOldest,
            },
        )
    }

    pub fn start_unix_ns(&self) -> u64 {
        1
    }
}
