/* * Copyright 2016 - 2023 Gary Talent (gary@drinkingtea.net). All rights reserved. */ #pragma once #include #include "context.hpp" #include "media.hpp" #include "module.hpp" #include "pack.hpp" namespace keel { template ox::Result> init(ox::UPtr &&fs, ox::CRStringView appName) noexcept { auto ctx = ox::make_unique(); ctx->appName = appName; oxIgnoreError(setRomFs(ctx.get(), std::move(fs))); const auto &mods = modules(); for (auto &mod : mods) { // register type converters for (auto c : mod->converters()) { ctx->converters.emplace_back(c); } // register pack transforms for (auto c : mod->packTransforms()) { ctx->packTransforms.emplace_back(c); } } return ctx; } }