Skip to content
  • Takashi Iwai's avatar
    ALSA: pcm: More unification of PCM transfer codes · 9f600630
    Takashi Iwai authored
    
    
    This patch proceeds more abstraction of PCM read/write loop codes.
    
    For both interleaved and non-interleaved transfers, the same copy or
    silence transfer code (which is defined as pcm_transfer_f) is used
    now.  This became possible since we switched to byte size to copy_*
    and fill_silence ops argument instead of frames.
    
    And, for both read and write, we can use the same copy function (which
    is defined as pcm_copy_f), just depending on whether interleaved or
    non-interleaved mode.
    
    The transfer function is determined at the beginning of the loop,
    depending on whether the driver gives the specific copy ops or it's
    the standard read/write.
    
    Another bonus by this change is that we now guarantee the silencing
    behavior when NULL buffer is passed to write helpers.  It'll simplify
    some codes later.
    
    Reviewed-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    9f600630