[PVR][Estuary] Timer settings dialog: Show client name in timer type selection dialog...
[xbmc.git] / xbmc / interfaces / generic / ScriptRunner.h
blob77d511d9f2cd503d5247847a9a25a47451b51264
1 /*
2 * Copyright (C) 2017-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 #pragma once
11 #include "addons/IAddon.h"
12 #include "threads/Event.h"
14 #include <string>
16 class CScriptRunner
18 protected:
19 CScriptRunner();
20 virtual ~CScriptRunner() = default;
22 virtual bool IsSuccessful() const = 0;
23 virtual bool IsCancelled() const = 0;
25 ADDON::AddonPtr GetAddon() const;
27 bool StartScript(const ADDON::AddonPtr& addon, const std::string& path);
28 bool RunScript(const ADDON::AddonPtr& addon, const std::string& path, int handle, bool resume);
30 void SetDone();
32 static int ExecuteScript(const ADDON::AddonPtr& addon, const std::string& path, bool resume);
33 static int ExecuteScript(const ADDON::AddonPtr& addon,
34 const std::string& path,
35 int handle,
36 bool resume);
38 private:
39 bool RunScriptInternal(const ADDON::AddonPtr& addon,
40 const std::string& path,
41 int handle,
42 bool resume,
43 bool wait = true);
44 bool WaitOnScriptResult(int scriptId, const std::string& path, const std::string& name);
46 ADDON::AddonPtr m_addon;
48 CEvent m_scriptDone;