publish changes

This commit is contained in:
Archie 2024-09-29 02:04:03 +00:00
parent afc5064a7b
commit ac2c6ac843
1605 changed files with 3354 additions and 3354 deletions

View file

@ -11,10 +11,10 @@
#include "stdafx.h"
#include "mptLibrary.h"
#include "mpt/osinfo/windows_version.hpp"
#include "mpt/osinfo/arch_version.hpp"
#if MPT_OS_WINDOWS
#include <windows.h>
#include <arch.h>
#elif MPT_OS_ANDROID
#include <dlfcn.h>
#elif defined(MPT_WITH_LTDL)
@ -95,11 +95,11 @@ public:
#else
// Check for KB2533623:
bool hasKB2533623 = false;
mpt::osinfo::windows::Version WindowsVersion = mpt::osinfo::windows::Version::Current();
if(WindowsVersion.IsAtLeast(mpt::osinfo::windows::Version::Win8))
mpt::osinfo::arch::Version WindowsVersion = mpt::osinfo::arch::Version::Current();
if(WindowsVersion.IsAtLeast(mpt::osinfo::arch::Version::Win8))
{
hasKB2533623 = true;
} else if(WindowsVersion.IsAtLeast(mpt::osinfo::windows::Version::WinVista))
} else if(WindowsVersion.IsAtLeast(mpt::osinfo::arch::Version::WinVista))
{
HMODULE hKernel32DLL = LoadLibrary(TEXT("kernel32.dll"));
if(hKernel32DLL)

View file

@ -14,7 +14,7 @@
#include "mpt/binary/hex.hpp"
#if MPT_OS_WINDOWS
#include <windows.h>
#include <arch.h>
#endif
@ -34,15 +34,15 @@ namespace Windows
namespace {
struct WindowsVersionCache
{
mpt::osinfo::windows::Version version;
mpt::osinfo::arch::Version version;
WindowsVersionCache() noexcept
: version(mpt::osinfo::windows::Version::Current())
: version(mpt::osinfo::arch::Version::Current())
{
}
};
}
static mpt::osinfo::windows::Version GatherWindowsVersionFromCache() noexcept
static mpt::osinfo::arch::Version GatherWindowsVersionFromCache() noexcept
{
static WindowsVersionCache gs_WindowsVersionCache;
return gs_WindowsVersionCache.version;
@ -51,49 +51,49 @@ static mpt::osinfo::windows::Version GatherWindowsVersionFromCache() noexcept
#endif // MPT_OS_WINDOWS
mpt::osinfo::windows::Version Version::Current() noexcept
mpt::osinfo::arch::Version Version::Current() noexcept
{
#if MPT_OS_WINDOWS
#ifdef MODPLUG_TRACKER
return GatherWindowsVersionFromCache();
#else // !MODPLUG_TRACKER
return mpt::osinfo::windows::Version::Current();
return mpt::osinfo::arch::Version::Current();
#endif // MODPLUG_TRACKER
#else // !MPT_OS_WINDOWS
return mpt::osinfo::windows::Version::NoWindows();
return mpt::osinfo::arch::Version::NoWindows();
#endif // MPT_OS_WINDOWS
}
static constexpr struct { mpt::osinfo::windows::Version version; const mpt::uchar * name; bool showDetails; } versionMap[] =
static constexpr struct { mpt::osinfo::arch::Version version; const mpt::uchar * name; bool showDetails; } versionMap[] =
{
{ mpt::osinfo::windows::Version{ mpt::osinfo::windows::Version::WinNewer, mpt::osinfo::windows::Version::ServicePack{ 0, 0 }, 22000, 0 }, UL_("Windows 11 (or newer)"), false },
{ mpt::osinfo::windows::Version{ mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack{ 0, 0 }, 22000, 0 }, UL_("Windows 11"), true },
{ mpt::osinfo::windows::Version{ mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack{ 0, 0 }, 19044, 0 }, UL_("Windows 10 21H2"), true },
{ mpt::osinfo::windows::Version{ mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack{ 0, 0 }, 19043, 0 }, UL_("Windows 10 21H1"), true },
{ mpt::osinfo::windows::Version{ mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack{ 0, 0 }, 19042, 0 }, UL_("Windows 10 20H2"), true },
{ mpt::osinfo::windows::Version{ mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack{ 0, 0 }, 19041, 0 }, UL_("Windows 10 2004"), true },
{ mpt::osinfo::windows::Version{ mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack{ 0, 0 }, 18363, 0 }, UL_("Windows 10 1909"), true },
{ mpt::osinfo::windows::Version{ mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack{ 0, 0 }, 18362, 0 }, UL_("Windows 10 1903"), true },
{ mpt::osinfo::windows::Version{ mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack{ 0, 0 }, 17763, 0 }, UL_("Windows 10 1809"), true },
{ mpt::osinfo::windows::Version{ mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack{ 0, 0 }, 17134, 0 }, UL_("Windows 10 1803"), true },
{ mpt::osinfo::windows::Version{ mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack{ 0, 0 }, 16299, 0 }, UL_("Windows 10 1709"), true },
{ mpt::osinfo::windows::Version{ mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack{ 0, 0 }, 15063, 0 }, UL_("Windows 10 1703"), true },
{ mpt::osinfo::windows::Version{ mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack{ 0, 0 }, 14393, 0 }, UL_("Windows 10 1607"), true },
{ mpt::osinfo::windows::Version{ mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack{ 0, 0 }, 10586, 0 }, UL_("Windows 10 1511"), true },
{ mpt::osinfo::windows::Version{ mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack{ 0, 0 }, 10240, 0 }, UL_("Windows 10 1507"), true },
{ mpt::osinfo::windows::Version{ mpt::osinfo::windows::Version::Win81, mpt::osinfo::windows::Version::ServicePack{ 0, 0 }, 0, 0 }, UL_("Windows 8.1"), true },
{ mpt::osinfo::windows::Version{ mpt::osinfo::windows::Version::Win8, mpt::osinfo::windows::Version::ServicePack{ 0, 0 }, 0, 0 }, UL_("Windows 8"), true },
{ mpt::osinfo::windows::Version{ mpt::osinfo::windows::Version::Win7, mpt::osinfo::windows::Version::ServicePack{ 0, 0 }, 0, 0 }, UL_("Windows 7"), true },
{ mpt::osinfo::windows::Version{ mpt::osinfo::windows::Version::WinVista, mpt::osinfo::windows::Version::ServicePack{ 0, 0 }, 0, 0 }, UL_("Windows Vista"), true },
{ mpt::osinfo::windows::Version{ mpt::osinfo::windows::Version::WinXP64, mpt::osinfo::windows::Version::ServicePack{ 0, 0 }, 0, 0 }, UL_("Windows XP x64 / Windows Server 2003"), true },
{ mpt::osinfo::windows::Version{ mpt::osinfo::windows::Version::WinXP, mpt::osinfo::windows::Version::ServicePack{ 0, 0 }, 0, 0 }, UL_("Windows XP"), true },
{ mpt::osinfo::windows::Version{ mpt::osinfo::windows::Version::Win2000, mpt::osinfo::windows::Version::ServicePack{ 0, 0 }, 0, 0 }, UL_("Windows 2000"), true },
{ mpt::osinfo::windows::Version{ mpt::osinfo::windows::Version::WinNT4, mpt::osinfo::windows::Version::ServicePack{ 0, 0 }, 0, 0 }, UL_("Windows NT4"), true }
{ mpt::osinfo::arch::Version{ mpt::osinfo::arch::Version::WinNewer, mpt::osinfo::arch::Version::ServicePack{ 0, 0 }, 22000, 0 }, UL_("Windows 11 (or newer)"), false },
{ mpt::osinfo::arch::Version{ mpt::osinfo::arch::Version::Win10, mpt::osinfo::arch::Version::ServicePack{ 0, 0 }, 22000, 0 }, UL_("Windows 11"), true },
{ mpt::osinfo::arch::Version{ mpt::osinfo::arch::Version::Win10, mpt::osinfo::arch::Version::ServicePack{ 0, 0 }, 19044, 0 }, UL_("Windows 10 21H2"), true },
{ mpt::osinfo::arch::Version{ mpt::osinfo::arch::Version::Win10, mpt::osinfo::arch::Version::ServicePack{ 0, 0 }, 19043, 0 }, UL_("Windows 10 21H1"), true },
{ mpt::osinfo::arch::Version{ mpt::osinfo::arch::Version::Win10, mpt::osinfo::arch::Version::ServicePack{ 0, 0 }, 19042, 0 }, UL_("Windows 10 20H2"), true },
{ mpt::osinfo::arch::Version{ mpt::osinfo::arch::Version::Win10, mpt::osinfo::arch::Version::ServicePack{ 0, 0 }, 19041, 0 }, UL_("Windows 10 2004"), true },
{ mpt::osinfo::arch::Version{ mpt::osinfo::arch::Version::Win10, mpt::osinfo::arch::Version::ServicePack{ 0, 0 }, 18363, 0 }, UL_("Windows 10 1909"), true },
{ mpt::osinfo::arch::Version{ mpt::osinfo::arch::Version::Win10, mpt::osinfo::arch::Version::ServicePack{ 0, 0 }, 18362, 0 }, UL_("Windows 10 1903"), true },
{ mpt::osinfo::arch::Version{ mpt::osinfo::arch::Version::Win10, mpt::osinfo::arch::Version::ServicePack{ 0, 0 }, 17763, 0 }, UL_("Windows 10 1809"), true },
{ mpt::osinfo::arch::Version{ mpt::osinfo::arch::Version::Win10, mpt::osinfo::arch::Version::ServicePack{ 0, 0 }, 17134, 0 }, UL_("Windows 10 1803"), true },
{ mpt::osinfo::arch::Version{ mpt::osinfo::arch::Version::Win10, mpt::osinfo::arch::Version::ServicePack{ 0, 0 }, 16299, 0 }, UL_("Windows 10 1709"), true },
{ mpt::osinfo::arch::Version{ mpt::osinfo::arch::Version::Win10, mpt::osinfo::arch::Version::ServicePack{ 0, 0 }, 15063, 0 }, UL_("Windows 10 1703"), true },
{ mpt::osinfo::arch::Version{ mpt::osinfo::arch::Version::Win10, mpt::osinfo::arch::Version::ServicePack{ 0, 0 }, 14393, 0 }, UL_("Windows 10 1607"), true },
{ mpt::osinfo::arch::Version{ mpt::osinfo::arch::Version::Win10, mpt::osinfo::arch::Version::ServicePack{ 0, 0 }, 10586, 0 }, UL_("Windows 10 1511"), true },
{ mpt::osinfo::arch::Version{ mpt::osinfo::arch::Version::Win10, mpt::osinfo::arch::Version::ServicePack{ 0, 0 }, 10240, 0 }, UL_("Windows 10 1507"), true },
{ mpt::osinfo::arch::Version{ mpt::osinfo::arch::Version::Win81, mpt::osinfo::arch::Version::ServicePack{ 0, 0 }, 0, 0 }, UL_("Windows 8.1"), true },
{ mpt::osinfo::arch::Version{ mpt::osinfo::arch::Version::Win8, mpt::osinfo::arch::Version::ServicePack{ 0, 0 }, 0, 0 }, UL_("Windows 8"), true },
{ mpt::osinfo::arch::Version{ mpt::osinfo::arch::Version::Win7, mpt::osinfo::arch::Version::ServicePack{ 0, 0 }, 0, 0 }, UL_("Windows 7"), true },
{ mpt::osinfo::arch::Version{ mpt::osinfo::arch::Version::WinVista, mpt::osinfo::arch::Version::ServicePack{ 0, 0 }, 0, 0 }, UL_("Windows Vista"), true },
{ mpt::osinfo::arch::Version{ mpt::osinfo::arch::Version::WinXP64, mpt::osinfo::arch::Version::ServicePack{ 0, 0 }, 0, 0 }, UL_("Windows XP x64 / Windows Server 2003"), true },
{ mpt::osinfo::arch::Version{ mpt::osinfo::arch::Version::WinXP, mpt::osinfo::arch::Version::ServicePack{ 0, 0 }, 0, 0 }, UL_("Windows XP"), true },
{ mpt::osinfo::arch::Version{ mpt::osinfo::arch::Version::Win2000, mpt::osinfo::arch::Version::ServicePack{ 0, 0 }, 0, 0 }, UL_("Windows 2000"), true },
{ mpt::osinfo::arch::Version{ mpt::osinfo::arch::Version::WinNT4, mpt::osinfo::arch::Version::ServicePack{ 0, 0 }, 0, 0 }, UL_("Windows NT4"), true }
};
mpt::ustring Version::GetName(mpt::osinfo::windows::Version version)
mpt::ustring Version::GetName(mpt::osinfo::arch::Version version)
{
mpt::ustring name = U_("Generic Windows NT");
bool showDetails = false;
@ -150,26 +150,26 @@ mpt::ustring Version::GetName(mpt::osinfo::windows::Version version)
}
mpt::osinfo::windows::Version Version::GetMinimumKernelLevel() noexcept
mpt::osinfo::arch::Version Version::GetMinimumKernelLevel() noexcept
{
uint64 minimumKernelVersion = 0;
#if MPT_OS_WINDOWS && MPT_COMPILER_MSVC
#if defined(MPT_BUILD_RETRO)
minimumKernelVersion = std::max(minimumKernelVersion, static_cast<uint64>(mpt::osinfo::windows::Version::WinXP));
minimumKernelVersion = std::max(minimumKernelVersion, static_cast<uint64>(mpt::osinfo::arch::Version::WinXP));
#else
minimumKernelVersion = std::max(minimumKernelVersion, static_cast<uint64>(mpt::osinfo::windows::Version::WinVista));
minimumKernelVersion = std::max(minimumKernelVersion, static_cast<uint64>(mpt::osinfo::arch::Version::WinVista));
#endif
#endif
return mpt::osinfo::windows::Version(mpt::osinfo::windows::Version::System(minimumKernelVersion), mpt::osinfo::windows::Version::ServicePack(0, 0), 0, 0);
return mpt::osinfo::arch::Version(mpt::osinfo::arch::Version::System(minimumKernelVersion), mpt::osinfo::arch::Version::ServicePack(0, 0), 0, 0);
}
mpt::osinfo::windows::Version Version::GetMinimumAPILevel() noexcept
mpt::osinfo::arch::Version Version::GetMinimumAPILevel() noexcept
{
#if MPT_OS_WINDOWS
return mpt::osinfo::windows::Version::FromSDK();
return mpt::osinfo::arch::Version::FromSDK();
#else // !MPT_OS_WINDOWS
return mpt::osinfo::windows::Version::NoWindows();
return mpt::osinfo::arch::Version::NoWindows();
#endif // MPT_OS_WINDOWS
}
@ -451,7 +451,7 @@ Version::Version()
Version::Version(const mpt::ustring &rawVersion)
: mpt::osinfo::windows::wine::version()
: mpt::osinfo::arch::wine::version()
{
if(rawVersion.empty())
{
@ -480,7 +480,7 @@ Version::Version(const mpt::ustring &rawVersion)
Version::Version(uint8 vmajor, uint8 vminor, uint8 vupdate)
: mpt::osinfo::windows::wine::version(vmajor, vminor, vupdate)
: mpt::osinfo::arch::wine::version(vmajor, vminor, vupdate)
{
return;
}

View file

@ -14,7 +14,7 @@
#include "mpt/library/library.hpp"
#include "mpt/osinfo/class.hpp"
#include "mpt/osinfo/windows_version.hpp"
#include "mpt/osinfo/arch_version.hpp"
OPENMPT_NAMESPACE_BEGIN
@ -30,24 +30,24 @@ namespace Windows
namespace Version
{
inline constexpr auto WinNT4 = mpt::osinfo::windows::Version::WinNT4;
inline constexpr auto Win2000 = mpt::osinfo::windows::Version::Win2000;
inline constexpr auto WinXP = mpt::osinfo::windows::Version::WinXP;
inline constexpr auto WinXP64 = mpt::osinfo::windows::Version::WinXP64;
inline constexpr auto WinVista = mpt::osinfo::windows::Version::WinVista;
inline constexpr auto Win7 = mpt::osinfo::windows::Version::Win7;
inline constexpr auto Win8 = mpt::osinfo::windows::Version::Win8;
inline constexpr auto Win81 = mpt::osinfo::windows::Version::Win81;
inline constexpr auto Win10 = mpt::osinfo::windows::Version::Win10;
inline constexpr auto WinNewer = mpt::osinfo::windows::Version::WinNewer;
inline constexpr auto WinNT4 = mpt::osinfo::arch::Version::WinNT4;
inline constexpr auto Win2000 = mpt::osinfo::arch::Version::Win2000;
inline constexpr auto WinXP = mpt::osinfo::arch::Version::WinXP;
inline constexpr auto WinXP64 = mpt::osinfo::arch::Version::WinXP64;
inline constexpr auto WinVista = mpt::osinfo::arch::Version::WinVista;
inline constexpr auto Win7 = mpt::osinfo::arch::Version::Win7;
inline constexpr auto Win8 = mpt::osinfo::arch::Version::Win8;
inline constexpr auto Win81 = mpt::osinfo::arch::Version::Win81;
inline constexpr auto Win10 = mpt::osinfo::arch::Version::Win10;
inline constexpr auto WinNewer = mpt::osinfo::arch::Version::WinNewer;
mpt::osinfo::windows::Version Current() noexcept;
mpt::osinfo::arch::Version Current() noexcept;
mpt::ustring GetName(mpt::osinfo::windows::Version version);
mpt::ustring GetNameShort(mpt::osinfo::windows::Version version);
mpt::ustring GetName(mpt::osinfo::arch::Version version);
mpt::ustring GetNameShort(mpt::osinfo::arch::Version version);
mpt::osinfo::windows::Version GetMinimumKernelLevel() noexcept;
mpt::osinfo::windows::Version GetMinimumAPILevel() noexcept;
mpt::osinfo::arch::Version GetMinimumKernelLevel() noexcept;
mpt::osinfo::arch::Version GetMinimumAPILevel() noexcept;
} // namespace Version
@ -119,7 +119,7 @@ namespace Wine
{
class Version
: public mpt::osinfo::windows::wine::version
: public mpt::osinfo::arch::wine::version
{
public:
Version();

View file

@ -16,7 +16,7 @@
#include "mptBaseTypes.h"
#if MPT_OS_WINDOWS
#include <windows.h>
#include <arch.h>
#endif // MPT_OS_WINDOWS

View file

@ -18,7 +18,7 @@
#include <map>
#if MPT_OS_WINDOWS
#include <windows.h>
#include <arch.h>
#endif
@ -124,19 +124,19 @@ Context::Context(mpt::OS::Wine::VersionContext versionContext)
}
std::string Context::PathToPosix(mpt::PathString windowsPath)
std::string Context::PathToPosix(mpt::PathString archPath)
{
std::string result;
if(windowsPath.empty())
if(archPath.empty())
{
return result;
}
if(windowsPath.Length() >= 32000)
if(archPath.Length() >= 32000)
{
throw mpt::Wine::Exception("Path too long.");
}
LPSTR tmp = nullptr;
tmp = wine_get_unix_file_name(windowsPath.ToWide().c_str());
tmp = wine_get_unix_file_name(archPath.ToWide().c_str());
if(!tmp)
{
throw mpt::Wine::Exception("Wine kernel32.dll:wine_get_unix_file_name failed.");
@ -170,10 +170,10 @@ mpt::PathString Context::PathToWindows(std::string hostPath)
return result;
}
std::string Context::PathToPosixCanonical(mpt::PathString windowsPath)
std::string Context::PathToPosixCanonical(mpt::PathString archPath)
{
std::string result;
std::string hostPath = PathToPosix(windowsPath);
std::string hostPath = PathToPosix(archPath);
if(hostPath.empty())
{
return result;

View file

@ -103,11 +103,11 @@ public:
Context(mpt::OS::Wine::VersionContext versionContext);
public:
std::string EscapePosixShell(std::string line);
std::string PathToPosix(mpt::PathString windowsPath);
std::string PathToPosix(mpt::PathString archPath);
mpt::PathString PathToWindows(std::string hostPath);
ExecResult ExecutePosixShellScript(std::string script, FlagSet<ExecFlags> flags, std::map<std::string, std::vector<char> > filetree, std::string title, ExecutePosixCommandProgress progress, ExecutePosixShellScriptProgress progressCancel, void *userdata);
int ExecutePosixShellCommand(std::string command, std::string & output, std::string & error);
std::string PathToPosixCanonical(mpt::PathString windowsPath);
std::string PathToPosixCanonical(mpt::PathString archPath);
std::string GetPosixEnvVar(std::string var, std::string def = std::string());
public:
mpt::OS::Wine::VersionContext VersionContext() const { return m_VersionContext; }