This file is indexed.

/usr/include/sipxtapi/mp/MpBridgeAlgBase.h is in libsipxtapi-dev 3.3.0~test17-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
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
//  
// Copyright (C) 2008 SIPfoundry Inc. 
// Licensed by SIPfoundry under the LGPL license. 
//  
// Copyright (C) 2008 SIPez LLC. 
// Licensed to SIPfoundry under a Contributor Agreement. 
//  
// $$ 
////////////////////////////////////////////////////////////////////////////// 

// Author: Alexander Chemeris <Alexander DOT Chemeris AT SIPez DOT com>

#ifndef _MpBridgeAlgBase_h_
#define _MpBridgeAlgBase_h_

// SYSTEM INCLUDES
// APPLICATION INCLUDES
#include "mp/MpTypes.h"
#include "mp/MpAudioBuf.h"
#include "mp/MpDspUtils.h"

// DEFINES
// MACROS

// Use Q5.10 (signed) values when fixed point is enabled.
#define MP_BRIDGE_INT_LENGTH          INT16_C(5)
#define MP_BRIDGE_FRAC_LENGTH         INT16_C(10)
#define MPF_BRIDGE_FLOAT(num)         ((MpBridgeGain)MPF_FLOAT((num), MP_BRIDGE_INT_LENGTH, MP_BRIDGE_FRAC_LENGTH))
#define MPF_BRIDGE_MAX                ((MpBridgeGain)MPF_MAX(MP_BRIDGE_INT_LENGTH, MP_BRIDGE_FRAC_LENGTH))
#define MPF_BRIDGE_STEP               ((MpBridgeGain)MPF_STEP(MP_BRIDGE_INT_LENGTH, MP_BRIDGE_FRAC_LENGTH))

#define MP_BRIDGE_GAIN_UNDEFINED      INT16_MAX
#define MP_BRIDGE_GAIN_MAX            MPF_BRIDGE_MAX
#define MP_BRIDGE_GAIN_MIN            MPF_BRIDGE_FLOAT(0.0f)
#define MP_BRIDGE_GAIN_STEP           MPF_BRIDGE_STEP
#define MP_BRIDGE_GAIN_MUTED          MP_BRIDGE_GAIN_MIN
#define MP_BRIDGE_GAIN_PASSTHROUGH    MPF_BRIDGE_FLOAT(1.0f)

#define MAX_AMPLITUDE_ROUND  (1<<(MP_AUDIO_SAMPLE_SIZE-1))

// EXTERNAL FUNCTIONS
// EXTERNAL VARIABLES
// STRUCTS
// TYPEDEFS
#ifdef MP_FIXED_POINT // [
   typedef int32_t MpBridgeAccum;
#else  // MP_FIXED_POINT ][
   typedef float MpBridgeAccum;
#endif // MP_FIXED_POINT ]

#ifdef MP_FIXED_POINT // [
   typedef int16_t MpBridgeGain;
#else  // MP_FIXED_POINT ][
   typedef float MpBridgeGain;
#endif // MP_FIXED_POINT ]

// FORWARD DECLARATIONS

/**
*  @brief Base class for the Bridge mixing algorithms.
*/
class MpBridgeAlgBase
{
/* //////////////////////////////// PUBLIC //////////////////////////////// */
public:

/* =============================== CREATORS =============================== */
///@name Creators
//@{

     /// Constructor.
   MpBridgeAlgBase(int maxInputs, int maxOutputs, UtlBoolean mixSilence)
   : mMaxInputs(maxInputs)
   , mMaxOutputs(maxOutputs)
   , mMixSilence(mixSilence)
   , mpPrevAmplitudes(new MpAudioSample[mMaxInputs])
   {
      // Save magic value to the array to tell that it hasn't been initialized yet.
      for (int i=0; i<mMaxInputs; i++)
      {
         mpPrevAmplitudes[i]= -1;
      }
   }

     /// Destructor.
   virtual ~MpBridgeAlgBase()
   {
      delete[] mpPrevAmplitudes;
   };

//@}

/* ============================= MANIPULATORS ============================= */
///@name Manipulators
//@{

     /// @brief Mix together inputs onto outputs according to mpGainMatrix matrix.
   virtual UtlBoolean doMix(MpBufPtr inBufs[], int inBufsSize,
                            MpBufPtr outBufs[], int outBufsSize,
                            int samplesPerFrame) =0;

     /// Set selected gain to the given value.
   virtual void setGainMatrixValue(int column, int row, MpBridgeGain val) =0;

     /// Set selected gain row to the given value.
   virtual void setGainMatrixRow(int row, int numValues, const MpBridgeGain val[]) =0;

     /// Set selected gain column to the given value.
   virtual void setGainMatrixColumn(int column, int numValues, const MpBridgeGain val[]) =0;

     /// Save buffers amplitudes to internal array.
   inline void saveAmplitudes(MpBufPtr inBufs[], int inBufsSize);

//@}

/* ============================== ACCESSORS =============================== */
///@name Accessors
//@{

     /// Get maximum number of inputs.
   inline
   int maxInputs() const;

     /// Get maximum number of outputs.
   inline
   int maxOutputs() const;

//@}

/* =============================== INQUIRY ================================ */
///@name Inquiry
//@{


//@}

/* ////////////////////////////// PROTECTED /////////////////////////////// */
protected:

   int mMaxInputs;         ///< Number of possible bridge inputs.
   int mMaxOutputs;        ///< Number of possible bridge outputs.
   UtlBoolean mMixSilence; ///< Should Bridge ignore or mix frames marked as silence?
   MpAudioSample *mpPrevAmplitudes; ///< Saved amplitude of the inputs from
                           ///< the previous frame processing interval.

/* /////////////////////////////// PRIVATE //////////////////////////////// */
private:


};

/* ============================ INLINE METHODS ============================ */

int MpBridgeAlgBase::maxInputs() const
{
   return mMaxInputs;
}

int MpBridgeAlgBase::maxOutputs() const
{
   return mMaxOutputs;
}

void MpBridgeAlgBase::saveAmplitudes(MpBufPtr inBufs[], int inBufsSize)
{
   assert(inBufsSize <= mMaxInputs);
   for (int i=0; i<inBufsSize; i++)
   {
      if (inBufs[i].isValid())
      {
         MpAudioBufPtr pAudioBuf = inBufs[i];
         MpAudioSample amplitude = pAudioBuf->getAmplitude();
         mpPrevAmplitudes[i] = amplitude == 0 ? 1 : amplitude;
      }
   }
}

#endif  // _MpBridgeAlgBase_h_