MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ save_audio()

MAYAFLUX_API bool MayaFlux::save_audio ( const std::shared_ptr< Kakshya::SoundStreamContainer > &  container,
const std::string &  suggested_name = "output.wav" 
)

Present a native save-file dialog and write container to the chosen path via IOManager::write().

Blocks until the user confirms or cancels. The encode task is queued asynchronously; this function returns once the path is chosen and the task is enqueued. Returns false on cancellation, backend error, or if Portal::System is not initialized.

Parameters
containerSource container to encode.
suggested_nameFilename pre-filled in the dialog name field.

Definition at line 347 of file Depot.cpp.

350{
351 if (!require_portal("save_audio"))
352 return false;
353
354 auto iom = get_io_manager();
355 if (!iom) {
356 MF_ERROR(Journal::Component::API, Journal::Context::Runtime,
357 "save_audio: IOManager unavailable");
358 return false;
359 }
360
361 return Portal::System::Dialog::save_file<bool>(
362 [&iom, &container](const fs::path& p) {
363 iom->write(container, p.string());
364 return true;
365 },
366 [](Core::SystemDialogError) { },
367 suggested_name,
368 k_audio_save_filters);
369}
#define MF_ERROR(comp, ctx,...)
std::shared_ptr< IO::IOManager > get_io_manager()
Retrieves the global IOManager instance for file loading and buffer management.
Definition Depot.cpp:575

References MayaFlux::Journal::API, get_io_manager(), MF_ERROR, and MayaFlux::Journal::Runtime.

+ Here is the call graph for this function: