Welcome to mirror list, hosted at ThFree Co, Russian Federation.

EchoCancelOption.h « mumble « src - github.com/mumble-voip/mumble.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 8cb63cfc715519eb2515628934df16a50c8e2d7a (plain)
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
// Copyright 2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.

#ifndef MUMBLE_MUMBLE_ECHOCANCELLATIONOPTION_H
#define MUMBLE_MUMBLE_ECHOCANCELLATIONOPTION_H

#include <QtCore/QObject>


/// This enum lists a series of echo cancellation options
/// Each audio backend will determine which option is indeed available to that backend and
/// to the specific device combination
enum class EchoCancelOptionID {
    DISABLED = 0,
    SPEEX_MIXED = 1,
    SPEEX_MULTICHANNEL = 2,
    APPLE_AEC = 3  // Apple's Acoustic Echo Cancellation support for macOS and iOS.
};

struct EchoCancelOption {
	EchoCancelOptionID id;
	QString description;
	QString explanation;
};

// Please strictly follow the order of the EchoCancelOptionID when adding items to this array.
static const EchoCancelOption echoCancelOptions[] = {
	{ EchoCancelOptionID::DISABLED,
	  QObject::tr("Disabled"),
	  QObject::tr("Echo cancellation is disabled.") },
	{ EchoCancelOptionID::SPEEX_MIXED,
	  QObject::tr("Mixed echo cancellation (speex)"),
	  QObject::tr("Mixed has low CPU impact, but only works well if your "
						 "speakers are equally loud and equidistant from the microphone.") },
	{ EchoCancelOptionID::SPEEX_MULTICHANNEL,
	  QObject::tr("Multichannel echo cancellation (speex)"),
	  QObject::tr("Multichannel echo cancellation provides much better echo "
								 "cancellation, but at a higher CPU cost. "
								 "Multichannel echo cancellation requires more CPU, so "
								 "you should try mixed first.") },
	// Available only on Apple devices
	{ EchoCancelOptionID::APPLE_AEC,
	  QObject::tr("EXPERIMENTAL: Acoustic echo cancellation (Apple)."),
	  QObject::tr("The support for this option is experimental only! This option works best when using built-in microphone and speaker.") }
};

#endif // MUMBLE_ECHOCANCELLATIONOPTION_H