static int wav_init (struct sound *s) { struct wav_header *header = (struct wav_header *) s->header; if (s->header_size < sizeof *header || memcmp (s->header, "RIFF", 4) != 0) return 0; /* WAV files are in little-endian order. Convert the header if on a big-endian machine. */ header->magic = le2hl (header->magic); header->length = le2hl (header->length); header->chunk_type = le2hl (header->chunk_type); header->chunk_format = le2hl (header->chunk_format); header->chunk_length = le2hl (header->chunk_length); header->format = le2hs (header->format); header->channels = le2hs (header->channels); header->sample_rate = le2hl (header->sample_rate); header->bytes_per_second = le2hl (header->bytes_per_second); header->sample_size = le2hs (header->sample_size); header->precision = le2hs (header->precision); header->chunk_data = le2hl (header->chunk_data); header->data_length = le2hl (header->data_length); /* Set up the interface functions for WAV. */ s->type = RIFF; s->play = wav_play; return 1; }
int samba_read_word( uint32_t addr, uint32_t *value ) { char cmd[64]; int err; snprintf( cmd, 64, "w%08X,4#", (unsigned int) addr ); err = io_send_cmd( cmd, value, 4 ); *value = le2hl( *value ); return err; }