From fbdb18b355dde7660f1f9067e3cc13c9b65c8b7b Mon Sep 17 00:00:00 2001 From: Kai Blaschke Date: Thu, 12 Sep 2024 18:39:49 +0200 Subject: [PATCH] Move FileParser to main directory. Makes it easier to reuse for loading sprites. --- src/libprojectM/CMakeLists.txt | 2 ++ src/libprojectM/MilkdropPreset/CMakeLists.txt | 2 -- src/libprojectM/MilkdropPreset/CustomShape.cpp | 2 +- src/libprojectM/MilkdropPreset/CustomShape.hpp | 2 +- src/libprojectM/MilkdropPreset/CustomWaveform.cpp | 2 +- src/libprojectM/MilkdropPreset/CustomWaveform.hpp | 5 +++-- src/libprojectM/MilkdropPreset/MilkdropPreset.cpp | 6 +++--- src/libprojectM/MilkdropPreset/MilkdropPreset.hpp | 5 +++-- src/libprojectM/MilkdropPreset/PresetState.cpp | 2 +- src/libprojectM/MilkdropPreset/PresetState.hpp | 6 ++++-- src/libprojectM/{MilkdropPreset => }/PresetFileParser.cpp | 3 --- src/libprojectM/{MilkdropPreset => }/PresetFileParser.hpp | 2 -- tests/libprojectM/PresetFileParserTest.cpp | 4 ++-- 13 files changed, 21 insertions(+), 22 deletions(-) rename src/libprojectM/{MilkdropPreset => }/PresetFileParser.cpp (98%) rename src/libprojectM/{MilkdropPreset => }/PresetFileParser.hpp (98%) diff --git a/src/libprojectM/CMakeLists.txt b/src/libprojectM/CMakeLists.txt index 134850496..6aed65fd1 100644 --- a/src/libprojectM/CMakeLists.txt +++ b/src/libprojectM/CMakeLists.txt @@ -17,6 +17,8 @@ add_library(projectM_main OBJECT PresetFactory.hpp PresetFactoryManager.cpp PresetFactoryManager.hpp + PresetFileParser.cpp + PresetFileParser.hpp ProjectM.cpp ProjectM.hpp ProjectMCWrapper.cpp diff --git a/src/libprojectM/MilkdropPreset/CMakeLists.txt b/src/libprojectM/MilkdropPreset/CMakeLists.txt index 8dfb147ad..6f54abf4f 100644 --- a/src/libprojectM/MilkdropPreset/CMakeLists.txt +++ b/src/libprojectM/MilkdropPreset/CMakeLists.txt @@ -75,8 +75,6 @@ add_library(MilkdropPreset OBJECT PerPixelContext.hpp PerPixelMesh.cpp PerPixelMesh.hpp - PresetFileParser.cpp - PresetFileParser.hpp PresetState.cpp PresetState.hpp ShapePerFrameContext.cpp diff --git a/src/libprojectM/MilkdropPreset/CustomShape.cpp b/src/libprojectM/MilkdropPreset/CustomShape.cpp index 80d440f6a..9eaef3784 100644 --- a/src/libprojectM/MilkdropPreset/CustomShape.cpp +++ b/src/libprojectM/MilkdropPreset/CustomShape.cpp @@ -72,7 +72,7 @@ void CustomShape::InitVertexAttrib() glBufferData(GL_ARRAY_BUFFER, sizeof(Point) * vertexData.size(), vertexData.data(), GL_STREAM_DRAW); } -void CustomShape::Initialize(PresetFileParser& parsedFile, int index) +void CustomShape::Initialize(::libprojectM::PresetFileParser& parsedFile, int index) { std::string const shapecodePrefix = "shapecode_" + std::to_string(index) + "_"; diff --git a/src/libprojectM/MilkdropPreset/CustomShape.hpp b/src/libprojectM/MilkdropPreset/CustomShape.hpp index 5ecb23eb0..ea59d34e4 100644 --- a/src/libprojectM/MilkdropPreset/CustomShape.hpp +++ b/src/libprojectM/MilkdropPreset/CustomShape.hpp @@ -33,7 +33,7 @@ public: * @param parsedFile The file parser with the preset data. * @param index The waveform index. */ - void Initialize(PresetFileParser& parsedFile, int index); + void Initialize(::libprojectM::PresetFileParser& parsedFile, int index); /** * @brief Compiles all code blocks and runs the init expression. diff --git a/src/libprojectM/MilkdropPreset/CustomWaveform.cpp b/src/libprojectM/MilkdropPreset/CustomWaveform.cpp index f264ec8b3..9f046d533 100644 --- a/src/libprojectM/MilkdropPreset/CustomWaveform.cpp +++ b/src/libprojectM/MilkdropPreset/CustomWaveform.cpp @@ -36,7 +36,7 @@ void CustomWaveform::InitVertexAttrib() glBufferData(GL_ARRAY_BUFFER, sizeof(ColoredPoint) * vertexData.size(), vertexData.data(), GL_STREAM_DRAW); } -void CustomWaveform::Initialize(PresetFileParser& parsedFile, int index) +void CustomWaveform::Initialize(::libprojectM::PresetFileParser& parsedFile, int index) { std::string const wavecodePrefix = "wavecode_" + std::to_string(index) + "_"; std::string const wavePrefix = "wave_" + std::to_string(index) + "_"; diff --git a/src/libprojectM/MilkdropPreset/CustomWaveform.hpp b/src/libprojectM/MilkdropPreset/CustomWaveform.hpp index 363c27345..31d2bfae0 100644 --- a/src/libprojectM/MilkdropPreset/CustomWaveform.hpp +++ b/src/libprojectM/MilkdropPreset/CustomWaveform.hpp @@ -8,10 +8,11 @@ #include namespace libprojectM { -namespace MilkdropPreset { class PresetFileParser; +namespace MilkdropPreset { + class CustomWaveform : public Renderer::RenderItem { public: @@ -32,7 +33,7 @@ public: * @param parsedFile The file parser with the preset data. * @param index The waveform index. */ - void Initialize(PresetFileParser& parsedFile, int index); + void Initialize(::libprojectM::PresetFileParser& parsedFile, int index); /** * @brief Compiles all code blocks and runs the init expression. diff --git a/src/libprojectM/MilkdropPreset/MilkdropPreset.cpp b/src/libprojectM/MilkdropPreset/MilkdropPreset.cpp index 00023d1fa..fe2d83793 100755 --- a/src/libprojectM/MilkdropPreset/MilkdropPreset.cpp +++ b/src/libprojectM/MilkdropPreset/MilkdropPreset.cpp @@ -207,7 +207,7 @@ void MilkdropPreset::Load(const std::string& pathname) SetFilename(ParseFilename(pathname)); - PresetFileParser parser; + ::libprojectM::PresetFileParser parser; if (!parser.Read(pathname)) { @@ -226,7 +226,7 @@ void MilkdropPreset::Load(std::istream& stream) std::cerr << "[Preset] Loading preset from stream." << std::endl; #endif - PresetFileParser parser; + ::libprojectM::PresetFileParser parser; if (!parser.Read(stream)) { @@ -239,7 +239,7 @@ void MilkdropPreset::Load(std::istream& stream) InitializePreset(parser); } -void MilkdropPreset::InitializePreset(PresetFileParser& parsedFile) +void MilkdropPreset::InitializePreset(::libprojectM::PresetFileParser& parsedFile) { // Create the offscreen rendering surfaces. m_motionVectorUVMap = std::make_shared(GL_RG16F, GL_RG, GL_FLOAT, 0, 0); diff --git a/src/libprojectM/MilkdropPreset/MilkdropPreset.hpp b/src/libprojectM/MilkdropPreset/MilkdropPreset.hpp index cd55339a9..f7eb47bf3 100644 --- a/src/libprojectM/MilkdropPreset/MilkdropPreset.hpp +++ b/src/libprojectM/MilkdropPreset/MilkdropPreset.hpp @@ -45,10 +45,11 @@ #include namespace libprojectM { +class PresetFileParser; + namespace MilkdropPreset { class Factory; -class PresetFileParser; class MilkdropPreset : public ::libprojectM::Preset { @@ -93,7 +94,7 @@ private: void Load(std::istream& stream); - void InitializePreset(PresetFileParser& parsedFile); + void InitializePreset(::libprojectM::PresetFileParser& parsedFile); void CompileCodeAndRunInitExpressions(); diff --git a/src/libprojectM/MilkdropPreset/PresetState.cpp b/src/libprojectM/MilkdropPreset/PresetState.cpp index 71989fe61..1838269cd 100644 --- a/src/libprojectM/MilkdropPreset/PresetState.cpp +++ b/src/libprojectM/MilkdropPreset/PresetState.cpp @@ -33,7 +33,7 @@ PresetState::~PresetState() projectm_eval_memory_buffer_destroy(globalMemory); } -void PresetState::Initialize(PresetFileParser& parsedFile) +void PresetState::Initialize(::libprojectM::PresetFileParser& parsedFile) { // General: diff --git a/src/libprojectM/MilkdropPreset/PresetState.hpp b/src/libprojectM/MilkdropPreset/PresetState.hpp index 57b5faecf..68fef489d 100644 --- a/src/libprojectM/MilkdropPreset/PresetState.hpp +++ b/src/libprojectM/MilkdropPreset/PresetState.hpp @@ -20,10 +20,12 @@ #include namespace libprojectM { -namespace MilkdropPreset { class PresetFileParser; +namespace MilkdropPreset { + + using BlendableFloat = float; //!< Currently a placeholder to mark blendable values. /** @@ -43,7 +45,7 @@ public: * @brief Loads the initial values and code from the preset file. * @param parsedFile The file parser with the preset data. */ - void Initialize(PresetFileParser& parsedFile); + void Initialize(::libprojectM::PresetFileParser& parsedFile); /** * @brief Loads or compiles the generic shaders. diff --git a/src/libprojectM/MilkdropPreset/PresetFileParser.cpp b/src/libprojectM/PresetFileParser.cpp similarity index 98% rename from src/libprojectM/MilkdropPreset/PresetFileParser.cpp rename to src/libprojectM/PresetFileParser.cpp index 5a88d9915..4d665b2b4 100644 --- a/src/libprojectM/MilkdropPreset/PresetFileParser.cpp +++ b/src/libprojectM/PresetFileParser.cpp @@ -2,12 +2,10 @@ #include #include -#include #include #include namespace libprojectM { -namespace MilkdropPreset { auto PresetFileParser::Read(const std::string& presetFile) -> bool { @@ -178,5 +176,4 @@ void PresetFileParser::ParseLine(const std::string& line) } } -} // namespace MilkdropPreset } // namespace libprojectM diff --git a/src/libprojectM/MilkdropPreset/PresetFileParser.hpp b/src/libprojectM/PresetFileParser.hpp similarity index 98% rename from src/libprojectM/MilkdropPreset/PresetFileParser.hpp rename to src/libprojectM/PresetFileParser.hpp index cd2e00659..195b69061 100644 --- a/src/libprojectM/MilkdropPreset/PresetFileParser.hpp +++ b/src/libprojectM/PresetFileParser.hpp @@ -4,7 +4,6 @@ #include namespace libprojectM { -namespace MilkdropPreset { /** * @brief Milkdrop preset file parser @@ -121,5 +120,4 @@ private: ValueMap m_presetValues; //!< Map with preset keys and their value. }; -} // namespace MilkdropPreset } // namespace libprojectM diff --git a/tests/libprojectM/PresetFileParserTest.cpp b/tests/libprojectM/PresetFileParserTest.cpp index 25cd69201..1c6fc27f6 100644 --- a/tests/libprojectM/PresetFileParserTest.cpp +++ b/tests/libprojectM/PresetFileParserTest.cpp @@ -1,10 +1,10 @@ #include -#include +#include static constexpr auto fileParserTestDataPath{ PROJECTM_TEST_DATA_DIR "/PresetFileParser/" }; -using libprojectM::MilkdropPreset::PresetFileParser; +using libprojectM::PresetFileParser; /** * Class to make protected function accessible to tests.