Bounded import of the documented DAWproject arrangement subset. More...
#include <pulp/runtime/result.hpp>#include <pulp/timeline/model.hpp>#include <cstddef>#include <cstdint>#include <functional>#include <optional>#include <span>#include <string>#include <string_view>#include <vector>Go to the source code of this file.
Classes | |
| struct | pulp::timeline::DawProjectImportError |
| Diagnostic returned when an import rejects the whole document. More... | |
| struct | pulp::timeline::detail::DawProjectMediaViewResolver |
| struct | pulp::timeline::DawProjectImportLimits |
| Hard resource ceilings for one import. More... | |
Namespaces | |
| namespace | pulp |
| namespace | pulp::timeline |
| namespace | pulp::timeline::detail |
Typedefs | |
| using | pulp::timeline::DawProjectMediaResolver |
| Resolves a safe package-relative path to complete media bytes. | |
Functions | |
| runtime::Result< Project, DawProjectImportError > | pulp::timeline::import_dawproject_xml (std::string_view project_xml) |
| Parses a DAWproject project.xml document without resolving audio media. | |
| runtime::Result< Project, DawProjectImportError > | pulp::timeline::import_dawproject_xml (std::string_view project_xml, DawProjectMediaResolver media_resolver) |
| Parses a DAWproject project.xml document using media_resolver. | |
| runtime::Result< Project, DawProjectImportError > | pulp::timeline::import_dawproject_xml (std::string_view project_xml, DawProjectMediaResolver media_resolver, const DawProjectImportLimits &limits) |
| Parses a DAWproject project.xml document under explicit resource limits. | |
| runtime::Result< Project, DawProjectImportError > | pulp::timeline::detail::import_dawproject_xml_view (std::string_view project_xml, DawProjectMediaViewResolver media_resolver, const DawProjectImportLimits &limits) |
Bounded import of the documented DAWproject arrangement subset.
DAWproject is an open, DAW-neutral XML format; a .dawproject file is a ZIP whose project.xml entry carries the arrangement. This importer consumes the XML text and asks a caller-supplied resolver for referenced package media so every returned MediaAsset is sealed to the SHA-256 of its actual bytes.
The accepted subset is a major-version-1 Project, one initial tempo and meter, flat tracks, beat-timed arrangement lanes, note clips, and audio clips with package-relative media. Everything outside that subset fails closed rather than being dropped.
Beats are quarter notes; clip and note positions convert to canonical ticks. Audio paths survive only as PackageRelative locator hints; resolved bytes determine the durable ContentHash.