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

EnumStringConversions.h « mumble « src - github.com/mumble-voip/mumble.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 1431127dd6e0685b98e5ce9226da5e40e9df154f (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
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
// 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_ENUMSTRINGCONVERSIONS_H_
#define MUMBLE_MUMBLE_ENUMSTRINGCONVERSIONS_H_


#include "EchoCancelOption.h"
#include "Log.h"
#include "SearchDialog.h"
#include "Settings.h"

#include <type_traits>

const char *enumToString(Settings::AudioTransmit e);
const char *enumToString(Settings::VADSource e);
const char *enumToString(Settings::LoopMode e);
const char *enumToString(Settings::ChannelExpand e);
const char *enumToString(Settings::ChannelDrag e);
const char *enumToString(Settings::ServerShow e);
const char *enumToString(Settings::TalkState e);
const char *enumToString(Settings::IdleAction e);
const char *enumToString(Settings::NoiseCancel e);
const char *enumToString(EchoCancelOptionID e);
const char *enumToString(Settings::ProxyType e);
const char *enumToString(Settings::AlwaysOnTopBehaviour e);
const char *enumToString(QuitBehavior e);
const char *enumToString(Settings::WindowLayout e);
const char *enumToString(Settings::RecordingMode e);
const char *enumToString(Search::SearchDialog::UserAction e);
const char *enumToString(Search::SearchDialog::ChannelAction e);
const char *enumToString(Log::MsgType e);
const char *enumToString(OverlaySettings::OverlayPresets e);
const char *enumToString(OverlaySettings::OverlayShow e);
const char *enumToString(OverlaySettings::OverlaySort e);
const char *enumToString(OverlaySettings::OverlayExclusionMode e);

namespace details {

void stringToEnum(const std::string &str, Settings::AudioTransmit &e);
void stringToEnum(const std::string &str, Settings::VADSource &e);
void stringToEnum(const std::string &str, Settings::LoopMode &e);
void stringToEnum(const std::string &str, Settings::ChannelExpand &e);
void stringToEnum(const std::string &str, Settings::ChannelDrag &e);
void stringToEnum(const std::string &str, Settings::ServerShow &e);
void stringToEnum(const std::string &str, Settings::TalkState &e);
void stringToEnum(const std::string &str, Settings::IdleAction &e);
void stringToEnum(const std::string &str, Settings::NoiseCancel &e);
void stringToEnum(const std::string &str, EchoCancelOptionID &e);
void stringToEnum(const std::string &str, Settings::ProxyType &e);
void stringToEnum(const std::string &str, Settings::AlwaysOnTopBehaviour &e);
void stringToEnum(const std::string &str, QuitBehavior &e);
void stringToEnum(const std::string &str, Settings::WindowLayout &e);
void stringToEnum(const std::string &str, Settings::RecordingMode &e);
void stringToEnum(const std::string &str, Search::SearchDialog::UserAction &e);
void stringToEnum(const std::string &str, Search::SearchDialog::ChannelAction &e);
void stringToEnum(const std::string &str, Log::MsgType &e);
void stringToEnum(const std::string &str, OverlaySettings::OverlayPresets &e);
void stringToEnum(const std::string &str, OverlaySettings::OverlayShow &e);
void stringToEnum(const std::string &str, OverlaySettings::OverlaySort &e);
void stringToEnum(const std::string &str, OverlaySettings::OverlayExclusionMode &e);

}; // namespace details

template< typename T > T stringToEnum(const std::string &str) {
	static_assert(std::is_enum< T >::value, "Only enums can be converted to strings with this function");

	T enumVal;
	details::stringToEnum(str, enumVal);

	return enumVal;
}

#endif // MUMBLE_MUMBLE_ENUMSTRINGCONVERSIONS_H_