forked from dolphin-emu/dolphin
		
	
		
			
				
	
	
		
			178 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			178 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// Copyright 2015 Dolphin Emulator Project
 | 
						|
// Licensed under GPLv2+
 | 
						|
// Refer to the license.txt file included.
 | 
						|
 | 
						|
#pragma once
 | 
						|
 | 
						|
#include <memory>
 | 
						|
 | 
						|
#include <QFont>
 | 
						|
#include <QObject>
 | 
						|
#include <QSettings>
 | 
						|
#include <QVector>
 | 
						|
 | 
						|
namespace Core
 | 
						|
{
 | 
						|
enum class State;
 | 
						|
}
 | 
						|
 | 
						|
namespace DiscIO
 | 
						|
{
 | 
						|
enum class Language;
 | 
						|
}
 | 
						|
 | 
						|
namespace NetPlay
 | 
						|
{
 | 
						|
class NetPlayClient;
 | 
						|
class NetPlayServer;
 | 
						|
}
 | 
						|
 | 
						|
class GameListModel;
 | 
						|
class InputConfig;
 | 
						|
class QFont;
 | 
						|
 | 
						|
// UI settings to be stored in the config directory.
 | 
						|
class Settings final : public QObject
 | 
						|
{
 | 
						|
  Q_OBJECT
 | 
						|
 | 
						|
public:
 | 
						|
  Settings(const Settings&) = delete;
 | 
						|
  Settings& operator=(const Settings&) = delete;
 | 
						|
  Settings(Settings&&) = delete;
 | 
						|
  Settings& operator=(Settings&&) = delete;
 | 
						|
 | 
						|
  ~Settings();
 | 
						|
 | 
						|
  static Settings& Instance();
 | 
						|
  static QSettings& GetQSettings();
 | 
						|
 | 
						|
  // UI
 | 
						|
  void SetThemeName(const QString& theme_name);
 | 
						|
  void SetCurrentUserStyle(const QString& stylesheet_path);
 | 
						|
  QString GetCurrentUserStyle() const;
 | 
						|
 | 
						|
  void SetUserStylesEnabled(bool enabled);
 | 
						|
  bool AreUserStylesEnabled() const;
 | 
						|
 | 
						|
  bool IsLogVisible() const;
 | 
						|
  void SetLogVisible(bool visible);
 | 
						|
  bool IsLogConfigVisible() const;
 | 
						|
  void SetLogConfigVisible(bool visible);
 | 
						|
  bool IsControllerStateNeeded() const;
 | 
						|
  void SetControllerStateNeeded(bool needed);
 | 
						|
  void SetToolBarVisible(bool visible);
 | 
						|
  bool IsToolBarVisible() const;
 | 
						|
  void SetWidgetsLocked(bool visible);
 | 
						|
  bool AreWidgetsLocked() const;
 | 
						|
 | 
						|
  // GameList
 | 
						|
  QStringList GetPaths() const;
 | 
						|
  void AddPath(const QString& path);
 | 
						|
  void RemovePath(const QString& path);
 | 
						|
  bool GetPreferredView() const;
 | 
						|
  void SetPreferredView(bool list);
 | 
						|
  QString GetDefaultGame() const;
 | 
						|
  void SetDefaultGame(QString path);
 | 
						|
  void RefreshGameList();
 | 
						|
  void ReloadTitleDB();
 | 
						|
  bool IsAutoRefreshEnabled() const;
 | 
						|
  void SetAutoRefreshEnabled(bool enabled);
 | 
						|
 | 
						|
  // Emulation
 | 
						|
  int GetStateSlot() const;
 | 
						|
  void SetStateSlot(int);
 | 
						|
  bool IsBatchModeEnabled() const;
 | 
						|
  void SetBatchModeEnabled(bool batch);
 | 
						|
 | 
						|
  // Graphics
 | 
						|
  void SetHideCursor(bool hide_cursor);
 | 
						|
  bool GetHideCursor() const;
 | 
						|
  void SetKeepWindowOnTop(bool top);
 | 
						|
  bool IsKeepWindowOnTopEnabled() const;
 | 
						|
 | 
						|
  // Audio
 | 
						|
  int GetVolume() const;
 | 
						|
  void SetVolume(int volume);
 | 
						|
  void IncreaseVolume(int volume);
 | 
						|
  void DecreaseVolume(int volume);
 | 
						|
 | 
						|
  // NetPlay
 | 
						|
  NetPlay::NetPlayClient* GetNetPlayClient();
 | 
						|
  void ResetNetPlayClient(NetPlay::NetPlayClient* client = nullptr);
 | 
						|
  NetPlay::NetPlayServer* GetNetPlayServer();
 | 
						|
  void ResetNetPlayServer(NetPlay::NetPlayServer* server = nullptr);
 | 
						|
 | 
						|
  // Cheats
 | 
						|
  bool GetCheatsEnabled() const;
 | 
						|
  void SetCheatsEnabled(bool enabled);
 | 
						|
 | 
						|
  // Debug
 | 
						|
  void SetDebugModeEnabled(bool enabled);
 | 
						|
  bool IsDebugModeEnabled() const;
 | 
						|
  void SetRegistersVisible(bool enabled);
 | 
						|
  bool IsRegistersVisible() const;
 | 
						|
  void SetWatchVisible(bool enabled);
 | 
						|
  bool IsWatchVisible() const;
 | 
						|
  void SetBreakpointsVisible(bool enabled);
 | 
						|
  bool IsBreakpointsVisible() const;
 | 
						|
  void SetCodeVisible(bool enabled);
 | 
						|
  bool IsCodeVisible() const;
 | 
						|
  void SetMemoryVisible(bool enabled);
 | 
						|
  bool IsMemoryVisible() const;
 | 
						|
  void SetJITVisible(bool enabled);
 | 
						|
  bool IsJITVisible() const;
 | 
						|
  QFont GetDebugFont() const;
 | 
						|
  void SetDebugFont(QFont font);
 | 
						|
 | 
						|
  // Auto-Update
 | 
						|
  QString GetAutoUpdateTrack() const;
 | 
						|
  void SetAutoUpdateTrack(const QString& mode);
 | 
						|
 | 
						|
  // Analytics
 | 
						|
  bool IsAnalyticsEnabled() const;
 | 
						|
  void SetAnalyticsEnabled(bool enabled);
 | 
						|
 | 
						|
  // Other
 | 
						|
  GameListModel* GetGameListModel() const;
 | 
						|
signals:
 | 
						|
  void ConfigChanged();
 | 
						|
  void EmulationStateChanged(Core::State new_state);
 | 
						|
  void ThemeChanged();
 | 
						|
  void PathAdded(const QString&);
 | 
						|
  void PathRemoved(const QString&);
 | 
						|
  void DefaultGameChanged(const QString&);
 | 
						|
  void GameListRefreshRequested();
 | 
						|
  void TitleDBReloadRequested();
 | 
						|
  void AutoRefreshToggled(bool enabled);
 | 
						|
  void HideCursorChanged();
 | 
						|
  void KeepWindowOnTopChanged(bool top);
 | 
						|
  void VolumeChanged(int volume);
 | 
						|
  void NANDRefresh();
 | 
						|
  void RegistersVisibilityChanged(bool visible);
 | 
						|
  void LogVisibilityChanged(bool visible);
 | 
						|
  void LogConfigVisibilityChanged(bool visible);
 | 
						|
  void ToolBarVisibilityChanged(bool visible);
 | 
						|
  void WidgetLockChanged(bool locked);
 | 
						|
  void EnableCheatsChanged(bool enabled);
 | 
						|
  void WatchVisibilityChanged(bool visible);
 | 
						|
  void BreakpointsVisibilityChanged(bool visible);
 | 
						|
  void CodeVisibilityChanged(bool visible);
 | 
						|
  void MemoryVisibilityChanged(bool visible);
 | 
						|
  void JITVisibilityChanged(bool visible);
 | 
						|
  void DebugModeToggled(bool enabled);
 | 
						|
  void DebugFontChanged(QFont font);
 | 
						|
  void AutoUpdateTrackChanged(const QString& mode);
 | 
						|
  void AnalyticsToggled(bool enabled);
 | 
						|
  void DevicesChanged();
 | 
						|
 | 
						|
private:
 | 
						|
  bool m_batch = false;
 | 
						|
  bool m_controller_state_needed = false;
 | 
						|
  std::unique_ptr<NetPlay::NetPlayClient> m_client;
 | 
						|
  std::unique_ptr<NetPlay::NetPlayServer> m_server;
 | 
						|
  Settings();
 | 
						|
};
 | 
						|
 | 
						|
Q_DECLARE_METATYPE(Core::State);
 |