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

📄 obuffer.hh

📁 ac3的解码程序
💻 HH
字号:
/*  File: obuffer.h    Description:  Output buffer for Audio*/#ifndef __obuffer_h__#define __obuffer_h__static const uint32 OBUFFERSIZE = 2 * 1152;	// max. 2 * 1152 samples per framestatic const uint32 MAXCHANNELS = 2;		// max. number of channels// This file has been hacked with ifdefs to allow static linking of the // IRIX AL (Audio Library) functions (otherwise undefined references)!// abstract base class for audio output classes:class Obuffer { public:  virtual ~Obuffer(void) {}		// dummy  virtual void append (uint32 channel, int16 value) = 0;	       // this function takes a 16 Bit PCM sample  virtual void write_buffer (int fd) = 0;	       // this function should write the samples to the filedescriptor	       // or directly to the audio hardware};// audio output class for raw pcm output:class ShortObuffer : public Obuffer { private:  int16 buffer[OBUFFERSIZE];  int16 *bufferp[MAXCHANNELS];  uint32 channels; public:  ShortObuffer(uint32 number_of_channels);  ~ShortObuffer(void){}  void	append(uint32 channel, int16 value);  void	write_buffer(int fd);};#ifdef IRIX                  // a class for direct sound output on SGI machines:class IrixObuffer : public Obuffer { private:  int16 buffer[OBUFFERSIZE];  int16 *bufferp[MAXCHANNELS];  uint32 channels;  ALport port; public:  IrixObuffer(uint32 number_of_channels, Header* header);  ~IrixObuffer();  void append(uint32 channel, int16 value);  void write_buffer(int dummy);};#endif	// IRIX#if (defined(SOLARIS))      // a class for direct sound output on SPARC 5/10/20 machines (cs432/dbri)class SparcObuffer : public Obuffer { private:  int16 buffer[OBUFFERSIZE];  int16 *bufferp[MAXCHANNELS];  uint32 channels;  static int audio_fd;  static int open_audio_device(void);  static void get_device_type(int fd, audio_device *); public:  SparcObuffer(uint32 number_of_channels, Header *,               bool use_speaker, bool use_headphone, bool use_line_out);  ~SparcObuffer(void);  void	append(uint32 channel, int16 value);  void	write_buffer(int dummy);  static bool class_suitable (void);	// returnvalue == False: no 16-bit output possible (class unsuitable)};#endif	// SPARC#if (defined(LINUX))      // a class for direct sound output on Linux machinesclass LinuxObuffer : public Obuffer { private:  int16 buffer[OBUFFERSIZE];  int16 *bufferp[MAXCHANNELS];  uint32 channels;  static int audio_fd;  static int open_audio_device(void); public:  LinuxObuffer(uint32 number_of_channels, Header *);  ~LinuxObuffer(void);  void  append(uint32 channel, int16 value);  void  write_buffer(int dummy);  static bool class_suitable (void);        // returnvalue == False: no 16-bit output possible (class unsuitable)};#endif  // LINUX#endif // __obuffer_h__

⌨️ 快捷键说明

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