/usr/include/sipxtapi/mp/MpidOss.h is in libsipxtapi-dev 3.3.0~test17-2.1.
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 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 | //
// Copyright (C) 2007 SIPez LLC.
// Licensed to SIPfoundry under a Contributor Agreement.
//
// Copyright (C) 2007 SIPfoundry Inc.
// Licensed by SIPfoundry under the LGPL license.
//
// $$
///////////////////////////////////////////////////////////////////////////////
// Author: Sergey Kostanbaev <Sergey DOT Kostanbaev AT sipez DOT com>
#ifndef _MpidOss_h_
#define _MpidOss_h_
// SYSTEM INCLUDES
#include <pthread.h>
#include <semaphore.h>
// APPLICATION INCLUDES
#include "mp/MpInputDeviceDriver.h"
#include "mp/MpOss.h"
// DEFINES
// MACROS
// EXTERNAL FUNCTIONS
// EXTERNAL VARIABLES
// CONSTANTS
// STRUCTS
// TYPEDEFS
// FORWARD DECLARATIONS
class MpInputDeviceManager;
/**
* @brief Container for device specific input OSS driver.
*/
class MpidOss : public MpInputDeviceDriver
{
friend class MpOss;
/* //////////////////////////// PUBLIC //////////////////////////////////// */
public:
/* ============================ CREATORS ================================== */
///@name Creators
//@{
/// @brief Default constructor.
MpidOss(const UtlString& name,
MpInputDeviceManager& deviceManager);
/**<
* @param name - (in) unique device driver name (e.g. "/dev/dsp",
* "YAMAHA AC-XG WDM Audio", etc.).
* @param deviceManager - (in) MpInputDeviceManager this device is to
* push frames to via pushFrame method.
*/
/// @brief Destructor
~MpidOss();
//@}
/* ============================ MANIPULATORS ============================== */
///@name Manipulators
//@{
/// @brief Initialize device driver and state.
OsStatus enableDevice(unsigned samplesPerFrame,
unsigned samplesPerSec,
MpFrameTime currentFrameTime);
/**<
* This method enables the device driver.
*
* @NOTE this SHOULD NOT be used to mute/unmute a device. Disabling and
* enabling a device results in state and buffer queues being cleared.
*
* @param samplesPerFrame - (in) the number of samples in a frame of media
* @param samplesPerSec - (in) sample rate for media frame in samples per
* second
* @param currentFrameTime - (in) time in milliseconds for beginning of
* frame relative to the MpInputDeviceManager reference time
*/
/// @brief Uninitialize device driver.
OsStatus disableDevice();
/**<
* This method disables the device driver and should release any
* platform device resources so that the device might be used else where.
*
* @NOTE this SHOULD NOT be used to mute/unmute a device. Disabling and
* enabling a device results in state and buffer queues being
* cleared.
*/
//@}
/* ============================ ACCESSORS ================================= */
///@name Accessors
//@{
//@}
/* ============================ INQUIRY =================================== */
///@name Inquiry
//@{
/// @brief Inquire if the OSS device is valid.
inline UtlBoolean isDeviceValid();
//@}
/* //////////////////////////// PROTECTED ///////////////////////////////// */
protected:
MpAudioSample* mAudioFrame; ///< Wave buffer.
MpOssContainer* mpCont; ///< Pointer to Wrapper container
/// @brief Allocate internal OSS buffers.
OsStatus initBuffers();
/// @brief Free internal OSS buffers.
void freeBuffers();
/// @brief Get buffer from internal buffers.
MpAudioSample* getBuffer();
/// @brief Push audio frame to InputDeviceManager.
void pushFrame();
/// @brief Add frame time to <tt>mCurrentFrameTime</tt>.
void skipFrame();
/* //////////////////////////// PRIVATE /////////////////////////////////// */
private:
MpOss *pDevWrapper;
/// @brief Copy constructor (not implemented for this class).
MpidOss(const MpidOss& rMpInputDeviceDriver);
/// @brief Assignment operator (not implemented for this class).
MpidOss& operator=(const MpidOss& rhs);
};
/* ============================ INLINE METHODS ============================ */
UtlBoolean MpidOss::isDeviceValid()
{
//printf("MpRsIdOss::isDeviceValid()\n"); fflush(stdout);
return ((pDevWrapper != NULL) && pDevWrapper->isDeviceValid());
}
#endif // _MpidOss_h_
|