diff --git a/Source/DasherVR/DasherVR.Build.cs b/Source/DasherVR/DasherVR.Build.cs index 9e9656a4f990937515548e0053d9d94cec02365a..d7f74ec1345122dd45a9b6295a765488486a4eb4 100644 --- a/Source/DasherVR/DasherVR.Build.cs +++ b/Source/DasherVR/DasherVR.Build.cs @@ -26,7 +26,7 @@ public class DasherVR : ModuleRules { "Core", "Dasher", - "InputCore", + "InputCore", "DeveloperSettings" // ... add other public dependencies that you statically link with here ... } diff --git a/Source/DasherVR/Private/DasherFileUtils.cpp b/Source/DasherVR/Private/DasherFileUtils.cpp index 095ebd51fb7f984bb094239b2772861ca1779b70..8f346a33bc02e3dee5e606b181ea025213995991 100644 --- a/Source/DasherVR/Private/DasherFileUtils.cpp +++ b/Source/DasherVR/Private/DasherFileUtils.cpp @@ -1,5 +1,5 @@ #include "CoreMinimal.h" -#include "FileUtils.h" +#include "DasherCoreWrapper.h" #include "HAL/FileManagerGeneric.h" #include "Misc/FileHelper.h" @@ -13,25 +13,30 @@ namespace Dasher //This doesn't actually Parse all files with the pattern, just the file with exactly the name strPattern in the Project directory void FileUtils::ScanFiles(AbstractParser* parser, const std::string& strPattern) { - const FString SearchPath = FPaths::ConvertRelativePathToFull(FPaths::ProjectDir(), TEXT("DasherResources")); + const TArray<FString> SearchPaths = { + FPaths::ConvertRelativePathToFull(FPaths::ProjectDir()), + FPaths::ConvertRelativePathToFull(FPaths::ProjectDir(), TEXT("DasherResources")) + }; - //Check for explicit file - if(IFileManager::Get().FileExists(*FPaths::Combine(SearchPath, FString(strPattern.c_str())))) - { - parser->ParseFile(TCHAR_TO_UTF8(*FPaths::Combine(SearchPath, FString(strPattern.c_str()))), true); - return; - } + for(FString SearchPath : SearchPaths){ + //Check for explicit file + if(IFileManager::Get().FileExists(*FPaths::Combine(SearchPath, FString(strPattern.c_str())))) + { + parser->ParseFile(TCHAR_TO_UTF8(*FPaths::Combine(SearchPath, FString(strPattern.c_str()))), true); + return; + } - //Search files - TArray<FString> Filenames; - IFileManager::Get().FindFiles(Filenames, *SearchPath); - FString alteredPattern = FString(strPattern.c_str()).Replace(TEXT("*"), TEXT(".*")); + //Search files + TArray<FString> Filenames; + IFileManager::Get().FindFiles(Filenames, *SearchPath); + FString alteredPattern = FString(strPattern.c_str()).Replace(TEXT("*"), TEXT(".*")); - for(FString Filename : Filenames) - { - if(FRegexMatcher(FRegexPattern(alteredPattern), Filename).FindNext()) + for(FString Filename : Filenames) { - parser->ParseFile(TCHAR_TO_UTF8(*FPaths::Combine(SearchPath, Filename)), true); + if(FRegexMatcher(FRegexPattern(alteredPattern), Filename).FindNext()) + { + parser->ParseFile(TCHAR_TO_UTF8(*FPaths::Combine(SearchPath, Filename)), true); + } } } } @@ -39,7 +44,9 @@ namespace Dasher bool FileUtils::WriteUserDataFile(const std::string& filename, const std::string& strNewText, bool append) { if (strNewText.length() == 0) return true; - return FFileHelper::SaveStringToFile(FString(strNewText.c_str()), UTF8_TO_TCHAR(filename.c_str()), FFileHelper::EEncodingOptions::AutoDetect, &IFileManager::Get(), (append) ? FILEWRITE_Append : FILEWRITE_None); + FString Path = FString(filename.c_str()); + if(FPaths::IsRelative(Path)) Path = UTF8_TO_TCHAR(GetFullFilenamePath(filename).c_str()); + return FFileHelper::SaveStringToFile(FString(strNewText.c_str()), *Path, FFileHelper::EEncodingOptions::AutoDetect, &IFileManager::Get(), (append) ? FILEWRITE_Append : FILEWRITE_None); } std::string FileUtils::GetFullFilenamePath(const std::string strFilename){ diff --git a/Source/DasherVR/Private/SDasherWidget.cpp b/Source/DasherVR/Private/SDasherWidget.cpp index e14114a028f7487e3a6bcaadc913f3879fb0d472..4dd7f642a0335a1a8e7e76ff283a5dd698fa0afa 100644 --- a/Source/DasherVR/Private/SDasherWidget.cpp +++ b/Source/DasherVR/Private/SDasherWidget.cpp @@ -113,7 +113,7 @@ void SDasherWidget::Construct(const FArguments& InArgs) //Setting up Dasher static Dasher::XMLErrorDisplay display; - Dasher::XmlSettingsStore* Settings = new Dasher::XmlSettingsStore("Settings.xml"/*, &fileUtils*/, &display); //Gets deleted somewhere else + Dasher::XmlSettingsStore* Settings = new Dasher::XmlSettingsStore("Settings.xml", &display); //Gets deleted somewhere else Settings->Load(); Settings->Save(); DasherMainInterface = MakeShared<Dasher::DasherInterface>(Settings); @@ -122,7 +122,7 @@ void SDasherWidget::Construct(const FArguments& InArgs) DasherMainInterface->SetBoolParameter(BP_AUTO_SPEEDCONTROL, false); //Auto Speed Control DasherMainInterface->SetLongParameter(LP_DASHER_FONTSIZE, 18); DasherMainInterface->SetLongParameter(LP_MAX_BITRATE, 400); //Maximum Speed - DasherMainInterface->SetStringParameter(SP_INPUT_FILTER, "Stylus Control"); //On Hold + //DasherMainInterface->SetStringParameter(SP_INPUT_FILTER, "Stylus Control"); //On Hold DasherMainInterface->SetStringParameter(SP_ALPHABET_ID, "German without punctuation"); DasherMainInterface->SetLongParameter(LP_MIN_NODE_SIZE, 15); diff --git a/Source/DasherVR/Private/UDasherWidget.cpp b/Source/DasherVR/Private/UDasherWidget.cpp index e26fdb532edace3d85dc3c1f607649e4e0cc1de9..29031715ffeb8bf132a0e7b038f7b8eeec9bfcec 100644 --- a/Source/DasherVR/Private/UDasherWidget.cpp +++ b/Source/DasherVR/Private/UDasherWidget.cpp @@ -59,6 +59,7 @@ FString UDasherWidget::GetBuffer() void UDasherWidget::ResetBuffer() { DasherScreen->ResetBuffer(); + BufferAltered.Broadcast(""); } void UDasherWidget::StartTraining(FString PathToTextFile) diff --git a/Source/DasherVR/Public/DasherCoreWrapper.h b/Source/DasherVR/Public/DasherCoreWrapper.h index acf89e9705e0c98dab75c36b0f4ad2d1e16df6d3..97bc90fcf8725524f5afea1ad44e0a11bc8bdd08 100644 --- a/Source/DasherVR/Public/DasherCoreWrapper.h +++ b/Source/DasherVR/Public/DasherCoreWrapper.h @@ -14,17 +14,18 @@ THIRD_PARTY_INCLUDES_START //included first to stop linker errors - #include "SettingsStore.h" - #include "AbstractXMLParser.h" - #include "DasherInterfaceBase.h" - #include "DasherScreen.h" - #include "DashIntfScreenMsgs.h" - #include "DasherInput.h" - #include "UserLog.h" - #include "XmlSettingsStore.h" - #include "Messages.h" - #include "ModuleManager.h" - #include "AppSettingsHeader.h" + #include "DasherCore/SettingsStore.h" + #include "DasherCore/AbstractXMLParser.h" + #include "DasherCore/DasherInterfaceBase.h" + #include "DasherCore/FileUtils.h" + #include "DasherCore/DasherScreen.h" + #include "DasherCore/DashIntfScreenMsgs.h" + #include "DasherCore/DasherInput.h" + #include "DasherCore/UserLog.h" + #include "DasherCore/XmlSettingsStore.h" + #include "DasherCore/Messages.h" + #include "DasherCore/ModuleManager.h" + #include "Common/AppSettingsHeader.h" THIRD_PARTY_INCLUDES_END #if PLATFORM_LINUX #pragma clang diagnostic push diff --git a/Source/Thirdparty/CMakeLists.txt b/Source/Thirdparty/CMakeLists.txt index d3216b98683de4053361cb4cb9b4a2a79b005124..4c001d32bb46711687653f3ba04b89fd51750962 100644 --- a/Source/Thirdparty/CMakeLists.txt +++ b/Source/Thirdparty/CMakeLists.txt @@ -51,9 +51,12 @@ include(${CMAKE_CURRENT_SOURCE_DIR}/Dasher/DasherCore/CMakeLists.txt) #Install header files during make install ############################################################################################################ set(CMAKE_BUILD_TYPE Release) -set_target_properties(DasherCore PROPERTIES PREFIX "") -set_target_properties(DasherCore PROPERTIES OUTPUT_NAME "DasherCore") -set_target_properties(DasherCore PROPERTIES ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${PROJECT_BINARY_DIR}/../Dasher/Lib) +set_target_properties(DasherCore PROPERTIES PREFIX "") +set_target_properties(DasherCore PROPERTIES OUTPUT_NAME "DasherCore") +set_target_properties(DasherCore PROPERTIES ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/Dasher/Lib) +set_target_properties(DasherCore PROPERTIES ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_CURRENT_SOURCE_DIR}/Dasher/Lib) +set_target_properties(pugixml-static PROPERTIES ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/Dasher/Lib) +set_target_properties(pugixml-static PROPERTIES ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_CURRENT_SOURCE_DIR}/Dasher/Lib) if(WIN32) set_target_properties(DasherCore PROPERTIES MSVC_RUNTIME_LIBRARY MultiThreaded) diff --git a/Source/Thirdparty/Dasher/Dasher.Build.cs b/Source/Thirdparty/Dasher/Dasher.Build.cs index fd0d3f918403627286c52a31b980824e8c3ded41..fbaf4ffc6ef0f8aa75057032b7366e932ea0025b 100644 --- a/Source/Thirdparty/Dasher/Dasher.Build.cs +++ b/Source/Thirdparty/Dasher/Dasher.Build.cs @@ -12,38 +12,30 @@ public class Dasher : ModuleRules Type = ModuleType.External; PrivateDefinitions.Add("HAVE_OWN_FILEUTILS"); - - PublicIncludePaths.AddRange(new string[] {}); - - - PrivateIncludePaths.AddRange(new string[] {}); + PublicDefinitions.Add("HAVE_ROUND=1"); - PublicDependencyModuleNames.AddRange(new string[]{"Core"}); - - - PrivateDependencyModuleNames.AddRange( + PublicDependencyModuleNames.AddRange( new string[] { + "Core", "CoreUObject", "Engine", "Slate", "SlateCore" } - ); - - PublicDefinitions.Add("HAVE_ROUND=1"); + ); DynamicallyLoadedModuleNames.AddRange(new string[]{}); - + PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "DasherCore")); PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "DasherCore", "Src")); - PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "DasherCore", "Src", "Common")); + PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "DasherCore", "Src", "Common")); PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "DasherCore", "Src", "Common", "Allocators")); PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "DasherCore", "Src", "Common", "Platform")); PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "DasherCore", "Src", "Common", "Unicode")); - PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "DasherCore", "Src", "DasherCore")); - PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "DasherCore", "Src", "DasherCore", "Alphabet")); + PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "DasherCore", "Src", "DasherCore")); + PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "DasherCore", "Src", "DasherCore", "Alphabet")); PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "DasherCore", "Src", "DasherCore", "LanguageModelling")); PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "DasherCore", "Thirdparty", "pugixml", "src")); diff --git a/Source/Thirdparty/Dasher/DasherCore b/Source/Thirdparty/Dasher/DasherCore index 64c1349282b38d9fa4ddde9c04311ed45d689598..a94a47badf40d9b7f7e8c80c08b015c41d1ecc90 160000 --- a/Source/Thirdparty/Dasher/DasherCore +++ b/Source/Thirdparty/Dasher/DasherCore @@ -1 +1 @@ -Subproject commit 64c1349282b38d9fa4ddde9c04311ed45d689598 +Subproject commit a94a47badf40d9b7f7e8c80c08b015c41d1ecc90 diff --git a/Source/Thirdparty/Dasher/Lib/DasherCore.lib b/Source/Thirdparty/Dasher/Lib/DasherCore.lib index 4795fb8055a9734e55dcb5221cc39ab435da30a5..649532f6b3811d45e73e539ecfa9f151629881ba 100644 --- a/Source/Thirdparty/Dasher/Lib/DasherCore.lib +++ b/Source/Thirdparty/Dasher/Lib/DasherCore.lib @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4e82346aa89a5ca870402e023dfc5bd9b8177ded44f48ce21cd2b4f91706c49a -size 8366106 +oid sha256:d51488c01a9dd197c65a23d33c65ff5f7f0cbf9853d0f9d634fa31423f90d56c +size 17686042 diff --git a/Source/Thirdparty/Dasher/Lib/DasherCore.pdb b/Source/Thirdparty/Dasher/Lib/DasherCore.pdb index bcca2c35111a9b9734e3c5f6dbcff3d3feec07fd..f6044a85dcead2424134c4c7695360f57f29db1e 100644 Binary files a/Source/Thirdparty/Dasher/Lib/DasherCore.pdb and b/Source/Thirdparty/Dasher/Lib/DasherCore.pdb differ diff --git a/Source/Thirdparty/Dasher/Lib/pugixml.lib b/Source/Thirdparty/Dasher/Lib/pugixml.lib index 30f404a0edfac9f7f11df566e7824433a7ae29d1..cce3a4936cd35ce16565522cefeb54f99f96efc2 100644 --- a/Source/Thirdparty/Dasher/Lib/pugixml.lib +++ b/Source/Thirdparty/Dasher/Lib/pugixml.lib @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9058b270bd4951d95bd56f6e08bae9ed254b9343643566695236ec65a135360e -size 708098 +oid sha256:af6d87774854f597e9a3dc390060d76ab870e9dde54b5935d8029e336ac2eed2 +size 1463018 diff --git a/Source/Thirdparty/Dasher/Lib/pugixml.pdb b/Source/Thirdparty/Dasher/Lib/pugixml.pdb new file mode 100644 index 0000000000000000000000000000000000000000..dc52d69d6d2a95beb29cb8419f2dadf1eb8b7be3 Binary files /dev/null and b/Source/Thirdparty/Dasher/Lib/pugixml.pdb differ