MCPcopy Create free account
hub / github.com/diffusionstudio/vits-web / createDevice

Function createDevice

src/piper.js:3069–3119  ·  view source on GitHub ↗
(parent, name, input, output)

Source from the content-addressed store, hash-verified

3067 return node;
3068 },
3069 createDevice(parent, name, input, output) {
3070 var path = PATH.join2(typeof parent == 'string' ? parent : FS.getPath(parent), name);
3071 var mode = FS_getMode(!!input, !!output);
3072 if (!FS.createDevice.major) FS.createDevice.major = 64;
3073 var dev = FS.makedev(FS.createDevice.major++, 0);
3074 FS.registerDevice(dev, {
3075 open(stream) {
3076 stream.seekable = false;
3077 },
3078 close(stream) {
3079 if (output && output.buffer && output.buffer.length) {
3080 output(10);
3081 }
3082 },
3083 read(stream, buffer, offset, length, pos) {
3084 var bytesRead = 0;
3085 for (var i = 0; i < length; i++) {
3086 var result;
3087 try {
3088 result = input();
3089 } catch (e) {
3090 throw new FS.ErrnoError(29);
3091 }
3092 if (result === undefined && bytesRead === 0) {
3093 throw new FS.ErrnoError(6);
3094 }
3095 if (result === null || result === undefined) break;
3096 bytesRead++;
3097 buffer[offset + i] = result;
3098 }
3099 if (bytesRead) {
3100 stream.node.timestamp = Date.now();
3101 }
3102 return bytesRead;
3103 },
3104 write(stream, buffer, offset, length, pos) {
3105 for (var i = 0; i < length; i++) {
3106 try {
3107 output(buffer[offset + i]);
3108 } catch (e) {
3109 throw new FS.ErrnoError(29);
3110 }
3111 }
3112 if (length) {
3113 stream.node.timestamp = Date.now();
3114 }
3115 return i;
3116 },
3117 });
3118 return FS.mkdev(path, mode, dev);
3119 },
3120 forceLoadFile(obj) {
3121 if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true;
3122 if (typeof XMLHttpRequest != 'undefined') {

Callers

nothing calls this directly

Calls 1

FS_getModeFunction · 0.85

Tested by

no test coverage detected