|
|
1.1 ! root 1: /* ! 2: * LM4549 Audio Codec Interface ! 3: * ! 4: * Copyright (c) 2011 ! 5: * Written by Mathieu Sonet - www.elasticsheep.com ! 6: * ! 7: * This code is licenced under the GPL. ! 8: * ! 9: * ***************************************************************** ! 10: */ ! 11: ! 12: #ifndef HW_LM4549_H ! 13: #define HW_LM4549_H ! 14: ! 15: #include "audio/audio.h" ! 16: ! 17: typedef void (*lm4549_callback)(void *opaque); ! 18: ! 19: #define LM4549_BUFFER_SIZE (512 * 2) /* 512 16-bit stereo samples */ ! 20: ! 21: ! 22: typedef struct { ! 23: QEMUSoundCard card; ! 24: SWVoiceOut *voice; ! 25: uint32_t voice_is_active; ! 26: ! 27: uint16_t regfile[128]; ! 28: lm4549_callback data_req_cb; ! 29: void *opaque; ! 30: ! 31: uint16_t buffer[LM4549_BUFFER_SIZE]; ! 32: uint32_t buffer_level; ! 33: } lm4549_state; ! 34: ! 35: extern const VMStateDescription vmstate_lm4549_state; ! 36: ! 37: ! 38: void lm4549_init(lm4549_state *s, lm4549_callback data_req, void *opaque); ! 39: uint32_t lm4549_read(lm4549_state *s, target_phys_addr_t offset); ! 40: void lm4549_write(lm4549_state *s, target_phys_addr_t offset, uint32_t value); ! 41: uint32_t lm4549_write_samples(lm4549_state *s, uint32_t left, uint32_t right); ! 42: ! 43: #endif /* #ifndef HW_LM4549_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.