This will be used in future commit. Signed-off-by: Martin Kletzander <mkletzan@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Message-ID: <be1bf295b3c6a3dee272b4b4e8115e37c2a772b5.1650874791.git.mkletzan@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * LM4549 Audio Codec Interface
 | 
						|
 *
 | 
						|
 * Copyright (c) 2011
 | 
						|
 * Written by Mathieu Sonet - www.elasticsheep.com
 | 
						|
 *
 | 
						|
 * This code is licensed under the GPL.
 | 
						|
 *
 | 
						|
 * *****************************************************************
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef HW_LM4549_H
 | 
						|
#define HW_LM4549_H
 | 
						|
 | 
						|
#include "audio/audio.h"
 | 
						|
#include "exec/hwaddr.h"
 | 
						|
 | 
						|
typedef void (*lm4549_callback)(void *opaque);
 | 
						|
 | 
						|
#define LM4549_BUFFER_SIZE (512 * 2) /* 512 16-bit stereo samples */
 | 
						|
 | 
						|
 | 
						|
typedef struct {
 | 
						|
    QEMUSoundCard card;
 | 
						|
    SWVoiceOut *voice;
 | 
						|
    uint32_t voice_is_active;
 | 
						|
 | 
						|
    uint16_t regfile[128];
 | 
						|
    lm4549_callback data_req_cb;
 | 
						|
    void *opaque;
 | 
						|
 | 
						|
    uint16_t buffer[LM4549_BUFFER_SIZE];
 | 
						|
    uint32_t buffer_level;
 | 
						|
} lm4549_state;
 | 
						|
 | 
						|
extern const VMStateDescription vmstate_lm4549_state;
 | 
						|
 | 
						|
 | 
						|
void lm4549_init(lm4549_state *s, lm4549_callback data_req, void *opaque,
 | 
						|
                 Error **errp);
 | 
						|
uint32_t lm4549_read(lm4549_state *s, hwaddr offset);
 | 
						|
void lm4549_write(lm4549_state *s, hwaddr offset, uint32_t value);
 | 
						|
uint32_t lm4549_write_samples(lm4549_state *s, uint32_t left, uint32_t right);
 | 
						|
 | 
						|
#endif /* HW_LM4549_H */
 |