Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
dawproject_export.hpp File Reference

Write a Pulp timeline document as DAWproject XML. More...

#include <pulp/interchange/export_plan.hpp>
#include <pulp/timeline/model.hpp>
#include <string>

Go to the source code of this file.

Classes

struct  pulp::dawproject::ExportOptions

Namespaces

namespace  pulp
namespace  pulp::dawproject

Functions

interchange::FormatBoundExportWriter pulp::dawproject::writer (const ExportOptions &options={})
 Build a DAWproject writer.
interchange::ExportWriter pulp::dawproject::writer (const timeline::Project &legacy_project, const ExportOptions &options={})
 Compatibility overload for the pre-plan-owned writer API.

Detailed Description

Write a Pulp timeline document as DAWproject XML.

Scope is deliberately BOUNDED and mirrors the importer: flat tracks, beat-anchored clips, inline notes, referenced audio, a single tempo and a single time signature. Everything the document holds beyond that is reported by plan_export as a loss and is refused by run_export unless the caller consents to each concept by name. This is bounded DAWproject export, not Tier-1 support for the format.

The writer never constructs a plan and never decides what is acceptable to lose. By the time it runs, run_export has already enforced per-concept consent, so the writer's whole job is to turn the representable part of the document into format bytes. The central runner appends the reserved, versioned loss-manifest artifact after the writer succeeds.

It emits project.xml as text, mirroring the importer's deliberate stop at the XML boundary — packing that entry plus media into a .dawproject zip container is the caller's step, so no ZIP writer is pulled into core/.