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

📄 audio.h

📁 一个嵌入式Linux上的mp3播放器
💻 H
字号:
/* * madplay - MPEG audio decoder and player * Copyright (C) 2000-2004 Robert Leslie * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA * * $Id: audio.h,v 1.38 2004/01/23 09:41:31 rob Exp $ */# ifndef AUDIO_H# define AUDIO_H# include <mad.h># define MAX_RESAMPLEFACTOR	6# define MAX_NSAMPLES		(1152 * MAX_RESAMPLEFACTOR)enum audio_command {  AUDIO_COMMAND_INIT,  AUDIO_COMMAND_CONFIG,  AUDIO_COMMAND_PLAY,  AUDIO_COMMAND_STOP,  AUDIO_COMMAND_FINISH};enum audio_mode {  AUDIO_MODE_ROUND,  AUDIO_MODE_DITHER};struct audio_stats {  unsigned long clipped_samples;  mad_fixed_t peak_clipping;  mad_fixed_t peak_sample;};union audio_control {  enum audio_command command;  struct audio_init {    enum audio_command command;    char const *path;  } init;  struct audio_config {    enum audio_command command;    unsigned int channels;    unsigned int speed;    unsigned int precision;  } config;  struct audio_play {    enum audio_command command;    unsigned int nsamples;    mad_fixed_t const *samples[2];    enum audio_mode mode;    struct audio_stats *stats;  } play;  struct audio_stop {    enum audio_command command;    int flush;  } stop;  struct audio_finish {    enum audio_command command;  } finish;};struct audio_dither {  mad_fixed_t error[3];  mad_fixed_t random;};extern char const *audio_error;typedef int audio_ctlfunc_t(union audio_control *);audio_ctlfunc_t *audio_output(char const **);audio_ctlfunc_t audio_alsa;audio_ctlfunc_t audio_carbon;audio_ctlfunc_t audio_empeg;audio_ctlfunc_t audio_esd;audio_ctlfunc_t audio_jaguar;audio_ctlfunc_t audio_nas;audio_ctlfunc_t audio_oss;audio_ctlfunc_t audio_qnx;audio_ctlfunc_t audio_sun;audio_ctlfunc_t audio_win32;audio_ctlfunc_t audio_aiff;audio_ctlfunc_t audio_cdda;audio_ctlfunc_t audio_hex;audio_ctlfunc_t audio_null;audio_ctlfunc_t audio_raw;audio_ctlfunc_t audio_snd;audio_ctlfunc_t audio_wave;void audio_control_init(union audio_control *, enum audio_command);signed long audio_linear_round(unsigned int, mad_fixed_t,			       struct audio_stats *);signed long audio_linear_dither(unsigned int, mad_fixed_t,				struct audio_dither *, struct audio_stats *);unsigned char audio_mulaw_round(mad_fixed_t, struct audio_stats *);unsigned char audio_mulaw_dither(mad_fixed_t, struct audio_dither *,				 struct audio_stats *);typedef unsigned int audio_pcmfunc_t(unsigned char *, unsigned int,				     mad_fixed_t const *, mad_fixed_t const *,				     enum audio_mode, struct audio_stats *);audio_pcmfunc_t audio_pcm_u8;audio_pcmfunc_t audio_pcm_s8;audio_pcmfunc_t audio_pcm_s16le;audio_pcmfunc_t audio_pcm_s16be;audio_pcmfunc_t audio_pcm_s24le;audio_pcmfunc_t audio_pcm_s24be;audio_pcmfunc_t audio_pcm_s32le;audio_pcmfunc_t audio_pcm_s32be;audio_pcmfunc_t audio_pcm_mulaw;# endif

⌨️ 快捷键说明

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