Voice Rework -- Events, Track Queues (#806)
This implements a proof-of-concept for an improved audio frontend. The largest change is the introduction of events and event handling: both by time elapsed and by track events, such as ending or looping. Following on from this, the library now includes a basic, event-driven track queue system (which people seem to ask for unusually often). A new sample, `examples/13_voice_events`, demonstrates both the `TrackQueue` system and some basic events via the `~queue` and `~play_fade` commands. Locks are removed from around the control of `Audio` objects, which should allow the backend to be moved to a more granular futures-based backend solution in a cleaner way.
This commit is contained in:
23
build.rs
Normal file
23
build.rs
Normal file
@@ -0,0 +1,23 @@
|
||||
#[cfg(all(feature = "driver", not(any(feature = "rustls", feature = "native"))))]
|
||||
compile_error!(
|
||||
"You have the `driver` feature enabled: \
|
||||
either the `rustls` or `native` feature must be
|
||||
selected to let Songbird's driver use websockets.\n\
|
||||
- `rustls` uses Rustls, a pure Rust TLS-implemenation.\n\
|
||||
- `native` uses SChannel on Windows, Secure Transport on macOS, \
|
||||
and OpenSSL on other platforms.\n\
|
||||
If you are unsure, go with `rustls`."
|
||||
);
|
||||
|
||||
#[cfg(all(
|
||||
feature = "twilight",
|
||||
not(any(feature = "simd-zlib", feature = "stock-zlib"))
|
||||
))]
|
||||
compile_error!(
|
||||
"Twilight requires you to specify a zlib backend: \
|
||||
either the `simd-zlib` or `stock-zlib` feature must be
|
||||
selected.\n\
|
||||
If you are unsure, go with `stock-zlib`."
|
||||
);
|
||||
|
||||
fn main() {}
|
||||
Reference in New Issue
Block a user