genish.js
Version:
46 lines (34 loc) • 992 B
JavaScript
let gen = require('./gen.js')
let proto = {
basename:'in',
gen() {
const isWorklet = gen.mode === 'worklet'
if( isWorklet ) {
gen.inputs.add( this )
}else{
gen.parameters.add( this.name )
}
gen.memo[ this.name ] = isWorklet === true ? this.name + '[i]' : this.name
return gen.memo[ this.name ]
}
}
module.exports = ( name, inputNumber=0, channelNumber=0, defaultValue=0, min=0, max=1 ) => {
let input = Object.create( proto )
input.id = gen.getUID()
input.name = name !== undefined ? name : `${input.basename}${input.id}`
Object.assign( input, { defaultValue, min, max, inputNumber, channelNumber })
input[0] = {
gen() {
if( ! gen.parameters.has( input.name ) ) gen.parameters.add( input.name )
return input.name + '[0]'
}
}
input[1] = {
gen() {
if( ! gen.parameters.has( input.name ) ) gen.parameters.add( input.name )
return input.name + '[1]'
}
}
return input
}