UNPKG

genish.js

Version:
54 lines (41 loc) 1.22 kB
'use strict' let gen = require('./gen.js'), mul = require('./mul.js'), wrap = require('./wrap.js') let proto = { basename:'poke', gen() { let dataName = 'memory', inputs = gen.getInputs( this ), idx, out, wrapped idx = this.data.gen() //gen.requestMemory( this.memory ) //wrapped = wrap( this.inputs[1], 0, this.dataLength ).gen() //idx = wrapped[0] //gen.functionBody += wrapped[1] let outputStr = this.inputs[1] === 0 ? ` ${dataName}[ ${idx} ] = ${inputs[0]}\n` : ` ${dataName}[ ${idx} + ${inputs[1]} ] = ${inputs[0]}\n` if( this.inline === undefined ) { gen.functionBody += outputStr }else{ return [ this.inline, outputStr ] } } } module.exports = ( data, value, index, properties ) => { let ugen = Object.create( proto ), defaults = { channels:1 } if( properties !== undefined ) Object.assign( defaults, properties ) Object.assign( ugen, { data, dataName: data.name, dataLength: data.buffer.length, uid: gen.getUID(), inputs: [ value, index ], }, defaults ) ugen.name = ugen.basename + ugen.uid gen.histories.set( ugen.name, ugen ) return ugen }