pub trait AyAudioBusDevice: BusDevice {
    fn render_ay_audio<L: AmpLevels<B::SampleDelta>, B: Blep>(
        &mut self,
        blep: &mut B,
        end_ts: <Self as BusDevice>::Timestamp,
        frame_tstates: FTs,
        chans: [usize; 3]
    ); }
Expand description

This trait is being used by AyAudioFrame implementations to render AY-3-8910 audio with bus devices.

Allows for rendering audio frame using AyAudioFrame directly on the ControlUnit without the need to “locate” the Ay3_891xBusDevice in the daisy chain.

This trait is implemented autmatically for all BusDevices which implement PassByAyAudioBusDevice.

Required Methods§

Renders square-wave pulses via Blep interface.

Provide AmpLevels that can handle level values from 0 to 15 (4-bits). channels - target Blep audio channels for [A, B, C] AY-3-8910 channels.

Implementations on Foreign Types§

Note

If a device is being attached to an optional device the call will be forwarded to both: an optional device and to the next bus device.

Note

Because we need to guess the concrete type of the dynamic BusDevice we can currently handle only the most common cases: Ay3_891xMelodik and Ay3_891xFullerBox. If you use a customized Ay3_891xBusDevice for a dynamic BusDevice you need to render audio directly on the device downcasted to your custom type.

Note

This implementation forwards a call to any recognizable Ay3_891xBusDevice device in a dynamic daisy-chain as well as to an upstream device.

Note

This implementation forwards a call to any recognizable Ay3_891xBusDevice device in a dynamic daisy-chain as well as to an upstream device.

Implementors§