xbmc
GameUtils.h
1 /*
2  * Copyright (C) 2012-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "GameTypes.h"
12 
13 #include <set>
14 #include <string>
15 
16 class CFileItem;
17 class CURL;
18 
19 namespace ADDON
20 {
21 class IAddon;
22 using AddonPtr = std::shared_ptr<IAddon>;
23 using VECADDONS = std::vector<AddonPtr>;
24 } // namespace ADDON
25 
26 namespace KODI
27 {
28 namespace GAME
29 {
36 {
37 public:
50  static bool FillInGameClient(CFileItem& item, std::string& savestatePath);
51 
60  static bool HasGameExtension(const std::string& path);
61 
65  static std::set<std::string> GetGameExtensions();
66 
72  static bool IsStandaloneGame(const ADDON::AddonPtr& addon);
73 
74 private:
75  static void GetGameClients(const CFileItem& file,
76  GameClientVector& candidates,
77  GameClientVector& installable,
78  bool& bHasVfsGameClient);
79  static void GetGameClients(const ADDON::VECADDONS& addons,
80  const CURL& translatedUrl,
81  GameClientVector& candidates,
82  bool& bHasVfsGameClient);
83 
94  static bool Install(const std::string& gameClient);
95 
103  static bool Enable(const std::string& gameClient);
104 };
105 } // namespace GAME
106 } // namespace KODI
Definition: URL.h:21
Definition: AudioDecoder.h:18
std::vector< GameClientPtr > GameClientVector
Vector of smart pointers to a game client (CGameClient)
Definition: GameTypes.h:36
Definition: Addon.cpp:39
Game related utilities.
Definition: GameUtils.h:35
Represents a file on a share.
Definition: FileItem.h:102