50 lines
1.9 KiB
C++
50 lines
1.9 KiB
C++
/*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <filesystem>
|
|
|
|
namespace openVulkanoCpp
|
|
{
|
|
class PlatformFolders
|
|
{
|
|
std::filesystem::path dataHome, configHome, stateDir, dataCache, tempDir;
|
|
std::filesystem::path desktop, documents, downloads, pictures, publicDir, music, video, savedGames;
|
|
|
|
PlatformFolders();
|
|
|
|
static PlatformFolders& GetInstance();
|
|
|
|
public:
|
|
[[nodiscard]] static const std::filesystem::path& GetDataHomeDir() { return GetInstance().dataHome; }
|
|
|
|
[[nodiscard]] static const std::filesystem::path& GetConfigHomeDir() { return GetInstance().configHome; }
|
|
|
|
[[nodiscard]] static const std::filesystem::path& GetStateDir() { return GetInstance().stateDir; }
|
|
|
|
[[nodiscard]] static const std::filesystem::path& GetCacheDir() { return GetInstance().dataCache; }
|
|
|
|
[[nodiscard]] static const std::filesystem::path& GetTempDir() { return GetInstance().tempDir; }
|
|
|
|
[[nodiscard]] static const std::filesystem::path& GetDesktopDir() { return GetInstance().desktop; }
|
|
|
|
[[nodiscard]] static const std::filesystem::path& GetDocumentsDir() { return GetInstance().documents; }
|
|
|
|
[[nodiscard]] static const std::filesystem::path& GetDownloadDir() { return GetInstance().downloads; }
|
|
|
|
[[nodiscard]] static const std::filesystem::path& GetPicturesDir() { return GetInstance().pictures; }
|
|
|
|
[[nodiscard]] static const std::filesystem::path& GetPublicShareDir() { return GetInstance().publicDir; }
|
|
|
|
[[nodiscard]] static const std::filesystem::path& GetMusicDir() { return GetInstance().music; }
|
|
|
|
[[nodiscard]] static const std::filesystem::path& GetVideoDir() { return GetInstance().video; }
|
|
|
|
[[nodiscard]] static const std::filesystem::path& GetSaveGamesDir() { return GetInstance().savedGames; }
|
|
};
|
|
}
|