Merge pull request #24470 from fuzzard/release_20.3
[xbmc.git] / xbmc / input / AppTranslator.cpp
blob11d62a42fa61845958546616a10d0a79a1bbb8fb
1 /*
2 * Copyright (C) 2017-2018 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 "AppTranslator.h"
11 #include "Key.h"
12 #include "utils/StringUtils.h"
13 #include "utils/log.h"
15 #include <map>
17 namespace
20 using ActionName = std::string;
21 using CommandID = uint32_t;
23 #ifdef TARGET_WINDOWS
24 static const std::map<ActionName, CommandID> AppCommands = {
25 {"browser_back", APPCOMMAND_BROWSER_BACKWARD},
26 {"browser_forward", APPCOMMAND_BROWSER_FORWARD},
27 {"browser_refresh", APPCOMMAND_BROWSER_REFRESH},
28 {"browser_stop", APPCOMMAND_BROWSER_STOP},
29 {"browser_search", APPCOMMAND_BROWSER_SEARCH},
30 {"browser_favorites", APPCOMMAND_BROWSER_FAVORITES},
31 {"browser_home", APPCOMMAND_BROWSER_HOME},
32 {"volume_mute", APPCOMMAND_VOLUME_MUTE},
33 {"volume_down", APPCOMMAND_VOLUME_DOWN},
34 {"volume_up", APPCOMMAND_VOLUME_UP},
35 {"next_track", APPCOMMAND_MEDIA_NEXTTRACK},
36 {"prev_track", APPCOMMAND_MEDIA_PREVIOUSTRACK},
37 {"stop", APPCOMMAND_MEDIA_STOP},
38 {"play_pause", APPCOMMAND_MEDIA_PLAY_PAUSE},
39 {"launch_mail", APPCOMMAND_LAUNCH_MAIL},
40 {"launch_media_select", APPCOMMAND_LAUNCH_MEDIA_SELECT},
41 {"launch_app1", APPCOMMAND_LAUNCH_APP1},
42 {"launch_app2", APPCOMMAND_LAUNCH_APP2},
43 {"play", APPCOMMAND_MEDIA_PLAY},
44 {"pause", APPCOMMAND_MEDIA_PAUSE},
45 {"fastforward", APPCOMMAND_MEDIA_FAST_FORWARD},
46 {"rewind", APPCOMMAND_MEDIA_REWIND},
47 {"channelup", APPCOMMAND_MEDIA_CHANNEL_UP},
48 {"channeldown", APPCOMMAND_MEDIA_CHANNEL_DOWN}};
49 #endif
51 } // anonymous namespace
53 uint32_t CAppTranslator::TranslateAppCommand(const std::string& szButton)
55 #ifdef TARGET_WINDOWS
56 std::string strAppCommand = szButton;
57 StringUtils::ToLower(strAppCommand);
59 auto it = AppCommands.find(strAppCommand);
60 if (it != AppCommands.end())
61 return it->second | KEY_APPCOMMAND;
63 CLog::Log(LOGERROR, "{}: Can't find appcommand {}", __FUNCTION__, szButton);
64 #endif
66 return 0;