⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 audio.h

📁 qemu虚拟机代码
💻 H
字号:
/* * QEMU Audio subsystem header * * Copyright (c) 2003-2005 Vassili Karpov (malc) * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */#ifndef QEMU_AUDIO_H#define QEMU_AUDIO_H#include "sys-queue.h"typedef void (*audio_callback_fn_t) (void *opaque, int avail);typedef enum {    AUD_FMT_U8,    AUD_FMT_S8,    AUD_FMT_U16,    AUD_FMT_S16} audfmt_e;typedef struct {    int freq;    int nchannels;    audfmt_e fmt;} audsettings_t;typedef struct AudioState AudioState;typedef struct SWVoiceOut SWVoiceOut;typedef struct SWVoiceIn SWVoiceIn;typedef struct QEMUSoundCard {    AudioState *audio;    char *name;    LIST_ENTRY (QEMUSoundCard) entries;} QEMUSoundCard;typedef struct QEMUAudioTimeStamp {    uint64_t old_ts;} QEMUAudioTimeStamp;void AUD_vlog (const char *cap, const char *fmt, va_list ap);void AUD_log (const char *cap, const char *fmt, ...)#ifdef __GNUC__    __attribute__ ((__format__ (__printf__, 2, 3)))#endif    ;AudioState *AUD_init (void);void AUD_help (void);void AUD_register_card (AudioState *s, const char *name, QEMUSoundCard *card);void AUD_remove_card (QEMUSoundCard *card);SWVoiceOut *AUD_open_out (    QEMUSoundCard *card,    SWVoiceOut *sw,    const char *name,    void *callback_opaque,    audio_callback_fn_t callback_fn,    audsettings_t *settings,    int sw_endian    );void AUD_close_out (QEMUSoundCard *card, 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_get_elapsed_usec_out (SWVoiceOut *sw, QEMUAudioTimeStamp *ts);SWVoiceIn *AUD_open_in (    QEMUSoundCard *card,    SWVoiceIn *sw,    const char *name,    void *callback_opaque,    audio_callback_fn_t callback_fn,    audsettings_t *settings,    int sw_endian    );void AUD_close_in (QEMUSoundCard *card, SWVoiceIn *sw);int  AUD_read (SWVoiceIn *sw, void *pcm_buf, int size);void AUD_set_active_in (SWVoiceIn *sw, int on);int  AUD_is_active_in (SWVoiceIn *sw);void     AUD_init_time_stamp_in (SWVoiceIn *sw, QEMUAudioTimeStamp *ts);uint64_t AUD_get_elapsed_usec_in (SWVoiceIn *sw, QEMUAudioTimeStamp *ts);static inline void *advance (void *p, int incr){    uint8_t *d = p;    return (d + incr);}uint32_t popcount (uint32_t u);inline uint32_t lsbindex (uint32_t u);#ifdef __GNUC__#define audio_MIN(a, b) ( __extension__ ({      \    __typeof (a) ta = a;                        \    __typeof (b) tb = b;                        \    ((ta)>(tb)?(tb):(ta));                      \}))#define audio_MAX(a, b) ( __extension__ ({      \    __typeof (a) ta = a;                        \    __typeof (b) tb = b;                        \    ((ta)<(tb)?(tb):(ta));                      \}))#else#define audio_MIN(a, b) ((a)>(b)?(b):(a))#define audio_MAX(a, b) ((a)<(b)?(b):(a))#endif#endif  /* audio.h */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -