1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
use crate::internal_prelude::*;

#[derive(Clone)]
pub struct PannedSource(pub(crate) Handle);

impl PannedSource {
    pub fn new(context: &Context) -> Result<PannedSource> {
        wrap_constructor(|ud, cb| {
            let mut h = Default::default();
            check_error(unsafe {
                syz_createPannedSource(
                    &mut h as *mut syz_Handle,
                    context.to_syz_handle(),
                    ud,
                    Some(cb),
                )
            })?;
            Ok(PannedSource(Handle::new(h)))
        })
    }

    source_properties!();
    enum_p!(
        PannerStrategy,
        SYZ_P_PANNER_STRATEGY,
        get_panner_strategy,
        set_panner_strategy
    );
    double_p!(SYZ_P_ELEVATION, get_elevation, set_elevation);
    double_p!(SYZ_P_AZIMUTH, get_azimuth, set_azimuth);
    double_p!(SYZ_P_PANNING_SCALAR, get_panning_scalar, set_panning_scalar);

    object_common!();
    pausable_common!();
    source_common!();
}

handle_traits!(PannedSource);