11#include "libsnd2_internal.h"
13static s16 vabid_old_2 = -1;
15s16 SsVabTransBodyPartly(u8 *addr,
unsigned int bufsize, s16 vab_id)
17 unsigned int bufsize_tmp;
20 if ( (u16)vab_id >= 0x11u || _svm_vab_used[vab_id] != 2 )
22 _spu_setInTransfer(0);
25 if ( !_svm_vab_not_send_size )
28 _svm_vab_not_send_size = _svm_vab_total[vab_id];
29 SpuSetTransferMode(SPU_TRANSFER_BY_DMA);
30 if ( !SpuSetTransferStartAddr(_svm_vab_start[vab_id]) )
32 _svm_vab_not_send_size = 0;
34 _spu_setInTransfer(0);
38 new_vabid = vabid_old_2;
39 if ( vabid_old_2 != vab_id )
41 _spu_setInTransfer(0);
44 bufsize_tmp = bufsize;
45 if ( (
unsigned int)_svm_vab_not_send_size < bufsize )
46 bufsize_tmp = _svm_vab_not_send_size;
47 _spu_setInTransfer(1);
48 SpuWritePartly(addr, bufsize_tmp);
49 _svm_vab_not_send_size -= bufsize_tmp;
50 if ( _svm_vab_not_send_size != 0 )
55 _svm_vab_not_send_size = 0;
56 _svm_vab_used[new_vabid] = 1;