Annotation of qemu/audio/audio_int.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * QEMU Audio subsystem header
        !             3:  * 
        !             4:  * Copyright (c) 2003-2004 Vassili Karpov (malc)
        !             5:  * 
        !             6:  * Permission is hereby granted, free of charge, to any person obtaining a copy
        !             7:  * of this software and associated documentation files (the "Software"), to deal
        !             8:  * in the Software without restriction, including without limitation the rights
        !             9:  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        !            10:  * copies of the Software, and to permit persons to whom the Software is
        !            11:  * furnished to do so, subject to the following conditions:
        !            12:  *
        !            13:  * The above copyright notice and this permission notice shall be included in
        !            14:  * all copies or substantial portions of the Software.
        !            15:  *
        !            16:  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        !            17:  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        !            18:  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
        !            19:  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        !            20:  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        !            21:  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
        !            22:  * THE SOFTWARE.
        !            23:  */
        !            24: #ifndef QEMU_AUDIO_INT_H
        !            25: #define QEMU_AUDIO_INT_H
        !            26: 
        !            27: #include "vl.h"
        !            28: 
        !            29: struct pcm_ops;
        !            30: 
        !            31: typedef struct HWVoice {
        !            32:     int active;
        !            33:     int enabled;
        !            34:     int pending_disable;
        !            35:     int valid;
        !            36:     int freq;
        !            37: 
        !            38:     f_sample *clip;
        !            39:     audfmt_e fmt;
        !            40:     int nchannels;
        !            41: 
        !            42:     int align;
        !            43:     int shift;
        !            44: 
        !            45:     int rpos;
        !            46:     int bufsize;
        !            47: 
        !            48:     int bytes_per_second;
        !            49:     st_sample_t *mix_buf;
        !            50: 
        !            51:     int samples;
        !            52:     int64_t old_ticks;
        !            53:     int nb_voices;
        !            54:     struct SWVoice **pvoice;
        !            55:     struct pcm_ops *pcm_ops;
        !            56: } HWVoice;
        !            57: 
        !            58: extern struct pcm_ops no_pcm_ops;
        !            59: extern struct audio_output_driver no_output_driver;
        !            60: 
        !            61: extern struct pcm_ops oss_pcm_ops;
        !            62: extern struct audio_output_driver oss_output_driver;
        !            63: 
        !            64: extern struct pcm_ops sdl_pcm_ops;
        !            65: extern struct audio_output_driver sdl_output_driver;
        !            66: 
        !            67: extern struct pcm_ops wav_pcm_ops;
        !            68: extern struct audio_output_driver wav_output_driver;
        !            69: 
        !            70: extern struct pcm_ops fmod_pcm_ops;
        !            71: extern struct audio_output_driver fmod_output_driver;
        !            72: 
        !            73: struct audio_output_driver {
        !            74:     const char *name;
        !            75:     void *(*init) (void);
        !            76:     void (*fini) (void *);
        !            77:     struct pcm_ops *pcm_ops;
        !            78:     int can_be_default;
        !            79:     int max_voices;
        !            80:     int voice_size;
        !            81: };
        !            82: 
        !            83: typedef struct AudioState {
        !            84:     int fixed_format;
        !            85:     int fixed_freq;
        !            86:     int fixed_channels;
        !            87:     int fixed_fmt;
        !            88:     int nb_hw_voices;
        !            89:     int64_t ticks_threshold;
        !            90:     int freq_threshold;
        !            91:     void *opaque;
        !            92:     struct audio_output_driver *drv;
        !            93: } AudioState;
        !            94: extern AudioState audio_state;
        !            95: 
        !            96: struct SWVoice {
        !            97:     int freq;
        !            98:     audfmt_e fmt;
        !            99:     int nchannels;
        !           100: 
        !           101:     int shift;
        !           102:     int align;
        !           103: 
        !           104:     t_sample *conv;
        !           105: 
        !           106:     int left;
        !           107:     int pos;
        !           108:     int bytes_per_second;
        !           109:     int64_t ratio;
        !           110:     st_sample_t *buf;
        !           111:     void *rate;
        !           112: 
        !           113:     int wpos;
        !           114:     int live;
        !           115:     int active;
        !           116:     int64_t old_ticks;
        !           117:     HWVoice *hw;
        !           118:     char *name;
        !           119: };
        !           120: 
        !           121: struct pcm_ops {
        !           122:     int  (*init)  (HWVoice *hw, int freq, int nchannels, audfmt_e fmt);
        !           123:     void (*fini)  (HWVoice *hw);
        !           124:     void (*run)   (HWVoice *hw);
        !           125:     int  (*write) (SWVoice *sw, void *buf, int size);
        !           126:     int  (*ctl)   (HWVoice *hw, int cmd, ...);
        !           127: };
        !           128: 
        !           129: void      pcm_sw_free_resources (SWVoice *sw);
        !           130: int       pcm_sw_alloc_resources (SWVoice *sw);
        !           131: void      pcm_sw_fini (SWVoice *sw);
        !           132: int       pcm_sw_init (SWVoice *sw, HWVoice *hw, int freq,
        !           133:                        int nchannels, audfmt_e fmt);
        !           134: 
        !           135: void      pcm_hw_clear (HWVoice *hw, void *buf, int len);
        !           136: HWVoice * pcm_hw_find_any (HWVoice *hw);
        !           137: HWVoice * pcm_hw_find_any_active (HWVoice *hw);
        !           138: HWVoice * pcm_hw_find_any_passive (HWVoice *hw);
        !           139: HWVoice * pcm_hw_find_specific (HWVoice *hw, int freq,
        !           140:                                 int nchannels, audfmt_e fmt);
        !           141: HWVoice * pcm_hw_add (int freq, int nchannels, audfmt_e fmt);
        !           142: int       pcm_hw_add_sw (HWVoice *hw, SWVoice *sw);
        !           143: int       pcm_hw_del_sw (HWVoice *hw, SWVoice *sw);
        !           144: SWVoice * pcm_create_voice_pair (int freq, int nchannels, audfmt_e fmt);
        !           145: 
        !           146: void      pcm_hw_free_resources (HWVoice *hw);
        !           147: int       pcm_hw_alloc_resources (HWVoice *hw);
        !           148: void      pcm_hw_fini (HWVoice *hw);
        !           149: void      pcm_hw_gc (HWVoice *hw);
        !           150: int       pcm_hw_get_live (HWVoice *hw);
        !           151: int       pcm_hw_get_live2 (HWVoice *hw, int *nb_active);
        !           152: void      pcm_hw_dec_live (HWVoice *hw, int decr);
        !           153: int       pcm_hw_write (SWVoice *sw, void *buf, int len);
        !           154: 
        !           155: int         audio_get_conf_int (const char *key, int defval);
        !           156: const char *audio_get_conf_str (const char *key, const char *defval);
        !           157: 
        !           158: struct audio_output_driver;
        !           159: 
        !           160: #define VOICE_ENABLE 1
        !           161: #define VOICE_DISABLE 2
        !           162: 
        !           163: #endif /* audio_int.h */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.