MCPcopy Create free account
hub / github.com/DISTRHO/DPF / downloadWebBrowserFile

Function downloadWebBrowserFile

distrho/extra/FileBrowserDialogImpl.cpp:158–189  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

156}
157
158static bool downloadWebBrowserFile(const char* const filename)
159{
160 const char* const nameprefix = DISTRHO_WASM_NAMESPACE(FILE_BROWSER_DIALOG_NAMESPACE);
161
162 return EM_ASM_INT({
163 var canvasFileObjName = UTF8ToString($0) + "_file_save";
164 var jsfilename = UTF8ToString($1);
165
166 var canvasFileSaveElem = document.getElementById(canvasFileObjName);
167 if (canvasFileSaveElem) {
168 // only 1 file save allowed at once
169 console.warn("One file save operation already in progress, refusing to open another");
170 return 0;
171 }
172
173 canvasFileSaveElem = document.createElement('a');
174 canvasFileSaveElem.download = jsfilename;
175 canvasFileSaveElem.id = canvasFileObjName;
176 canvasFileSaveElem.style.display = 'none';
177 document.body.appendChild(canvasFileSaveElem);
178
179 var content = Module.FS.readFile('/userfiles/' + jsfilename);
180 canvasFileSaveElem.href = URL.createObjectURL(new Blob([content]));
181 canvasFileSaveElem.click();
182
183 setTimeout(function() {
184 URL.revokeObjectURL(canvasFileSaveElem.href);
185 document.body.removeChild(canvasFileSaveElem);
186 }, 2000);
187 return 1;
188 }, nameprefix, filename) != 0;
189}
190#endif
191
192// --------------------------------------------------------------------------------------------------------------------

Callers 1

fileBrowserCloseFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected