/[qemu]/qemu/audio/audio.h
ViewVC logotype

Diff of /qemu/audio/audio.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by bellard, Sun Oct 30 18:58:22 2005 UTC revision 1.4 by bellard, Sat Nov 5 18:55:27 2005 UTC
# Line 24  Line 24 
24  #ifndef QEMU_AUDIO_H  #ifndef QEMU_AUDIO_H
25  #define QEMU_AUDIO_H  #define QEMU_AUDIO_H
26    
27    #include "sys-queue.h"
28    
29  typedef void (*audio_callback_fn_t) (void *opaque, int avail);  typedef void (*audio_callback_fn_t) (void *opaque, int avail);
30    
31  typedef enum {  typedef enum {
32    AUD_FMT_U8,      AUD_FMT_U8,
33    AUD_FMT_S8,      AUD_FMT_S8,
34    AUD_FMT_U16,      AUD_FMT_U16,
35    AUD_FMT_S16      AUD_FMT_S16
36  } audfmt_e;  } audfmt_e;
37    
38    typedef struct {
39        int freq;
40        int nchannels;
41        audfmt_e fmt;
42    } audsettings_t;
43    
44    typedef struct AudioState AudioState;
45  typedef struct SWVoiceOut SWVoiceOut;  typedef struct SWVoiceOut SWVoiceOut;
46  typedef struct SWVoiceIn SWVoiceIn;  typedef struct SWVoiceIn SWVoiceIn;
47    
48    typedef struct QEMUSoundCard {
49        AudioState *audio;
50        char *name;
51        LIST_ENTRY (QEMUSoundCard) entries;
52    } QEMUSoundCard;
53    
54  typedef struct QEMUAudioTimeStamp {  typedef struct QEMUAudioTimeStamp {
55      uint64_t old_ts;      uint64_t old_ts;
56  } QEMUAudioTimeStamp;  } QEMUAudioTimeStamp;
# Line 47  void AUD_log (const char *cap, const cha Line 62  void AUD_log (const char *cap, const cha
62  #endif  #endif
63      ;      ;
64    
65  void AUD_init (void);  AudioState *AUD_init (void);
66  void AUD_help (void);  void AUD_help (void);
67    void AUD_register_card (AudioState *s, const char *name, QEMUSoundCard *card);
68    void AUD_remove_card (QEMUSoundCard *card);
69    
70  SWVoiceOut  *AUD_open_out (  SWVoiceOut *AUD_open_out (
71        QEMUSoundCard *card,
72      SWVoiceOut *sw,      SWVoiceOut *sw,
73      const char *name,      const char *name,
74      void *callback_opaque,      void *callback_opaque,
75      audio_callback_fn_t callback_fn,      audio_callback_fn_t callback_fn,
76      int freq,      audsettings_t *settings
     int nchannels,  
     audfmt_e fmt  
77      );      );
 void         AUD_close_out (SWVoiceOut *sw);  
 int          AUD_write (SWVoiceOut *sw, void *pcm_buf, int size);  
 int          AUD_get_buffer_size_out (SWVoiceOut *sw);  
 void         AUD_set_active_out (SWVoiceOut *sw, int on);  
 int          AUD_is_active_out (SWVoiceOut *sw);  
 void         AUD_init_time_stamp_out (SWVoiceOut *sw,  
                                       QEMUAudioTimeStamp *ts);  
 uint64_t     AUD_time_stamp_get_elapsed_usec_out (SWVoiceOut *sw,  
                                                   QEMUAudioTimeStamp *ts);  
78    
79  SWVoiceIn   *AUD_open_in (  void AUD_close_out (QEMUSoundCard *card, SWVoiceOut *sw);
80    int  AUD_write (SWVoiceOut *sw, void *pcm_buf, int size);
81    int  AUD_get_buffer_size_out (SWVoiceOut *sw);
82    void AUD_set_active_out (SWVoiceOut *sw, int on);
83    int  AUD_is_active_out (SWVoiceOut *sw);
84    
85    void     AUD_init_time_stamp_out (SWVoiceOut *sw, QEMUAudioTimeStamp *ts);
86    uint64_t AUD_get_elapsed_usec_out (SWVoiceOut *sw, QEMUAudioTimeStamp *ts);
87    
88    SWVoiceIn *AUD_open_in (
89        QEMUSoundCard *card,
90      SWVoiceIn *sw,      SWVoiceIn *sw,
91      const char *name,      const char *name,
92      void *callback_opaque,      void *callback_opaque,
93      audio_callback_fn_t callback_fn,      audio_callback_fn_t callback_fn,
94      int freq,      audsettings_t *settings
     int nchannels,  
     audfmt_e fmt  
95      );      );
96  void         AUD_close_in (SWVoiceIn *sw);  
97  int          AUD_read (SWVoiceIn *sw, void *pcm_buf, int size);  void AUD_close_in (QEMUSoundCard *card, SWVoiceIn *sw);
98  void         AUD_adjust_in (SWVoiceIn *sw, int leftover);  int  AUD_read (SWVoiceIn *sw, void *pcm_buf, int size);
99  void         AUD_set_active_in (SWVoiceIn *sw, int on);  void AUD_set_active_in (SWVoiceIn *sw, int on);
100  int          AUD_is_active_in (SWVoiceIn *sw);  int  AUD_is_active_in (SWVoiceIn *sw);
101  void         AUD_init_time_stamp_in (SWVoiceIn *sw,  
102                                       QEMUAudioTimeStamp *ts);  void     AUD_init_time_stamp_in (SWVoiceIn *sw, QEMUAudioTimeStamp *ts);
103  uint64_t     AUD_time_stamp_get_elapsed_usec_in (SWVoiceIn *sw,  uint64_t AUD_get_elapsed_usec_in (SWVoiceIn *sw, QEMUAudioTimeStamp *ts);
                                                  QEMUAudioTimeStamp *ts);  
104    
105  static inline void *advance (void *p, int incr)  static inline void *advance (void *p, int incr)
106  {  {

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26