diff --git a/src/constants/index.js b/src/constants/index.js index 8c41dd2..8550f3e 100644 --- a/src/constants/index.js +++ b/src/constants/index.js @@ -89,7 +89,7 @@ export const FIXTURE_TYPES = ['EuroliteTMH8', 'FunGenerationSeParQuadLedRgbUv', 'TourHazerII', 'SgmXC5', 'BasicDimmer', 'LTHLedParCob250w', 'AdjSweeperBeamQuadLed', 'RobeColorWash575EAt1_4', 'ViperVl3000Spot', 'MacQuantumWash', 'MacAura', 'Rollapix100', 'RobeRobin300LEDWash', 'BasicRGBW', 'BasicRGBDimmer', 'OppskPar', 'SolarStar2', 'BasicColorDimmableTransform', - 'StairvilleWildWashPro648Rgb', 'DunarniaLedPar' + 'StairvilleWildWashPro648Rgb', 'DunarniaLedPar', 'LaserworldCs1000RgbMk2' ] export const FIXTURE_PROPERTIES = ['color', 'dimmer', 'strobe', 'white', @@ -103,7 +103,8 @@ export const FIXTURE_PROPERTIES = ['color', 'dimmer', 'strobe', 'white', 'goboRotation', 'prism', 'prismRotation', 'frost', 'iris', 'focus', 'intensity', 'edge', 'ctoMixer', 'colorWheel', 'gobo1', 'gobo1Rotation', 'gobo2', 'gobo2Rotation', 'gobo3', 'gobo3Rotation', 'beamIris', 'focusTime', 'colorTime', 'beamTime', 'goboTime', 'control', 'shutter', 'auraShutter', - 'auraDimmer', 'auraColor', 'beamColor', 'beamDimmer', 'beamShutter' + 'auraDimmer', 'auraColor', 'beamColor', 'beamDimmer', 'beamShutter', 'circle', 'manualPosition', 'horizontal', + 'patternConstruction', 'colorSelection' ] export const MIDI_TYPE_BUTTON = 'Button' diff --git a/src/utils/dmx-fixtures.js b/src/utils/dmx-fixtures.js index e62ca91..ba687ba 100644 --- a/src/utils/dmx-fixtures.js +++ b/src/utils/dmx-fixtures.js @@ -30,3 +30,4 @@ export { default as SolarStar2 } from './dmx/SolarStar2.js' export { default as BasicColorDimmableTransform } from './dmx/BasicColorDimmableTransform.js' export { default as StairvilleWildWashPro648Rgb } from './dmx/StairvilleWildWashPro648Rgb.js' export { default as DunarniaLedPar } from './dmx/DunarniaLedPar.js' +export { default as LaserworldCs1000RgbMk2 } from './dmx/LaserworldCs1000RgbMk2.js' diff --git a/src/utils/dmx/LaserworldCs1000RgbMk2.js b/src/utils/dmx/LaserworldCs1000RgbMk2.js new file mode 100644 index 0000000..4736631 --- /dev/null +++ b/src/utils/dmx/LaserworldCs1000RgbMk2.js @@ -0,0 +1,105 @@ +import MappedParam from 'fivetwelve/lib/param/MappedParam.js' +import MultiRangeParam from 'fivetwelve/lib/param/MultiRangeParam.js' +import RangeParam from 'fivetwelve/lib/param/RangeParam.js' + +import DmxDevice from './DmxDevice.js' + +export default class LaserworldCs1000RgbMk2 extends DmxDevice { + constructor(options) { + super(Object.assign({}, options, { + params: { + + mode: new RangeParam(1, { min: 0, max: 255 }), + pattern: new RangeParam(2, { min: 0, max: 255 }), + circle: new RangeParam(3, { min: 0, max: 255 }), + yAxisRolling: new RangeParam(4, { min: 0, max: 255 }), + xAxisRolling: new RangeParam(5, { min: 0, max: 255 }), + horizontal: new RangeParam(6, { min: 0, max: 255 }), + manualPosition: new RangeParam(7, { min: 0, max: 255 }), + zoom: new RangeParam(8, { min: 0, max: 255 }), + patternConstruction: new RangeParam(9, { min: 0, max: 255 }), + strobe: new RangeParam(10, { min: 0, max: 255 }), + colorSelection: new RangeParam(11, { min: 0, max: 255 }) + + // colors: new MappedParam(2, { + // original: [0, 63], + // red: [64, 127], + // green: [128, 191], + // yellow: [192, 255] + // }), + + // pattern: new MappedParam(3, { + // 1: [0, 7], + // 2: [8, 15], + // 3: [16, 23], + // 4: [24, 31], + // 5: [32, 39], + // 6: [40, 47], + // 7: [48, 55], + // 8: [56, 63], + // 9: [64, 71], + // 10: [72, 79], + // 11: [80, 87], + // 12: [88, 95], + // 13: [96, 103], + // 14: [104, 111], + // 15: [112, 119], + // 16: [120, 127], + // 17: [128, 135], + // 18: [136, 143], + // 19: [144, 151], + // 20: [152, 159], + // 21: [160, 167], + // 22: [168, 175], + // 23: [176, 183], + // 24: [184, 191], + // 25: [192, 199], + // 26: [200, 207], + // 27: [208, 215], + // 28: [216, 223], + // 29: [224, 231], + // 30: [232, 239], + // 31: [240, 247], + // 32: [248, 255] + // }), + + // zoom: new MultiRangeParam(4, { + // manual: { range: [0, 127], values: [0, 255] }, + // loop: { range: [128, 255], values: [0, 255] } + // }), + + // xAxisRolling: new MultiRangeParam(5, { + // manual: { range: [0, 127], values: [0, 255] }, + // speed: { range: [128, 255], values: [0, 255] } + // }), + + // yAxisRolling: new MultiRangeParam(6, { + // manual: { range: [0, 127], values: [0, 255] }, + // speed: { range: [128, 255], values: [0, 255] } + // }), + + // zAxisRolling: new MultiRangeParam(7, { + // manual: { range: [0, 127], values: [0, 255] }, + // speed: { range: [128, 255], values: [0, 255] } + // }), + + // xAxisMoving: new MultiRangeParam(8, { + // manual: { range: [0, 127], values: [0, 255] }, + // speed: { range: [128, 255], values: [0, 255] } + // }), + + // yAxisMoving: new MultiRangeParam(9, { + // manual: { range: [0, 127], values: [0, 255] }, + // speed: { range: [128, 255], values: [0, 255] } + // }) + } + })) + + this.layout = {} + this.layout.width = 1 + this.layout.height = 1 + + this.channels = 11 + this.weight = 2 + } +}