Fix remaining compile errors for ASIO host
Now runs the beep and enumerate examples nicely! Time to do a proper code review of the ASIO stuff and see how to best take advantage of the new `Host` API.
This commit is contained in:
parent
747caeee38
commit
05f8b7dc43
|
@ -5,6 +5,7 @@ pub type SupportedOutputFormats = std::vec::IntoIter<SupportedFormat>;
|
||||||
use std::hash::{Hash, Hasher};
|
use std::hash::{Hash, Hasher};
|
||||||
use DefaultFormatError;
|
use DefaultFormatError;
|
||||||
use DeviceNameError;
|
use DeviceNameError;
|
||||||
|
use DevicesError;
|
||||||
use Format;
|
use Format;
|
||||||
use SampleFormat;
|
use SampleFormat;
|
||||||
use SampleRate;
|
use SampleRate;
|
||||||
|
|
|
@ -7,13 +7,14 @@ use {
|
||||||
DeviceNameError,
|
DeviceNameError,
|
||||||
DevicesError,
|
DevicesError,
|
||||||
EventLoop as EventLoopTrait,
|
EventLoop as EventLoopTrait,
|
||||||
|
Format,
|
||||||
Host as HostTrait,
|
Host as HostTrait,
|
||||||
PauseStreamError,
|
PauseStreamError,
|
||||||
PlayStreamError,
|
PlayStreamError,
|
||||||
StreamDataResult,
|
StreamDataResult,
|
||||||
StreamId as StreamIdTrait,
|
StreamId as StreamIdTrait,
|
||||||
SupportedFormatsError,
|
SupportedFormatsError,
|
||||||
}
|
};
|
||||||
|
|
||||||
pub use self::device::{Device, Devices, SupportedInputFormats, SupportedOutputFormats, default_input_device, default_output_device};
|
pub use self::device::{Device, Devices, SupportedInputFormats, SupportedOutputFormats, default_input_device, default_output_device};
|
||||||
pub use self::stream::{EventLoop, StreamId};
|
pub use self::stream::{EventLoop, StreamId};
|
||||||
|
@ -28,8 +29,8 @@ pub struct Host;
|
||||||
|
|
||||||
impl Host {
|
impl Host {
|
||||||
pub fn new() -> Result<Self, crate::HostUnavailable> {
|
pub fn new() -> Result<Self, crate::HostUnavailable> {
|
||||||
unimplemented!("asio as an initialisation and termination process that needs to be impld");
|
//unimplemented!("asio as an initialisation and termination process that needs to be impld");
|
||||||
//Ok(Host)
|
Ok(Host)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,7 +40,8 @@ impl HostTrait for Host {
|
||||||
type EventLoop = EventLoop;
|
type EventLoop = EventLoop;
|
||||||
|
|
||||||
fn is_available() -> bool {
|
fn is_available() -> bool {
|
||||||
unimplemented!("check how to do this using asio-sys")
|
true
|
||||||
|
//unimplemented!("check how to do this using asio-sys")
|
||||||
}
|
}
|
||||||
|
|
||||||
fn devices(&self) -> Result<Self::Devices, DevicesError> {
|
fn devices(&self) -> Result<Self::Devices, DevicesError> {
|
||||||
|
|
|
@ -679,10 +679,6 @@ impl EventLoop {
|
||||||
) => {
|
) => {
|
||||||
let mut my_buffers = $Buffers;
|
let mut my_buffers = $Buffers;
|
||||||
{
|
{
|
||||||
// Wrap the cpal buffer
|
|
||||||
let buff = OutputBuffer {
|
|
||||||
buffer: &mut my_buffers.cpal,
|
|
||||||
};
|
|
||||||
// call the callback to fill the buffer with
|
// call the callback to fill the buffer with
|
||||||
// users data
|
// users data
|
||||||
callback(
|
callback(
|
||||||
|
@ -894,6 +890,7 @@ impl EventLoop {
|
||||||
}
|
}
|
||||||
// Calling play when already playing is a no-op
|
// Calling play when already playing is a no-op
|
||||||
sys::play();
|
sys::play();
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Pause the cpal stream for the given ID.
|
/// Pause the cpal stream for the given ID.
|
||||||
|
@ -912,6 +909,7 @@ impl EventLoop {
|
||||||
if any_playing {
|
if any_playing {
|
||||||
sys::stop();
|
sys::stop();
|
||||||
}
|
}
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Destroy the cpal stream based on the ID.
|
/// Destroy the cpal stream based on the ID.
|
||||||
|
|
|
@ -269,6 +269,7 @@ macro_rules! impl_platform_host {
|
||||||
.map(StreamId)
|
.map(StreamId)
|
||||||
}
|
}
|
||||||
)*
|
)*
|
||||||
|
_ => panic!("tried to build a stream with a device from another host"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -285,6 +286,7 @@ macro_rules! impl_platform_host {
|
||||||
.map(StreamId)
|
.map(StreamId)
|
||||||
}
|
}
|
||||||
)*
|
)*
|
||||||
|
_ => panic!("tried to build a stream with a device from another host"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -295,6 +297,7 @@ macro_rules! impl_platform_host {
|
||||||
e.play_stream(s.clone())
|
e.play_stream(s.clone())
|
||||||
}
|
}
|
||||||
)*
|
)*
|
||||||
|
_ => panic!("tried to play a stream with an ID associated with another host"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -305,6 +308,7 @@ macro_rules! impl_platform_host {
|
||||||
e.pause_stream(s.clone())
|
e.pause_stream(s.clone())
|
||||||
}
|
}
|
||||||
)*
|
)*
|
||||||
|
_ => panic!("tried to pause a stream with an ID associated with another host"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -315,6 +319,7 @@ macro_rules! impl_platform_host {
|
||||||
e.destroy_stream(s.clone())
|
e.destroy_stream(s.clone())
|
||||||
}
|
}
|
||||||
)*
|
)*
|
||||||
|
_ => panic!("tried to destroy a stream with an ID associated with another host"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue