Skip to content

Commit ce48cbb

Browse files
committed
Add alive listener to sine example
1 parent fcae2ed commit ce48cbb

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

examples/sine_advanced.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use coreaudio::audio_unit::audio_format::LinearPcmFlags;
66
use coreaudio::audio_unit::render_callback::{self, data};
77
use coreaudio::audio_unit::{
88
audio_unit_from_device_id, get_default_device_id, set_device_sample_format,
9-
set_device_sample_rate, RateListener,
9+
set_device_sample_rate, AliveListener, RateListener,
1010
};
1111
use coreaudio::audio_unit::{Element, SampleFormat, Scope, StreamFormat};
1212
use coreaudio::sys::kAudioUnitProperty_StreamFormat;
@@ -107,9 +107,11 @@ fn main() -> Result<(), coreaudio::Error> {
107107
// For this example, our sine wave expects `f32` data.
108108
assert!(SampleFormat::F32 == stream_format.sample_format);
109109

110-
// Register a rate listener
111-
let mut listener = RateListener::new(audio_unit_id, None);
112-
listener.register()?;
110+
// Register rate and alive listeners
111+
let mut rate_listener = RateListener::new(audio_unit_id, None);
112+
rate_listener.register()?;
113+
let mut alive_listener = AliveListener::new(audio_unit_id);
114+
alive_listener.register()?;
113115

114116
if INTERLEAVED {
115117
println!("Register interleaved callback");
@@ -153,7 +155,8 @@ fn main() -> Result<(), coreaudio::Error> {
153155
for _ in 0..100 {
154156
std::thread::sleep(std::time::Duration::from_millis(100));
155157
// print all sample change events
156-
println!("rate events: {:?}", listener.copy_values());
158+
println!("rate events: {:?}", rate_listener.copy_values());
159+
println!("alive state: {}", alive_listener.is_alive());
157160
}
158161
Ok(())
159162
}

0 commit comments

Comments
 (0)