kira 0.7.1

Expressive audio library for games
Documentation
pub mod producer;

use atomic_arena::Key;

use crate::{
	clock::{Clock, ClockId},
	sound::Sound,
	track::{SubTrackId, Track, TrackId},
	tween::Tween,
	ClockSpeed, Volume,
};

pub(crate) enum SoundCommand {
	Add(Key, Box<dyn Sound>),
}

pub(crate) enum MixerCommand {
	AddSubTrack(SubTrackId, Track),
	SetTrackVolume(TrackId, Volume, Tween),
	SetTrackRoutes {
		from: TrackId,
		to: TrackId,
		volume: Volume,
		tween: Tween,
	},
}

pub(crate) enum ClockCommand {
	Add(ClockId, Clock),
	SetSpeed(ClockId, ClockSpeed, Tween),
	Start(ClockId),
	Pause(ClockId),
	Stop(ClockId),
}

pub(crate) enum Command {
	Sound(SoundCommand),
	Mixer(MixerCommand),
	Clock(ClockCommand),
	Pause(Tween),
	Resume(Tween),
}