public int getAudioSamplesI16(uint index_chn, ManagedPointer<short> bufs)
{
int rs = 0;
bufs.GetRawPointer((bufs_ptr_intptr) =>
{
short* bufs_ptr = (short *)bufs_ptr_intptr.ToPointer();
fixed (float* dst_buf_chn_ptr = dst_buf[index_chn])
{
for (int a0 = 0; a0 < 0x800; a0++)
{
int data_now = (int)dst_buf_chn_ptr[a0];
if (data_now > 0x7FFF) bufs_ptr[a0] = 0x7FFF;
else if (data_now < (-0x8000)) bufs_ptr[a0] = -0x8000;
else bufs_ptr[a0] = (short)data_now;
}
}
});
return rs;
}