diff --git a/src/nostalgia/modules/CMakeLists.txt b/src/nostalgia/modules/CMakeLists.txt index dc911253..2a26b349 100644 --- a/src/nostalgia/modules/CMakeLists.txt +++ b/src/nostalgia/modules/CMakeLists.txt @@ -1,6 +1,7 @@ # module dir list add_subdirectory(gfx) +add_subdirectory(sound) add_subdirectory(scene) # module libraries @@ -13,7 +14,7 @@ add_library( target_link_libraries( NostalgiaKeelModules PUBLIC Keel - NostalgiaCore-Keel + NostalgiaGfx-Keel NostalgiaScene-Keel ) install( @@ -32,7 +33,8 @@ if(NOSTALGIA_BUILD_STUDIO) target_link_libraries( NostalgiaStudioModules PUBLIC StudioAppLib - NostalgiaCore-Studio-ImGui + NostalgiaGfx-Studio-ImGui + NostalgiaSound-Studio-ImGui NostalgiaScene-Studio ) install( diff --git a/src/nostalgia/modules/gfx/include/nostalgia/gfx/tilesheet.hpp b/src/nostalgia/modules/gfx/include/nostalgia/gfx/tilesheet.hpp index 8a6bdabb..f1b6031d 100644 --- a/src/nostalgia/modules/gfx/include/nostalgia/gfx/tilesheet.hpp +++ b/src/nostalgia/modules/gfx/include/nostalgia/gfx/tilesheet.hpp @@ -449,7 +449,7 @@ TileSheet::SubSheet &getSubSheet( std::size_t idxIt, TileSheet::SubSheet &pSubsheet) noexcept; -#if defined(__GNUC__) && __GNUC__ >= 14 +#if defined(__GNUC__) && __GNUC__ >= 13 #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdangling-reference" #endif @@ -458,7 +458,7 @@ TileSheet::SubSheet const&getSubSheet(TileSheet const&ts, ox::SpanView [[nodiscard]] TileSheet::SubSheet &getSubSheet(TileSheet &ts, ox::SpanView const &idx) noexcept; -#if defined(__GNUC__) && __GNUC__ >= 14 +#if defined(__GNUC__) && __GNUC__ >= 13 #pragma GCC diagnostic pop #endif diff --git a/src/nostalgia/modules/gfx/src/CMakeLists.txt b/src/nostalgia/modules/gfx/src/CMakeLists.txt index 0410ad7b..20630a7f 100644 --- a/src/nostalgia/modules/gfx/src/CMakeLists.txt +++ b/src/nostalgia/modules/gfx/src/CMakeLists.txt @@ -1,5 +1,5 @@ add_library( - NostalgiaCore + NostalgiaGfx gfx.cpp tilesheet.cpp ) @@ -10,12 +10,12 @@ if(NOT BUILDCORE_TARGET STREQUAL "gba") endif() target_include_directories( - NostalgiaCore PUBLIC + NostalgiaGfx PUBLIC ../include ) target_link_libraries( - NostalgiaCore PUBLIC + NostalgiaGfx PUBLIC Turbine ) @@ -26,7 +26,7 @@ endif() install( TARGETS - NostalgiaCore + NostalgiaGfx DESTINATION LIBRARY DESTINATION lib ARCHIVE DESTINATION lib diff --git a/src/nostalgia/modules/gfx/src/gba/CMakeLists.txt b/src/nostalgia/modules/gfx/src/gba/CMakeLists.txt index d1552880..24c64c5c 100644 --- a/src/nostalgia/modules/gfx/src/gba/CMakeLists.txt +++ b/src/nostalgia/modules/gfx/src/gba/CMakeLists.txt @@ -1,15 +1,15 @@ add_library( - NostalgiaCore-GBA OBJECT + NostalgiaGfx-GBA OBJECT context.cpp gfx.cpp panic.cpp ) target_include_directories( - NostalgiaCore-GBA PUBLIC + NostalgiaGfx-GBA PUBLIC ../../include ) target_link_libraries( - NostalgiaCore-GBA PUBLIC + NostalgiaGfx-GBA PUBLIC TeaGBA Keel Turbine @@ -17,5 +17,5 @@ target_link_libraries( if(BUILDCORE_TARGET STREQUAL "gba") set_source_files_properties(gfx.cpp PROPERTIES COMPILE_FLAGS -marm) - target_link_libraries(NostalgiaCore PUBLIC NostalgiaCore-GBA) + target_link_libraries(NostalgiaGfx PUBLIC NostalgiaGfx-GBA) endif() diff --git a/src/nostalgia/modules/gfx/src/keel/CMakeLists.txt b/src/nostalgia/modules/gfx/src/keel/CMakeLists.txt index 5a0d66ce..4e6b2f6d 100644 --- a/src/nostalgia/modules/gfx/src/keel/CMakeLists.txt +++ b/src/nostalgia/modules/gfx/src/keel/CMakeLists.txt @@ -1,18 +1,18 @@ add_library( - NostalgiaCore-Keel + NostalgiaGfx-Keel keelmodule.cpp typeconv.cpp ) target_link_libraries( - NostalgiaCore-Keel PUBLIC + NostalgiaGfx-Keel PUBLIC Keel - NostalgiaCore + NostalgiaGfx ) install( TARGETS - NostalgiaCore-Keel + NostalgiaGfx-Keel DESTINATION LIBRARY DESTINATION lib ARCHIVE DESTINATION lib diff --git a/src/nostalgia/modules/gfx/src/opengl/CMakeLists.txt b/src/nostalgia/modules/gfx/src/opengl/CMakeLists.txt index 48a0e7fb..f3a72af3 100644 --- a/src/nostalgia/modules/gfx/src/opengl/CMakeLists.txt +++ b/src/nostalgia/modules/gfx/src/opengl/CMakeLists.txt @@ -1,9 +1,9 @@ target_sources( - NostalgiaCore PRIVATE + NostalgiaGfx PRIVATE context.cpp gfx.cpp ) target_link_libraries( - NostalgiaCore PUBLIC + NostalgiaGfx PUBLIC GlUtils ) diff --git a/src/nostalgia/modules/gfx/src/studio/CMakeLists.txt b/src/nostalgia/modules/gfx/src/studio/CMakeLists.txt index 8c5e9588..75c008cf 100644 --- a/src/nostalgia/modules/gfx/src/studio/CMakeLists.txt +++ b/src/nostalgia/modules/gfx/src/studio/CMakeLists.txt @@ -1,25 +1,25 @@ -add_library(NostalgiaCore-Studio) +add_library(NostalgiaGfx-Studio) add_library( - NostalgiaCore-Studio-ImGui + NostalgiaGfx-Studio-ImGui studiomodule.cpp ) target_link_libraries( - NostalgiaCore-Studio PUBLIC - NostalgiaCore + NostalgiaGfx-Studio PUBLIC + NostalgiaGfx Studio ) target_link_libraries( - NostalgiaCore-Studio-ImGui PUBLIC - NostalgiaCore-Studio + NostalgiaGfx-Studio-ImGui PUBLIC + NostalgiaGfx-Studio ) install( TARGETS - NostalgiaCore-Studio-ImGui - NostalgiaCore-Studio + NostalgiaGfx-Studio-ImGui + NostalgiaGfx-Studio LIBRARY DESTINATION ${NOSTALGIA_DIST_MODULE} ) diff --git a/src/nostalgia/modules/gfx/src/studio/paletteeditor/CMakeLists.txt b/src/nostalgia/modules/gfx/src/studio/paletteeditor/CMakeLists.txt index 25e3a79c..58f9edb0 100644 --- a/src/nostalgia/modules/gfx/src/studio/paletteeditor/CMakeLists.txt +++ b/src/nostalgia/modules/gfx/src/studio/paletteeditor/CMakeLists.txt @@ -1,5 +1,5 @@ target_sources( - NostalgiaCore-Studio-ImGui PRIVATE + NostalgiaGfx-Studio-ImGui PRIVATE paletteeditor-imgui.cpp ) diff --git a/src/nostalgia/modules/gfx/src/studio/paletteeditor/commands/CMakeLists.txt b/src/nostalgia/modules/gfx/src/studio/paletteeditor/commands/CMakeLists.txt index 42c4cd54..017c821a 100644 --- a/src/nostalgia/modules/gfx/src/studio/paletteeditor/commands/CMakeLists.txt +++ b/src/nostalgia/modules/gfx/src/studio/paletteeditor/commands/CMakeLists.txt @@ -1,6 +1,6 @@ target_sources( - NostalgiaCore-Studio PRIVATE + NostalgiaGfx-Studio PRIVATE addcolorcommand.cpp addpagecommand.cpp applycolorallpagescommand.cpp diff --git a/src/nostalgia/modules/gfx/src/studio/tilesheeteditor/CMakeLists.txt b/src/nostalgia/modules/gfx/src/studio/tilesheeteditor/CMakeLists.txt index 01d3e67d..ef00ba2a 100644 --- a/src/nostalgia/modules/gfx/src/studio/tilesheeteditor/CMakeLists.txt +++ b/src/nostalgia/modules/gfx/src/studio/tilesheeteditor/CMakeLists.txt @@ -1,5 +1,5 @@ target_sources( - NostalgiaCore-Studio PRIVATE + NostalgiaGfx-Studio PRIVATE tilesheeteditorview.cpp tilesheeteditormodel.cpp tilesheetpixelgrid.cpp @@ -7,12 +7,12 @@ target_sources( ) target_sources( - NostalgiaCore-Studio-ImGui PRIVATE + NostalgiaGfx-Studio-ImGui PRIVATE tilesheeteditor-imgui.cpp ) target_link_libraries( - NostalgiaCore-Studio-ImGui PUBLIC + NostalgiaGfx-Studio-ImGui PUBLIC lodepng ) diff --git a/src/nostalgia/modules/gfx/src/studio/tilesheeteditor/commands/CMakeLists.txt b/src/nostalgia/modules/gfx/src/studio/tilesheeteditor/commands/CMakeLists.txt index ee4fd9bc..74976d59 100644 --- a/src/nostalgia/modules/gfx/src/studio/tilesheeteditor/commands/CMakeLists.txt +++ b/src/nostalgia/modules/gfx/src/studio/tilesheeteditor/commands/CMakeLists.txt @@ -1,5 +1,5 @@ target_sources( - NostalgiaCore-Studio PRIVATE + NostalgiaGfx-Studio PRIVATE addsubsheetcommand.cpp cutpastecommand.cpp deletetilescommand.cpp diff --git a/src/nostalgia/modules/gfx/src/studio/tilesheeteditor/tilesheeteditormodel.cpp b/src/nostalgia/modules/gfx/src/studio/tilesheeteditor/tilesheeteditormodel.cpp index d64fa945..80c67685 100644 --- a/src/nostalgia/modules/gfx/src/studio/tilesheeteditor/tilesheeteditormodel.cpp +++ b/src/nostalgia/modules/gfx/src/studio/tilesheeteditor/tilesheeteditormodel.cpp @@ -18,14 +18,13 @@ #include "commands/drawcommand.hpp" #include "commands/flipcommand.hpp" #include "commands/inserttilescommand.hpp" +#include "commands/movesubsheetcommand.hpp" #include "commands/palettechangecommand.hpp" #include "commands/rmsubsheetcommand.hpp" +#include "commands/rotatecommand.hpp" #include "commands/updatesubsheetcommand.hpp" #include "tilesheeteditormodel.hpp" -#include "commands/movesubsheetcommand.hpp" -#include "commands/rotatecommand.hpp" - namespace nostalgia::gfx { // delete pixels of all non-leaf nodes diff --git a/src/nostalgia/modules/gfx/src/tilesheet.cpp b/src/nostalgia/modules/gfx/src/tilesheet.cpp index c67bcf13..d30e51a3 100644 --- a/src/nostalgia/modules/gfx/src/tilesheet.cpp +++ b/src/nostalgia/modules/gfx/src/tilesheet.cpp @@ -187,7 +187,7 @@ TileSheet::SubSheetIdx validateSubSheetIdx(TileSheet const&ts, TileSheet::SubShe return validateSubSheetIdx(std::move(idx), 0, ts.subsheet); } -#if defined(__GNUC__) && __GNUC__ >= 14 +#if defined(__GNUC__) && __GNUC__ >= 13 #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdangling-reference" #endif @@ -204,7 +204,7 @@ static TileSheet::SubSheet const&getSubSheet( } return getSubSheet(idx, idxIt + 1, pSubsheet.subsheets[currentIdx]); } -#if defined(__GNUC__) && __GNUC__ >= 14 +#if defined(__GNUC__) && __GNUC__ >= 13 #pragma GCC diagnostic pop #endif @@ -218,7 +218,7 @@ TileSheet::SubSheet &getSubSheet( return getSubSheet(idx, idxIt + 1, pSubsheet.subsheets[idx[idxIt]]); } -#if defined(__GNUC__) && __GNUC__ >= 14 +#if defined(__GNUC__) && __GNUC__ >= 13 #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdangling-reference" #endif @@ -229,7 +229,7 @@ TileSheet::SubSheet const&getSubSheet(TileSheet const &ts, ox::SpanView const &idx) noexcept { return gfx::getSubSheet(idx, 0, ts.subsheet); } -#if defined(__GNUC__) && __GNUC__ >= 14 +#if defined(__GNUC__) && __GNUC__ >= 13 #pragma GCC diagnostic pop #endif diff --git a/src/nostalgia/modules/gfx/test/CMakeLists.txt b/src/nostalgia/modules/gfx/test/CMakeLists.txt index c9b56f07..bfcaf5d0 100644 --- a/src/nostalgia/modules/gfx/test/CMakeLists.txt +++ b/src/nostalgia/modules/gfx/test/CMakeLists.txt @@ -1,11 +1,11 @@ add_executable( - NostalgiaCoreTest + NostalgiaGfxTest tests.cpp ) target_link_libraries( - NostalgiaCoreTest - NostalgiaCore + NostalgiaGfxTest + NostalgiaGfx ) -add_test("[NostalgiaCore] readWriteTileSheet" ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/NostalgiaCoreTest readWriteTileSheet) +add_test("[NostalgiaGfx] readWriteTileSheet" ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/NostalgiaGfxTest readWriteTileSheet) diff --git a/src/nostalgia/modules/scene/src/CMakeLists.txt b/src/nostalgia/modules/scene/src/CMakeLists.txt index 9f3197ef..a8181e47 100644 --- a/src/nostalgia/modules/scene/src/CMakeLists.txt +++ b/src/nostalgia/modules/scene/src/CMakeLists.txt @@ -12,7 +12,7 @@ target_include_directories( target_link_libraries( NostalgiaScene PUBLIC - NostalgiaCore + NostalgiaGfx ) add_subdirectory(keel) diff --git a/src/nostalgia/modules/sound/CMakeLists.txt b/src/nostalgia/modules/sound/CMakeLists.txt new file mode 100644 index 00000000..f217730e --- /dev/null +++ b/src/nostalgia/modules/sound/CMakeLists.txt @@ -0,0 +1,12 @@ +add_subdirectory(src) + +if(NOT BUILDCORE_TARGET STREQUAL "gba") + add_subdirectory(test) +endif() + +install( + DIRECTORY + include/nostalgia + DESTINATION + include +) \ No newline at end of file diff --git a/src/nostalgia/modules/sound/include/nostalgia/sound/sound.hpp b/src/nostalgia/modules/sound/include/nostalgia/sound/sound.hpp new file mode 100644 index 00000000..90cc05a7 --- /dev/null +++ b/src/nostalgia/modules/sound/include/nostalgia/sound/sound.hpp @@ -0,0 +1,8 @@ +/* + * Copyright 2016 - 2025 Gary Talent (gary@drinkingtea.net). All rights reserved. + */ + +#pragma once + +namespace nostalgia::sound { +} diff --git a/src/nostalgia/modules/sound/src/CMakeLists.txt b/src/nostalgia/modules/sound/src/CMakeLists.txt new file mode 100644 index 00000000..ca398db9 --- /dev/null +++ b/src/nostalgia/modules/sound/src/CMakeLists.txt @@ -0,0 +1,27 @@ +add_library( + NostalgiaSound + sound.cpp +) + +target_include_directories( + NostalgiaSound PUBLIC + ../include +) + +target_link_libraries( + NostalgiaSound PUBLIC + Turbine +) + +add_subdirectory(keel) +if(NOSTALGIA_BUILD_STUDIO) + add_subdirectory(studio) +endif() + +install( + TARGETS + NostalgiaSound + DESTINATION + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) diff --git a/src/nostalgia/modules/sound/src/keel/CMakeLists.txt b/src/nostalgia/modules/sound/src/keel/CMakeLists.txt new file mode 100644 index 00000000..448c0741 --- /dev/null +++ b/src/nostalgia/modules/sound/src/keel/CMakeLists.txt @@ -0,0 +1,19 @@ +add_library( + NostalgiaSound-Keel + keelmodule.cpp + typeconv.cpp +) + +target_link_libraries( + NostalgiaSound-Keel PUBLIC + Keel + NostalgiaSound +) + +install( + TARGETS + NostalgiaSound-Keel + DESTINATION + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) diff --git a/src/nostalgia/modules/sound/src/keel/keelmodule.cpp b/src/nostalgia/modules/sound/src/keel/keelmodule.cpp new file mode 100644 index 00000000..c1cb6f6e --- /dev/null +++ b/src/nostalgia/modules/sound/src/keel/keelmodule.cpp @@ -0,0 +1,46 @@ +/* + * Copyright 2016 - 2025 Gary Talent (gary@drinkingtea.net). All rights reserved. + */ + +#include + +#include + +#include "typeconv.hpp" + +namespace nostalgia::sound { + +static class: public keel::Module { + private: + + public: + [[nodiscard]] + ox::String id() const noexcept override { + return ox::String{"net.drinkingtea.nostalgia.sound"}; + } + + [[nodiscard]] + ox::Vector types() const noexcept final { + return { + }; + } + + [[nodiscard]] + ox::Vector converters() const noexcept final { + return { + }; + } + + [[nodiscard]] + ox::Vector packTransforms() const noexcept final { + return { + }; + } + +} const mod; + +keel::Module const*keelModule() noexcept { + return &mod; +} + +} diff --git a/src/nostalgia/modules/sound/src/keel/typeconv.cpp b/src/nostalgia/modules/sound/src/keel/typeconv.cpp new file mode 100644 index 00000000..ac5c368a --- /dev/null +++ b/src/nostalgia/modules/sound/src/keel/typeconv.cpp @@ -0,0 +1,9 @@ +/* + * Copyright 2016 - 2025 Gary Talent (gary@drinkingtea.net). All rights reserved. + */ + +#include "typeconv.hpp" + +namespace nostalgia::sound { + +} diff --git a/src/nostalgia/modules/sound/src/keel/typeconv.hpp b/src/nostalgia/modules/sound/src/keel/typeconv.hpp new file mode 100644 index 00000000..3fe400f0 --- /dev/null +++ b/src/nostalgia/modules/sound/src/keel/typeconv.hpp @@ -0,0 +1,15 @@ +/* + * Copyright 2016 - 2025 Gary Talent (gary@drinkingtea.net). All rights reserved. + */ + +#pragma once + +#include + +#include + +namespace nostalgia::sound { + +// Type converters + +} diff --git a/src/nostalgia/modules/sound/src/sound.cpp b/src/nostalgia/modules/sound/src/sound.cpp new file mode 100644 index 00000000..a2d5bbfb --- /dev/null +++ b/src/nostalgia/modules/sound/src/sound.cpp @@ -0,0 +1,6 @@ +/* + * Copyright 2016 - 2025 Gary Talent (gary@drinkingtea.net). All rights reserved. + */ + +namespace nostalgia::sound { +} \ No newline at end of file diff --git a/src/nostalgia/modules/sound/src/studio/CMakeLists.txt b/src/nostalgia/modules/sound/src/studio/CMakeLists.txt new file mode 100644 index 00000000..dbf0f021 --- /dev/null +++ b/src/nostalgia/modules/sound/src/studio/CMakeLists.txt @@ -0,0 +1,17 @@ +add_library( + NostalgiaSound-Studio-ImGui + studiomodule.cpp +) + +target_link_libraries( + NostalgiaSound-Studio-ImGui PUBLIC + NostalgiaSound + Studio +) + +install( + TARGETS + NostalgiaSound-Studio-ImGui + LIBRARY DESTINATION + ${NOSTALGIA_DIST_MODULE} +) diff --git a/src/nostalgia/modules/sound/src/studio/studiomodule.cpp b/src/nostalgia/modules/sound/src/studio/studiomodule.cpp new file mode 100644 index 00000000..fe133a74 --- /dev/null +++ b/src/nostalgia/modules/sound/src/studio/studiomodule.cpp @@ -0,0 +1,27 @@ +/* + * Copyright 2016 - 2025 Gary Talent (gary@drinkingtea.net). All rights reserved. + */ + +#include + +#include + +namespace nostalgia::gfx { + +static class: public studio::Module { + ox::Vector editors(studio::StudioContext&) const noexcept final { + return { + }; + } + + ox::Vector> itemMakers(studio::StudioContext&) const noexcept final { + ox::Vector> out; + return out; + } +} const mod; + +const studio::Module *studioModule() noexcept { + return &mod; +} + +} diff --git a/src/nostalgia/modules/sound/test/CMakeLists.txt b/src/nostalgia/modules/sound/test/CMakeLists.txt new file mode 100644 index 00000000..ee5afed8 --- /dev/null +++ b/src/nostalgia/modules/sound/test/CMakeLists.txt @@ -0,0 +1,10 @@ +add_executable( + NostalgiaSoundTest + tests.cpp +) + +target_link_libraries( + NostalgiaSoundTest + NostalgiaSound +) + diff --git a/src/nostalgia/modules/sound/test/tests.cpp b/src/nostalgia/modules/sound/test/tests.cpp new file mode 100644 index 00000000..bf35cd22 --- /dev/null +++ b/src/nostalgia/modules/sound/test/tests.cpp @@ -0,0 +1,26 @@ +/* + * Copyright 2016 - 2025 Gary Talent (gary@drinkingtea.net). All rights reserved. + */ + +#undef NDEBUG + +#include +#include +#include + +static std::map tests = { +}; + +int main(int argc, const char **argv) { + int retval = -1; + if (argc > 0) { + auto const args = ox::Span{argv, static_cast(argc)}; + auto const testName = ox::StringView(args[1]); + if (tests.find(testName) != tests.end()) { + retval = static_cast(tests[testName]()); + } else { + retval = 1; + } + } + return retval; +} diff --git a/src/nostalgia/player/app.cpp b/src/nostalgia/player/app.cpp index 0b555dc0..f192989c 100644 --- a/src/nostalgia/player/app.cpp +++ b/src/nostalgia/player/app.cpp @@ -147,9 +147,8 @@ static void sceneKeyEventHandler(turbine::Context &tctx, turbine::Key key, bool [[maybe_unused]] static ox::Error runScene(turbine::Context &tctx) { - constexpr ox::StringView SceneAddr{"/Scenes/Chester.nscn"}; OX_REQUIRE_M(cctx, gfx::init(tctx)); - OX_REQUIRE(scn, keel::readObj(keelCtx(tctx), SceneAddr)); + OX_REQUIRE(scn, keel::readObj(keelCtx(tctx), "/Scenes/Chester.nscn")); turbine::setUpdateHandler(tctx, sceneUpdateHandler); turbine::setKeyEventHandler(tctx, sceneKeyEventHandler); scene::Scene const scene(*scn); @@ -163,7 +162,7 @@ ox::Error run( [[maybe_unused]] ox::StringView projectDataDir, ox::SpanView args) noexcept { if (args.size() < 2) { - return ox::Error(1, "Please provide path to project directory or OxFS file."); + return ox::Error{1, "Please provide path to project directory or OxFS file."}; } auto const path = args[1]; OX_REQUIRE_M(fs, keel::loadRomFs(path));