[PVR][Estuary] Timer settings dialog: Show client name in timer type selection dialog...
[xbmc.git] / xbmc / platform / linux / AppParamParserLinux.cpp
blob3a1adf9d5eec70f2abdffe29371d0e148d0f96f7
1 /*
2 * Copyright (C) 2005-2021 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
9 #include "AppParamParserLinux.h"
11 #include "CompileInfo.h"
12 #include "application/AppParams.h"
13 #include "utils/StringUtils.h"
15 #include <algorithm>
16 #include <array>
17 #include <iostream>
18 #include <vector>
20 namespace
22 std::vector<std::string> availableWindowSystems = CCompileInfo::GetAvailableWindowSystems();
23 std::array<std::string, 1> availableLogTargets = {"console"};
25 constexpr const char* windowingText =
26 R"""(
27 Selected window system not available: {}
28 Available window systems: {}
29 )""";
31 constexpr const char* loggingText =
32 R"""(
33 Selected logging target not available: {}
34 Available log targest: {}
35 )""";
37 constexpr const char* helpText =
38 R"""(
39 Linux Specific Arguments:
40 --windowing=<system> Select which windowing method to use.
41 Available window systems are: {}
42 --logging=<target> Select which log target to use (log file will always be used in conjunction).
43 Available log targets are: {}
44 )""";
47 } // namespace
49 CAppParamParserLinux::CAppParamParserLinux() : CAppParamParser()
53 CAppParamParserLinux::~CAppParamParserLinux() = default;
55 void CAppParamParserLinux::ParseArg(const std::string& arg)
57 CAppParamParser::ParseArg(arg);
59 if (arg.substr(0, 12) == "--windowing=")
61 if (std::find(availableWindowSystems.begin(), availableWindowSystems.end(), arg.substr(12)) !=
62 availableWindowSystems.end())
63 GetAppParams()->SetWindowing(arg.substr(12));
64 else
66 std::cout << StringUtils::Format(windowingText, arg.substr(12),
67 StringUtils::Join(availableWindowSystems, ", "));
68 exit(0);
71 else if (arg.substr(0, 10) == "--logging=")
73 if (std::find(availableLogTargets.begin(), availableLogTargets.end(), arg.substr(10)) !=
74 availableLogTargets.end())
76 GetAppParams()->SetLogTarget(arg.substr(10));
78 else
80 std::cout << StringUtils::Format(loggingText, arg.substr(10),
81 StringUtils::Join(availableLogTargets, ", "));
82 exit(0);
87 void CAppParamParserLinux::DisplayHelp()
89 CAppParamParser::DisplayHelp();
91 std::cout << StringUtils::Format(helpText, StringUtils::Join(availableWindowSystems, ", "),
92 StringUtils::Join(availableLogTargets, ", "));