2021-12-13 12:12:54 +00:00
|
|
|
/* PCSX2 - PS2 Emulator for PCs
|
|
|
|
* Copyright (C) 2002-2022 PCSX2 Dev Team
|
|
|
|
*
|
|
|
|
* PCSX2 is free software: you can redistribute it and/or modify it under the terms
|
|
|
|
* of the GNU Lesser General Public License as published by the Free Software Found-
|
|
|
|
* ation, either version 3 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
|
|
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
|
|
* PURPOSE. See the GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License along with PCSX2.
|
|
|
|
* If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
#include "pcsx2/Host.h"
|
|
|
|
#include "pcsx2/HostDisplay.h"
|
|
|
|
#include "pcsx2/HostSettings.h"
|
|
|
|
#include "pcsx2/Frontend/InputManager.h"
|
|
|
|
#include "pcsx2/VMManager.h"
|
|
|
|
#include <QtCore/QMetaType>
|
2022-05-11 08:24:56 +00:00
|
|
|
#include <QtCore/QString>
|
2022-04-06 10:42:23 +00:00
|
|
|
#include <functional>
|
|
|
|
#include <memory>
|
|
|
|
#include <optional>
|
2021-12-13 12:12:54 +00:00
|
|
|
|
|
|
|
class SettingsInterface;
|
|
|
|
|
|
|
|
class EmuThread;
|
|
|
|
|
2022-06-28 13:34:45 +00:00
|
|
|
enum class CDVD_SourceType : uint8_t;
|
|
|
|
|
2021-12-13 12:12:54 +00:00
|
|
|
Q_DECLARE_METATYPE(std::shared_ptr<VMBootParameters>);
|
2022-04-06 10:42:23 +00:00
|
|
|
Q_DECLARE_METATYPE(std::optional<bool>);
|
|
|
|
Q_DECLARE_METATYPE(std::function<void()>);
|
|
|
|
Q_DECLARE_METATYPE(GSRendererType);
|
2021-12-13 12:12:54 +00:00
|
|
|
Q_DECLARE_METATYPE(InputBindingKey);
|
2022-06-28 13:34:45 +00:00
|
|
|
Q_DECLARE_METATYPE(CDVD_SourceType);
|
2021-12-13 12:12:54 +00:00
|
|
|
|
|
|
|
namespace QtHost
|
|
|
|
{
|
2022-05-03 04:26:49 +00:00
|
|
|
/// Sets batch mode (exit after game shutdown).
|
|
|
|
bool InBatchMode();
|
|
|
|
|
2022-04-06 10:49:00 +00:00
|
|
|
/// Executes a function on the UI thread.
|
|
|
|
void RunOnUIThread(const std::function<void()>& func, bool block = false);
|
|
|
|
|
2022-05-11 08:24:56 +00:00
|
|
|
/// Returns the application name and version, optionally including debug/devel config indicator.
|
|
|
|
QString GetAppNameAndVersion();
|
|
|
|
|
|
|
|
/// Returns the debug/devel config indicator.
|
|
|
|
QString GetAppConfigSuffix();
|
|
|
|
|
2022-06-04 05:53:31 +00:00
|
|
|
/// Returns the base path for resources. This may be : prefixed, if we're using embedded resources.
|
|
|
|
QString GetResourcesBasePath();
|
|
|
|
|
2021-12-13 12:12:54 +00:00
|
|
|
/// Thread-safe settings access.
|
|
|
|
void SetBaseBoolSettingValue(const char* section, const char* key, bool value);
|
|
|
|
void SetBaseIntSettingValue(const char* section, const char* key, int value);
|
|
|
|
void SetBaseFloatSettingValue(const char* section, const char* key, float value);
|
|
|
|
void SetBaseStringSettingValue(const char* section, const char* key, const char* value);
|
|
|
|
void SetBaseStringListSettingValue(const char* section, const char* key, const std::vector<std::string>& values);
|
|
|
|
bool AddBaseValueToStringList(const char* section, const char* key, const char* value);
|
|
|
|
bool RemoveBaseValueFromStringList(const char* section, const char* key, const char* value);
|
|
|
|
void RemoveBaseSettingValue(const char* section, const char* key);
|
2022-03-25 12:16:21 +00:00
|
|
|
void QueueSettingsSave();
|
2022-06-28 12:53:26 +00:00
|
|
|
|
|
|
|
/// VM state, safe to access on UI thread.
|
|
|
|
bool IsVMValid();
|
|
|
|
bool IsVMPaused();
|
2021-12-13 12:12:54 +00:00
|
|
|
} // namespace QtHost
|