/******************************************************************* Generate the end-byte samples ********************************************************************/ INLINE int vg5k_cas_eob(INT16 *buffer, int sample_pos) { int i, samples = 0; for (i = 0; i < 4; i++) samples += vg5k_cas_cycle( buffer, sample_pos + samples, 5); samples += vg5k_cas_cycle( buffer, sample_pos + samples, 10); return samples; }
/******************************************************************* Generate the end-byte samples ********************************************************************/ static inline int vg5k_cas_eob(int16_t *buffer, int sample_pos) { int i, samples = 0; for (i = 0; i < 4; i++) samples += vg5k_cas_cycle( buffer, sample_pos + samples, 5); samples += vg5k_cas_cycle( buffer, sample_pos + samples, 10); return samples; }
/******************************************************************* Generate n sample of synchro ********************************************************************/ INLINE int vg5k_k7_synchro(INT16 *buffer, int sample_pos, int len) { int i, samples = 0; for ( i = 0; i < len ; i++ ) samples += vg5k_cas_cycle( buffer, sample_pos + samples, 5); samples += vg5k_cas_eob( buffer, sample_pos + samples); return samples; }
/******************************************************************* Generate n sample of synchro ********************************************************************/ static inline int vg5k_k7_synchro(int16_t *buffer, int sample_pos, int len) { int i, samples = 0; for ( i = 0; i < len ; i++ ) samples += vg5k_cas_cycle( buffer, sample_pos + samples, 5); samples += vg5k_cas_eob( buffer, sample_pos + samples); return samples; }
INLINE int vg5k_cas_byte(INT16 *buffer, int sample_pos, UINT8 data) { /* Writing an entire byte */ int i, samples; samples = 0; for ( i = 0; i < 8; i++ ) { if ( data & 0x01 ) { samples += vg5k_cas_cycle( buffer, sample_pos + samples, 5 ); samples += vg5k_cas_cycle( buffer, sample_pos + samples, 5 ); } else { samples += vg5k_cas_cycle( buffer, sample_pos + samples, 10 ); } data >>= 1; } return samples; }
static inline int vg5k_cas_byte(int16_t *buffer, int sample_pos, uint8_t data) { /* Writing an entire byte */ int i, samples; samples = 0; for ( i = 0; i < 8; i++ ) { if ( data & 0x01 ) { samples += vg5k_cas_cycle( buffer, sample_pos + samples, 5 ); samples += vg5k_cas_cycle( buffer, sample_pos + samples, 5 ); } else { samples += vg5k_cas_cycle( buffer, sample_pos + samples, 10 ); } data >>= 1; } return samples; }