root / hw / lm4549.h @ 37952117
History | View | Annotate | Download (1 kB)
1 | d028d02d | Mathieu Sonet | /*
|
---|---|---|---|
2 | d028d02d | Mathieu Sonet | * LM4549 Audio Codec Interface
|
3 | d028d02d | Mathieu Sonet | *
|
4 | d028d02d | Mathieu Sonet | * Copyright (c) 2011
|
5 | d028d02d | Mathieu Sonet | * Written by Mathieu Sonet - www.elasticsheep.com
|
6 | d028d02d | Mathieu Sonet | *
|
7 | 4d8db4e4 | Stefan Weil | * This code is licensed under the GPL.
|
8 | d028d02d | Mathieu Sonet | *
|
9 | d028d02d | Mathieu Sonet | * *****************************************************************
|
10 | d028d02d | Mathieu Sonet | */
|
11 | d028d02d | Mathieu Sonet | |
12 | d028d02d | Mathieu Sonet | #ifndef HW_LM4549_H
|
13 | d028d02d | Mathieu Sonet | #define HW_LM4549_H
|
14 | d028d02d | Mathieu Sonet | |
15 | d028d02d | Mathieu Sonet | #include "audio/audio.h" |
16 | d028d02d | Mathieu Sonet | |
17 | d028d02d | Mathieu Sonet | typedef void (*lm4549_callback)(void *opaque); |
18 | d028d02d | Mathieu Sonet | |
19 | d028d02d | Mathieu Sonet | #define LM4549_BUFFER_SIZE (512 * 2) /* 512 16-bit stereo samples */ |
20 | d028d02d | Mathieu Sonet | |
21 | d028d02d | Mathieu Sonet | |
22 | d028d02d | Mathieu Sonet | typedef struct { |
23 | d028d02d | Mathieu Sonet | QEMUSoundCard card; |
24 | d028d02d | Mathieu Sonet | SWVoiceOut *voice; |
25 | d028d02d | Mathieu Sonet | uint32_t voice_is_active; |
26 | d028d02d | Mathieu Sonet | |
27 | d028d02d | Mathieu Sonet | uint16_t regfile[128];
|
28 | d028d02d | Mathieu Sonet | lm4549_callback data_req_cb; |
29 | d028d02d | Mathieu Sonet | void *opaque;
|
30 | d028d02d | Mathieu Sonet | |
31 | d028d02d | Mathieu Sonet | uint16_t buffer[LM4549_BUFFER_SIZE]; |
32 | d028d02d | Mathieu Sonet | uint32_t buffer_level; |
33 | d028d02d | Mathieu Sonet | } lm4549_state; |
34 | d028d02d | Mathieu Sonet | |
35 | d028d02d | Mathieu Sonet | extern const VMStateDescription vmstate_lm4549_state; |
36 | d028d02d | Mathieu Sonet | |
37 | d028d02d | Mathieu Sonet | |
38 | d028d02d | Mathieu Sonet | void lm4549_init(lm4549_state *s, lm4549_callback data_req, void *opaque); |
39 | d028d02d | Mathieu Sonet | uint32_t lm4549_read(lm4549_state *s, target_phys_addr_t offset); |
40 | d028d02d | Mathieu Sonet | void lm4549_write(lm4549_state *s, target_phys_addr_t offset, uint32_t value);
|
41 | d028d02d | Mathieu Sonet | uint32_t lm4549_write_samples(lm4549_state *s, uint32_t left, uint32_t right); |
42 | d028d02d | Mathieu Sonet | |
43 | d028d02d | Mathieu Sonet | #endif /* #ifndef HW_LM4549_H */ |