sound.h

来自「一个GNU的开源软件,基于linux下X-Window的flash播放器,工作稳」· C头文件 代码 · 共 113 行

H
113
字号
/////////////////////////////////////////////////////////////// Flash Plugin and Player// Copyright (C) 1998 Olivier Debon// // 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.// ///////////////////////////////////////////////////////////////#ifndef _SOUND_H_#define _SOUND_H_#define GET_SOUND_RATE_CODE(f) (((f)&0x0c)>>2)#define GET_SOUND_FORMAT_CODE(f) (((f)&0xf0)>>4)struct SoundList {	long	 rate;	long	 stereo;	long	 sampleSize;	long	 nbSamples;	long	 remaining;	char	*current;	char	*original;	char	*originalMp3;	long	 remainingMp3;	char	*currentMp3;	struct mad_stream mp3Stream;	struct mad_frame mp3Frame;	struct mad_synth mp3Synth;	long	 skipSize;	SoundList *next;	SoundList *prev;};class Sound : public Character {	long	 	 format;	long		 soundRate;	// In hz	long		 stereo;	// True if stereo sound	long		 sampleSize;	// 1 or 2 bytes	char		*samples;		// Array of samples	long		 nbSamples;	long		 soundSize;	int		 playbackStarted;	SoundList	*sound;		// The sound when playingpublic:	Sound(long id);	~Sound();	void    	 setSoundFlags(long f);	char		*setNbSamples(long n);	char		*setBuffer(long n);	char		*resetBuffer(long n);	void		 setSoundSize(long n);	void		 setPlaybackStarted();	void		 setSound(SoundList *sl);	long		 getFormat();	long		 getRate();	long		 getChannel();	long		 getNbSamples();	long		 getSampleSize();	char		*getSamples();	long		 getSoundSize();	long		 getPlaybackStarted();	SoundList	 *getSound();};class SoundMixer {	SoundList	*list;// Class variablesstatic  long		 dsp;		// Descriptor for /dev/dspstatic  char *		 buffer;	// DMA bufferstatic	long		 blockSize;static	long		 nbInst;	// Number of instances	// Sound Device Capabilitiesstatic	long		 soundRate;	// In hzstatic	long		 stereo;	// True if stereo soundstatic	long		 sampleSize;	// 1 or 2 bytespublic:	SoundMixer(char*);	~SoundMixer();	void		 startSound(Sound *sound);	// Register a sound to be played	void		 stopSounds();		// Stop every current sounds in the instance	long		 playSounds();		// Actually play sounds of all instances	long		 fillSoundBuffer(SoundList *, char *buffer, long bufferSize); // Fill sound bufferprivate:	int SoundMixer::Mp3Scale(mad_fixed_t sample);	void SoundMixer::Mp3Decompress(SoundList *sl);	void SoundMixer::uninitMp3Sounds(SoundList *sl);};#endif /* _SOUND_H_ */

⌨️ 快捷键说明

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