33 lines
1.0 KiB
JavaScript
33 lines
1.0 KiB
JavaScript
|
if( typeof emulator != 'undefined' ){
|
||
|
// inside worker-thread
|
||
|
|
||
|
}else{
|
||
|
// inside browser-thread
|
||
|
//
|
||
|
ISOTerminal.prototype.pasteWriteFile = async function(data,type,filename){
|
||
|
this.pasteWriteFile.fileCount = this.pasteWriteFile.fileCount || 0
|
||
|
const file = `clipboard/`+ ( filename || `user-paste-${this.pasteWriteFile.fileCount}`)
|
||
|
await this.worker.create_file(file, data )
|
||
|
// run the xrsh hook
|
||
|
this.hook("clipboard", [ `/mnt/${file}`, type ] )
|
||
|
console.log("clipboard paste: /mnt/"+file)
|
||
|
this.pasteWriteFile.fileCount += 1
|
||
|
}
|
||
|
|
||
|
ISOTerminal.prototype.pasteFile = async function(data){
|
||
|
const {type,item,pastedText} = data
|
||
|
if( pastedText){
|
||
|
this.pasteWriteFile( this.convert.toUint8Array(pastedText) ,type)
|
||
|
}else{
|
||
|
const file = item.getAsFile();
|
||
|
const reader = new FileReader();
|
||
|
reader.onload = (e) => {
|
||
|
const arr = new Uint8Array(e.target.result)
|
||
|
this.pasteWriteFile( arr, type, file.name ); // or use readAsDataURL for images
|
||
|
};
|
||
|
reader.readAsArrayBuffer(file);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|