/usr/include/sipxtapi/mp/MpSpeakerSelectBase.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 179 | //
// Copyright (C) 2008 SIPez LLC.
// Licensed to SIPfoundry under a Contributor Agreement.
//
// Copyright (C) 2008 SIPfoundry Inc.
// Licensed by SIPfoundry under the LGPL license.
//
// $$
///////////////////////////////////////////////////////////////////////////////
// Author: Sergey Kostanbaev <Sergey DOT Kostanbaev AT sipez DOT com>
#ifndef _MpSpeakerSelectBase_h_
#define _MpSpeakerSelectBase_h_
// SYSTEM INCLUDES
// APPLICATION INCLUDES
#include <utl/UtlDefs.h>
#include <os/OsStatus.h>
#include <utl/UtlString.h>
#include "mp/MpTypes.h"
// DEFINES
// MACROS
// EXTERNAL FUNCTIONS
// EXTERNAL VARIABLES
// CONSTANTS
// STRUCTS
// TYPEDEFS
// FORWARD DECLARATIONS
/**
* Base class for all Speaker Selection (SS) algorithms.
*
* To create concrete class you could directly instantiate it or use
* MpSpeakerSelectBase::createInstance() static method for greater flexibility.
*
* @nosubgrouping
*/
class MpSpeakerSelectBase
{
/* //////////////////////////// PUBLIC //////////////////////////////////// */
public:
/* ============================ CREATORS ================================== */
///@name Creators
//@{
/// Initialize SS to initial state.
virtual OsStatus init(int maxParticipants, int maxActive) = 0;
/**<
* @param[in] maxParticipants - maximum number of participants in a conference.
* @param[in] maxActive - maximum number of participants to be detected
* as active speech, -1 lead to no constrains. Correct setting
* of \p maxActive helps SS algorithm to minimize number of
* flips between least ranked speaker inside \p maxActive
* speakers and most ranked speaker outside of this number.
*
* Should be called before any other class methods. All participants
* after initialization are disabled, to enable it call
* enableParticipant().
*/
/// Factory method for SS algorithms creation.
static MpSpeakerSelectBase *createInstance(const UtlString &name = "");
/**<
* @param[in] name - name of SS algorithm to use. Use empty string
* to get default algorithm.
*
* @note To date we have no available SS algorithms in open-source,
* so NULL is always returned.
*
* @returns If appropriate SS algorithm is not found, default one is
* returned.
*/
/// Destructor
virtual ~MpSpeakerSelectBase() {};
//@}
/* ============================ MANIPULATORS ============================== */
///@name Manipulators
//@{
/// Reset algorithm state to initial and prepare for processing of new data.
virtual void reset() = 0;
/**<
* It's supposed that init() will not be called after reset(). So reset()
* must turn algorithm to the state as right after calling init().
* Maximum number of participants intentionally is not changed, to prevent
* memory reallocation.
*/
/// Enable/disable processing of a selected participant.
virtual OsStatus enableParticipant(int num, UtlBoolean newState) = 0;
/**<
* Initially all participants are disabled. Use this method to enable
* processing for newly added participants and disable processing for
* removed participants. Data from disabled participants are just ignored.
*
* @param[in] num - number of participant, starting from zero
* @param[in] newState - pass TRUE to enable processing of this participant,
* FALSE to disable.
*
* @retval OS_SUCCESS if participant is successfully enabled
* or disabled.
* @retval OS_INVALID_ARGUMENT if participant number refers to non existing
* participant.
*/
/// Compute speaker ranks.
virtual OsStatus processFrame(MpSpeechParams* speechParams[],
int frameSize) = 0;
/**<
* @param[in] speechParams - parameters of bridges
* @param[in] frameSize - number of milliseconds in frame
*
* @retval OS_SUCCESS if processing is ok.
*/
/// Set algorithm parameter
virtual OsStatus setParam(const char* paramName, void* value) = 0;
/**<
* @param[in] paramName - name of parameter.
* @param[in] value - pointer to a value.
*
* @retval OS_SUCCESS if parameter has been set.
*/
/// Set algorithm to be used by default.
static void setDefaultAlgorithm(const UtlString& name);
/**<
* Initially default algorithm is defined at compile time. Using this
* function you can change default algorithm at run-time or switch back to
* compile-time default.
*
* @param[in] name - name of algorithm to use by default. Reverts to
* compile-time default if empty.
*/
//@}
/* ============================ ACCESSORS ================================= */
///@name Accessors
//@{
//@}
/* ============================ INQUIRY =================================== */
///@name Inquiry
//@{
/// Is processing enabled for a given participant?
virtual OsStatus isParticipantEnabled(int num, UtlBoolean &enabled) = 0;
/**<
* @param[in] num - number of a participant, starting from zero.
* @param[out] enabled - variable is set to TRUE processing of this
* participant is enabled, FALSE otherwise.
*
* @retval OS_SUCCESS if value is returned.
* @retval OS_INVALID_ARGUMENT if participant number refers to non existing
* participant.
*/
//@}
/* //////////////////////////// PROTECTED ///////////////////////////////// */
protected:
static UtlString smDefaultAlgorithm; ///< Name of algorithm to be used by default.
/* //////////////////////////// PRIVATE /////////////////////////////////// */
private:
};
#endif // _MpSpeakerSelectBase_h_
|