Macro audio::interleaved[][src]

macro_rules! interleaved {
    ([$sample:expr; $frames:expr]; $channels:expr) => { ... };
    ([$($value:expr),* $(,)?]; $channels:expr) => { ... };
    ($($channel:expr),* $(,)?) => { ... };
}

Construct an interleaved audio buffer.

This is useful for testing.

Examples

let buf = audio::interleaved![[0; 64]; 2];

let mut expected = vec![0; 64];

assert!(buf.get(0).unwrap().iter().eq(&expected[..]));
assert!(buf.get(1).unwrap().iter().eq(&expected[..]));

Calling the macro with a template channel.

let buf = audio::interleaved![[0, 1, 2, 3]; 2];

assert_eq!(buf.as_slice(), &[0, 0, 1, 1, 2, 2, 3, 3])

Using an exact topology of channels.

let buf = audio::interleaved![[0, 1, 2, 3], [4, 5, 6, 7]];

assert_eq!(buf.as_slice(), &[0, 4, 1, 5, 2, 6, 3, 7])