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

📄 beaudio.h

📁 安装 H323需要的pwlib库
💻 H
字号:
/* * beaudio.h * * BeOS Sound driver class definitions. * * Portable Windows Library * * Copyright (c) 1993-1998 Equivalence Pty. Ltd. * * The contents of this file are subject to the Mozilla Public License * Version 1.0 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See * the License for the specific language governing rights and limitations * under the License. * * The Original Code is Portable Windows Library. * * The Initial Developer of the Original Code is Equivalence Pty. Ltd. * * Portions are Copyright (C) 1993 Free Software Foundation, Inc. * All Rights Reserved. * * Contributor(s):  * Yuri Kiryanov, ykiryanov at users.sourceforge.net * Bits by Jac Goudsmit * * $Log: beaudio.h,v $ * Revision 1.4  2004/10/26 18:07:36  ykiryanov * Added ifdef for Zeta build * * Revision 1.3  2004/06/16 01:57:57  ykiryanov * Working capture code * * Revision 1.2  2004/05/30 04:55:57  ykiryanov * Added include files * * Revision 1.1  2004/05/14 08:36:44  ykiryanov * BeOS sound class declarations collected in separate file * * */#include <ptlib.h>#include <ptlib/dynalink.h>#include <ptlib/sound.h>#include <ptlib/socket.h>#include <ptlib/plugin.h>// Storage kit#include <storage/Directory.h>#include <storage/Entry.h>#include <storage/File.h>// Media kit #include <media/MediaDefs.h>#include <media/MediaFormats.h>#include <media/MediaFile.h>#include <media/MediaTrack.h>#include <media/SoundPlayer.h>#include <media/PlaySound.h>// Kernel kit#include <kernel/OS.h>// Beep kit :-)#include <support/Beep.h>#include "resampler.h"#ifdef B_ZETA_VERSION#define MEDIA_KIT_UPDATE#endif#ifdef MEDIA_KIT_UPDATE#include <media/MediaRecorder.h>#else#include "beaudio/MediaRecorder.h"#endif////////////////////////////////////////////////////////////////////////////////// PSoundChannelBeOS declarationclass CircularBuffer;class PSoundChannelBeOS: public PSoundChannel{ public:    PSoundChannelBeOS();    void Construct();    PSoundChannelBeOS(const PString &device,                     PSoundChannel::Directions dir,                     unsigned numChannels,                     unsigned sampleRate,                     unsigned bitsPerSample);    ~PSoundChannelBeOS();    static PStringArray GetDeviceNames(PSoundChannel::Directions = Player);    static PString GetDefaultDevice(PSoundChannel::Directions);    BOOL Open(const PString & _device,              Directions _dir,              unsigned _numChannels,              unsigned _sampleRate,              unsigned _bitsPerSample);    BOOL Setup();    BOOL Close();    BOOL IsOpen() const;    BOOL Write(const void * buf, PINDEX len);    BOOL Read(void * buf, PINDEX len);    BOOL SetFormat(unsigned numChannels,                   unsigned sampleRate,                   unsigned bitsPerSample);    unsigned GetChannels() const;    unsigned GetSampleRate() const;    unsigned GetSampleSize() const;    BOOL SetBuffers(PINDEX size, PINDEX count);    BOOL GetBuffers(PINDEX & size, PINDEX & count);    BOOL PlaySound(const PSound & sound, BOOL wait);    BOOL PlayFile(const PFilePath & filename, BOOL wait);    BOOL HasPlayCompleted();    BOOL WaitForPlayCompletion();    BOOL RecordSound(PSound & sound);    BOOL RecordFile(const PFilePath & filename);    BOOL StartRecording();    BOOL IsRecordBufferFull();    BOOL AreAllRecordBuffersFull();    BOOL WaitForRecordBufferFull();    BOOL WaitForAllRecordBuffersFull();    BOOL Abort();    BOOL SetVolume(unsigned newVal);    BOOL GetVolume(unsigned &devVol);  public:    // Overrides from class PChannel    virtual PString GetName() const { return deviceName; }      // Return the name of the channel.  protected:    PString     deviceName;    Directions  direction;     private:  	// Only one of the following pointers can be non-NULL at a time.	BMediaRecorder		   *mRecorder;	BSoundPlayer		   *mPlayer;	// Raw media format specifier used for sound player.	// It also stores the parameters (number of channels, sample rate etc) so	// no need to store them separately here.	// For the recorder, a media_format struct is created temporarily with	// the data from this raw format spec.	media_raw_audio_format	mFormat;	// The class holds a circular buffer whose size is set with SetBuffers.	// We only need one buffer for BeOS. The number of buffers that was set	// is only kept for reference.	friend class CircularBuffer;	CircularBuffer *mBuffer;			// The internal buffer	PINDEX mNumBuffers;		// for reference only!		// Just some helpers so that the Open function doesn't get too big	BOOL OpenPlayer(void);	BOOL OpenRecorder(const PString &dev);	// internal buffer setting function so we can disable the SetBuffers	// function for debug purposes	// size is the total size, threshold is the fill/drain threshold on	// the buffer	BOOL InternalSetBuffers(PINDEX size, PINDEX threshold);	// Input resampler	Resampler			   *mResampler;};

⌨️ 快捷键说明

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