use kira::sound::static_sound::{StaticSoundData, StaticSoundHandle};
use kira::track::SpatialTrackHandle;

#[derive(Debug)]
pub struct AudioSource {
    pub sound_data: Option<StaticSoundData>,
    pub handle: Option<StaticSoundHandle>,
    pub spatial_track: Option<SpatialTrackHandle>,
    pub volume: f64,
    pub looping: bool,
    pub playing: bool,
    pub spatial: bool,
    pub reverb: bool,
}

impl Clone for AudioSource {
    fn clone(&self) -> Self {
        Self {
            sound_data: self.sound_data.clone(),
            handle: None,
            spatial_track: None,
            volume: self.volume,
            looping: self.looping,
            playing: self.playing,
            spatial: self.spatial,
            reverb: self.reverb,
        }
    }
}

impl Default for AudioSource {
    fn default() -> Self {
        Self {
            sound_data: None,
            handle: None,
            spatial_track: None,
            volume: 1.0,
            looping: false,
            playing: false,
            spatial: false,
            reverb: false,
        }
    }
}

#[derive(Debug, Clone, Copy, Default)]
pub struct AudioListener;
