/usr/include/ptclib/pwavfiledev.h is in libpt2.4.5-dev 2.4.5-2build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | /*
* pwavfiledev.cxx
*
* Sound file device declaration
*
* Portable Windows Library
*
* Copyright (C) 2007 Post Increment
*
* 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
* Robert Jongbloed <robertj@postincrement.com>
*
* All Rights Reserved.
*
* Contributor(s): ______________________________________.
*
* $Revision: 20385 $
* $Author: rjongbloed $
* $Date: 2008-06-04 10:40:38 +0000 (Wed, 04 Jun 2008) $
*/
#ifndef _PWAVFILEDEV
#define _PWAVFILEDEV
#ifdef P_USE_PRAGMA
#pragma interface
#endif
#include <ptlib.h>
#include <ptlib/sound.h>
#include <ptclib/pwavfile.h>
#include <ptclib/delaychan.h>
#if defined(P_WAVFILE)
///////////////////////////////////////////////////////////////////////////////////////////
//
// This class defines a sound channel device that reads audio from a raw WAV file
//
class PSoundChannel_WAVFile : public PSoundChannel
{
PCLASSINFO(PSoundChannel_WAVFile, PSoundChannel);
public:
PSoundChannel_WAVFile();
PSoundChannel_WAVFile(const PString &device,
PSoundChannel::Directions dir,
unsigned numChannels,
unsigned sampleRate,
unsigned bitsPerSample);
~PSoundChannel_WAVFile();
static PStringArray GetDeviceNames(PSoundChannel::Directions = Player);
PBoolean Open(const PString & _device,
Directions _dir,
unsigned _numChannels,
unsigned _sampleRate,
unsigned _bitsPerSample);
virtual PString GetName() const;
PBoolean Close();
PBoolean IsOpen() const;
PBoolean Write(const void * buf, PINDEX len);
PBoolean Read(void * buf, PINDEX len);
PBoolean SetFormat(unsigned numChannels,
unsigned sampleRate,
unsigned bitsPerSample);
unsigned GetChannels() const;
unsigned GetSampleRate() const;
unsigned GetSampleSize() const;
PBoolean SetBuffers(PINDEX size, PINDEX count);
PBoolean GetBuffers(PINDEX & size, PINDEX & count);
PBoolean HasPlayCompleted();
PBoolean WaitForPlayCompletion();
PBoolean StartRecording();
PBoolean IsRecordBufferFull();
PBoolean AreAllRecordBuffersFull();
PBoolean WaitForRecordBufferFull();
PBoolean WaitForAllRecordBuffersFull();
protected:
bool ReadSamples(void * data, PINDEX size);
PWAVFile m_WAVFile;
PAdaptiveDelay m_Pacing;
bool m_autoRepeat;
unsigned m_sampleRate;
PINDEX m_bufferSize;
};
#endif // defined(P_WAVFILE)
#endif // _PWAVFILEDEV
|