Best JavaScript code snippet using appium
webaudioapi.js
Source:webaudioapi.js
1(function(T) {2 "use strict";3 if (T.env !== "webkit") {4 return;5 }6 var fn = T.fn;7 var context = fn._audioContext;8 var BUFFERSIZE = 1024;9 function WebAudioAPINode(_args) {10 T.Object.call(this, 2, _args);11 fn.fixAR(this);12 var _ = this._;13 _.mode = "";14 _.bufferL = new fn.SignalArray(BUFFERSIZE << 2);15 _.bufferR = new fn.SignalArray(BUFFERSIZE << 2);16 _.buffermask = _.bufferL.length - 1;17 _.node = null;18 _.script = context.createScriptProcessor(BUFFERSIZE, 2, 2);19 _.writeIndex = 0;20 _.readIndex = 0;21 _.totalRead = 0;22 _.totalWrite = 0;23 }24 fn.extend(WebAudioAPINode);25 var $ = WebAudioAPINode.prototype;26 Object.defineProperties($, {27 context: {28 get: function() {29 return context;30 }31 },32 mode: {33 get: function() {34 return this._.mode;35 }36 }37 });38 $.cancel = function() {39 var _ = this._;40 var cell = this.cells[0];41 for (var i = 0, imax = cell.length; i < imax; ++i) {42 cell[i] = 0;43 }44 _.node = null;45 };46 (function() {47 function WebAudioAPIRecvNode(_args) {48 WebAudioAPINode.call(this, _args);49 var _ = this._;50 _.mode = "recv";51 _.script.onaudioprocess = make_recv_process(this);52 _.gain = context.createGain();53 _.gain.gain.value = 0;54 _.script.connect(_.gain);55 }56 fn.extend(WebAudioAPIRecvNode, WebAudioAPINode);57 var make_recv_process = function(self) {58 return function(e) {59 var _ = self._;60 var ins = e.inputBuffer;61 var inputL = ins.getChannelData(0);62 var inputR = ins.getChannelData(1);63 var length = ins.length;64 var writeIndex = _.writeIndex;65 _.bufferL.set(inputL, writeIndex);66 _.bufferR.set(inputR, writeIndex);67 _.writeIndex = (writeIndex + length) & _.buffermask;68 _.totalWrite += length;69 };70 };71 var $ = WebAudioAPIRecvNode.prototype;72 $.cancel = function() {73 WebAudioAPINode.prototype.cancel.call(this);74 this._.gain.disconnect();75 if(this._.node) {76 this._.node.disconnect();77 }78 };79 $.recv = function(node) {80 var _ = this._;81 try {82 _.node = node;83 _.node.connect(_.script);84 _.gain.connect(context.destination);85 } catch(e) {86 _.node = null;87 }88 _.writeIndex = 0;89 _.readIndex = 0;90 _.totalWrite = 0;91 _.totalRead = 0;92 return this;93 };94 $.process = function(tickID) {95 var _ = this._;96 if (_.node === null) {97 return this;98 }99 if (this.tickID !== tickID) {100 this.tickID = tickID;101 var cellsize = _.cellsize;102 var bufferL = _.bufferL;103 var bufferR = _.bufferR;104 if (_.totalWrite > _.totalRead + cellsize) {105 var begin = _.readIndex;106 var end = begin + cellsize;107 this.cells[1].set(bufferL.subarray(begin, end));108 this.cells[2].set(bufferR.subarray(begin, end));109 _.readIndex = end & _.buffermask;110 _.totalRead += cellsize;111 }112 fn.outputSignalAR(this);113 }114 return this;115 };116 fn.register("WebAudioAPI:recv", WebAudioAPIRecvNode);117 })();118 (function() {119 function WebAudioAPISendNode(_args) {120 WebAudioAPINode.call(this, _args);121 fn.listener(this);122 var _ = this._;123 _.mode = "send";124 _.script.onaudioprocess = make_send_process(this);125 _.connectIndex = null;126 }127 fn.extend(WebAudioAPISendNode, WebAudioAPINode);128 var make_send_process = function(self) {129 return function(e) {130 var _ = self._;131 var outs = e.outputBuffer;132 var length = outs.length;133 if (_.totalWrite > _.totalRead + length) {134 var begin = _.readIndex;135 var end = begin + length;136 outs.getChannelData(0).set(_.bufferL.subarray(begin, end));137 outs.getChannelData(1).set(_.bufferR.subarray(begin, end));138 _.readIndex = end & _.buffermask;139 _.totalRead += length;140 }141 };142 };143 var $ = WebAudioAPISendNode.prototype;144 $.cancel = function() {145 WebAudioAPINode.prototype.cancel.call(this);146 var _ = this._;147 if (_.connectIndex !== null) {148 _.script.disconnect(_.connectIndex);149 } else {150 _.script.disconnect();151 }152 this.unlisten();153 };154 $.send = function(node, index) {155 var _ = this._;156 try {157 _.node = node;158 if (typeof index === "number") {159 _.script.connect(_.node, index);160 _.connectIndex = index;161 } else {162 _.script.connect(_.node);163 _.connectIndex = null;164 }165 this.listen();166 } catch(e) {167 _.node = null;168 }169 _.writeIndex = 0;170 _.readIndex = 0;171 _.totalWrite = 0;172 _.totalRead = 0;173 return this;174 };175 $.process = function(tickID) {176 var _ = this._;177 if (_.script === null) {178 return this;179 }180 if (this.tickID !== tickID) {181 this.tickID = tickID;182 var cellL = this.cells[1];183 var cellR = this.cells[2];184 var cellsize = _.cellsize;185 var writeIndex = _.writeIndex;186 fn.inputSignalAR(this);187 _.bufferL.set(cellL, writeIndex);188 _.bufferR.set(cellR, writeIndex);189 _.writeIndex = (writeIndex + cellsize) & _.buffermask;190 _.totalWrite += cellsize;191 fn.outputSignalAR(this);192 }193 return this;194 };195 fn.register("WebAudioAPI:send", WebAudioAPISendNode);196 })();...
mediastream.js
Source:mediastream.js
1(function(T) {2 "use strict";3 if (T.envtype !== "browser") {4 return;5 }6 var fn = T.fn;7 var BUFFER_SIZE = 4096;8 var BUFFER_MASK = BUFFER_SIZE - 1;9 function MediaStreamNode(_args) {10 T.Object.call(this, 2, _args);11 fn.fixAR(this);12 var _ = this._;13 _.src = _.func = null;14 _.bufferL = new fn.SignalArray(BUFFER_SIZE);15 _.bufferR = new fn.SignalArray(BUFFER_SIZE);16 _.readIndex = 0;17 _.writeIndex = 0;18 _.totalRead = 0;19 _.totalWrite = 0;20 }21 fn.extend(MediaStreamNode);22 var $ = MediaStreamNode.prototype;23 $.listen = function(audio) {24 var _impl = impl[T.env];25 if (_impl) {26 _impl.set.call(this, audio);27 _impl.listen.call(this);28 }29 };30 $.unlisten = function() {31 var _impl = impl[T.env];32 if (_impl) {33 _impl.unlisten.call(this);34 }35 this.cells[0].set(fn.emptycell);36 this.cells[1].set(fn.emptycell);37 this.cells[2].set(fn.emptycell);38 var _ = this._;39 var bufferL = _.bufferL, bufferR = _.bufferR;40 for (var i = 0, imax = bufferL.length; i < imax; ++i) {41 bufferL[i] = bufferR[i] = 0;42 }43 };44 $.process = function(tickID) {45 var _ = this._;46 if (_.src === null) {47 return this;48 }49 if (this.tickID !== tickID) {50 this.tickID = tickID;51 var cellsize = _.cellsize;52 if (_.totalWrite > _.totalRead + cellsize) {53 var begin = _.readIndex;54 var end = begin + cellsize;55 this.cells[1].set(_.bufferL.subarray(begin, end));56 this.cells[2].set(_.bufferR.subarray(begin, end));57 _.readIndex = end & BUFFER_MASK;58 _.totalRead += cellsize;59 }60 fn.outputSignalAR(this);61 }62 return this;63 };64 var impl = {};65 impl.webkit = {66 set: function(src) {67 var _ = this._;68 /*global HTMLMediaElement:true */69 if (src instanceof HTMLMediaElement) {70 var context = fn._audioContext;71 _.src = context.createMediaElementSource(src);72 }73 /*global HTMLMediaElement:false */74 },75 listen: function() {76 var _ = this._;77 var context = fn._audioContext;78 _.gain = context.createGain();79 _.gain.gain.value = 0;80 _.node = context.createScriptProcessorNode(1024, 2, 2);81 _.node.onaudioprocess = onaudioprocess(this);82 _.src.connect(_.node);83 _.node.connect(_.gain);84 _.gain.connect(context.destination);85 },86 unlisten: function() {87 var _ = this._;88 if (_.src) {89 _.src.disconnect();90 }91 if (_.gain) {92 _.gain.disconnect();93 }94 if (_.node) {95 _.node.disconnect();96 }97 }98 };99 var onaudioprocess = function(self) {100 return function(e) {101 var _ = self._;102 var ins = e.inputBuffer;103 var length = ins.length;104 var writeIndex = _.writeIndex;105 _.bufferL.set(ins.getChannelData(0), writeIndex);106 _.bufferR.set(ins.getChannelData(1), writeIndex);107 _.writeIndex = (writeIndex + length) & BUFFER_MASK;108 _.totalWrite += length;109 };110 };111 impl.moz = {112 set: function(src) {113 var _ = this._;114 /*global HTMLAudioElement:true */115 if (src instanceof HTMLAudioElement) {116 _.src = src;117 _.istep = _.samplerate / src.mozSampleRate;118 }119 /*global HTMLAudioElement:false */120 },121 listen: function() {122 var _ = this._;123 var o0 = _.bufferL;124 var o1 = _.bufferR;125 var prev0 = 0, prev1 = 0;126 if (_.src.mozChannels === 2) {127 _.x = 0;128 _.func = function(e) {129 var writeIndex = _.writeIndex;130 var totalWrite = _.totalWrite;131 var samples = e.frameBuffer;132 var x, istep = _.istep;133 var i, imax = samples.length;134 x = _.x;135 for (i = 0; i < imax; i+= 2) {136 x += istep;137 while (x > 0) {138 o0[writeIndex] = (samples[i ] + prev0) * 0.5;139 o1[writeIndex] = (samples[i+1] + prev1) * 0.5;140 writeIndex = (writeIndex + 1) & BUFFER_MASK;141 ++totalWrite;142 x -= 1;143 }144 prev0 = samples[i ];145 prev1 = samples[i+1];146 }147 _.x = x;148 _.writeIndex = writeIndex;149 _.totalWrite = totalWrite;150 };151 } else {152 _.x = 0;153 _.func = function(e) {154 var writeIndex = _.writeIndex;155 var totalWrite = _.totalWrite;156 var samples = e.frameBuffer;157 var x, istep = _.istep;158 var i, imax = samples.length;159 x = _.x;160 for (i = 0; i < imax; ++i) {161 x += istep;162 while (x >= 0) {163 o0[writeIndex] = o1[writeIndex] = (samples[i] + prev0) * 0.5;164 writeIndex = (writeIndex + 1) & BUFFER_MASK;165 ++totalWrite;166 x -= 1;167 }168 prev0 = samples[i];169 }170 _.x = x;171 _.writeIndex = writeIndex;172 _.totalWrite = totalWrite;173 };174 }175 _.src.addEventListener("MozAudioAvailable", _.func);176 },177 unlisten: function() {178 var _ = this._;179 if (_.func) {180 _.src.removeEventListener("MozAudioAvailable", _.func);181 _.func = null;182 }183 }184 };185 fn.register("mediastream", MediaStreamNode);...
OscillatorNode.js
Source:OscillatorNode.js
1'use strict';2import { SINE } from '../../constants/OscillatorType';3const OscillatorNodeDSP = {4 dspInit() {5 this._phase = 0;6 },7 dspProcess() {8 const blockSize = this.blockSize;9 const quantumStartFrame = this.context.currentSampleFrame;10 const quantumEndFrame = quantumStartFrame + blockSize;11 const sampleOffset = Math.max(0, this._startFrame - quantumStartFrame);12 const fillToSample =13 Math.min(quantumEndFrame, this._stopFrame) - quantumStartFrame;14 const output = this.outputs[0].bus.getMutableData()[0];15 let writeIndex = 0;16 if (this._type === SINE) {17 writeIndex = this.dspSine(18 output,19 sampleOffset,20 fillToSample,21 this.sampleRate,22 );23 } else {24 writeIndex = this.dspWave(25 output,26 sampleOffset,27 fillToSample,28 this.sampleRate,29 );30 }31 // timeline32 // |----------------|-------*--------|----------------|----------------|33 // ^ ^ ^34 // |------>| quantumEndFrame35 // | wrote |36 // | stopFrame37 // quantumStartFrame38 if (this._stopFrame <= quantumStartFrame + writeIndex) {39 // rest samples fill zero40 while (writeIndex < blockSize) {41 output[writeIndex++] = 0;42 }43 this.context.addPostProcess(() => {44 this.outputs[0].bus.zeros();45 this.outputs[0].disable();46 this.dispatchEvent({ type: 'ended' });47 });48 }49 },50 dspSine(output, writeIndex, blockSize, sampleRate) {51 const frequency = this._frequency;52 const detune = this._detune;53 const algorithm =54 frequency.hasSampleAccurateValues() * 2 +55 detune.hasSampleAccurateValues();56 const frequencyToPhaseIncr = (2 * Math.PI) / sampleRate;57 let phase = this._phase;58 if (algorithm === 0) {59 const frequencyValue = frequency.getValue();60 const detuneValue = detune.getValue();61 const computedFrequency =62 frequencyValue * Math.pow(2, detuneValue / 1200);63 const phaseIncr = frequencyToPhaseIncr * computedFrequency;64 while (writeIndex < blockSize) {65 output[writeIndex++] = Math.sin(phase);66 phase += phaseIncr;67 }68 } else {69 const frequencyValues = frequency.getSampleAccurateValues();70 const detuneValues = detune.getSampleAccurateValues();71 while (writeIndex < blockSize) {72 const frequencyValue = frequencyValues[writeIndex];73 const detuneValue = detuneValues[writeIndex];74 const computedFrequency =75 frequencyValue * Math.pow(2, detuneValue / 1200);76 output[writeIndex++] = Math.sin(phase);77 phase += frequencyToPhaseIncr * computedFrequency;78 }79 }80 this._phase = phase;81 return writeIndex;82 },83 dspWave(output, writeIndex, blockSize, sampleRate) {84 const frequency = this._frequency;85 const detune = this._detune;86 const algorithm =87 frequency.hasSampleAccurateValues() * 2 +88 detune.hasSampleAccurateValues();89 const waveTable = this._waveTable;90 const waveTableLength = waveTable.length - 1;91 const frequencyToPhaseIncr = 1 / sampleRate;92 let phase = this._phase;93 if (algorithm === 0) {94 const frequencyValue = frequency.getValue();95 const detuneValue = detune.getValue();96 const computedFrequency =97 frequencyValue * Math.pow(2, detuneValue / 1200);98 const phaseIncr = frequencyToPhaseIncr * computedFrequency;99 while (writeIndex < blockSize) {100 const idx = (phase * waveTableLength) % waveTableLength;101 const v0 = waveTable[idx | 0];102 const v1 = waveTable[(idx | 0) + 1];103 output[writeIndex++] = v0 + (idx % 1) * (v1 - v0);104 phase += phaseIncr;105 }106 } else {107 const frequencyValues = frequency.getSampleAccurateValues();108 const detuneValues = detune.getSampleAccurateValues();109 while (writeIndex < blockSize) {110 const frequencyValue = frequencyValues[writeIndex];111 const detuneValue = detuneValues[writeIndex];112 const computedFrequency =113 frequencyValue * Math.pow(2, detuneValue / 1200);114 const idx = (phase * waveTableLength) % waveTableLength;115 const v0 = waveTable[idx | 0];116 const v1 = waveTable[(idx | 0) + 1];117 output[writeIndex++] = v0 + (idx % 1) * (v1 - v0);118 phase += frequencyToPhaseIncr * computedFrequency;119 }120 }121 this._phase = phase;122 return writeIndex;123 },124};...
AudioBufferSourceNode.js
Source:AudioBufferSourceNode.js
1'use strict';2const AudioBufferSourceNodeDSP = {3 dspInit() {4 this._phase = 0;5 },6 dspStart() {7 if (this._audioData) {8 const bufferSampleRate = this._audioData.sampleRate;9 const bufferDuration = this._audioData.length / bufferSampleRate;10 this._phase =11 Math.max(0, Math.min(this._offset, bufferDuration)) * bufferSampleRate;12 }13 },14 dspProcess() {15 if (this._audioData === null) {16 return this.dspEmitEnded();17 }18 const blockSize = this.blockSize;19 const quantumStartFrame = this.context.currentSampleFrame;20 const quantumEndFrame = quantumStartFrame + blockSize;21 const sampleOffset = Math.max(0, this._startFrame - quantumStartFrame);22 const fillToSample =23 Math.min(quantumEndFrame, this._stopFrame) - quantumStartFrame;24 const outputs = this.outputs[0].bus.getMutableData();25 let writeIndex = 0;26 writeIndex = this.dspBufferRendering(27 outputs,28 sampleOffset,29 fillToSample,30 this.sampleRate,31 );32 // timeline33 // |----------------|-------*--------|----------------|----------------|34 // ^ ^ ^35 // |------>| quantumEndFrame36 // | wrote |37 // | stopFrame38 // quantumStartFrame39 if (this._stopFrame <= quantumStartFrame + writeIndex) {40 // rest samples fill zero41 const numberOfChannels = outputs.length;42 while (writeIndex < blockSize) {43 for (let ch = 0; ch < numberOfChannels; ch++) {44 outputs[ch][writeIndex] = 0;45 }46 writeIndex += 1;47 }48 this.dspEmitEnded();49 }50 },51 dspBufferRendering(outputs, writeIndex, inNumSamples, sampleRate) {52 const playbackRateValues = this._playbackRate.getSampleAccurateValues();53 const detuneValues = this._detune.getSampleAccurateValues();54 const numberOfChannels = this._audioData.numberOfChannels;55 const bufferLength = this._audioData.length;56 const bufferSampleRate = this._audioData.sampleRate;57 const bufferChannelData = this._audioData.channelData;58 const playbackRateToPhaseIncr = bufferSampleRate / sampleRate;59 let phase = this._phase;60 while (writeIndex < inNumSamples) {61 const playbackRateValue = playbackRateValues[writeIndex];62 const detuneValue = detuneValues[writeIndex];63 const computedPlaybackRate =64 playbackRateValue * Math.pow(2, detuneValue / 1200);65 for (let ch = 0; ch < numberOfChannels; ch++) {66 const v0 = bufferChannelData[ch][phase | 0] || 0;67 const v1 = bufferChannelData[ch][(phase | 0) + 1] || 0;68 outputs[ch][writeIndex] = v0 + (phase % 1) * (v1 - v0);69 }70 writeIndex += 1;71 phase += playbackRateToPhaseIncr * Math.max(0, computedPlaybackRate);72 if (this._loop) {73 if (0 <= this._loopStart && this._loopStart < this._loopEnd) {74 const loopEndSamples = this._loopEnd * bufferSampleRate;75 if (loopEndSamples <= phase) {76 phase = this._loopStart * bufferSampleRate;77 }78 } else {79 if (bufferLength <= phase) {80 phase = 0;81 }82 }83 } else {84 if (bufferLength <= phase) {85 this.dspEmitEnded();86 break;87 }88 }89 }90 this._phase = phase;91 return writeIndex;92 },93 dspEmitEnded() {94 this._done = true;95 this.context.addPostProcess(() => {96 this.outputs[0].bus.zeros();97 this.outputs[0].disable();98 this.dispatchEvent({ type: 'ended' });99 });100 },101};...
format-number.js
Source:format-number.js
1const formatNumber = (_x, precision = null) => {2 const x = precision !== null3 ? parseFloat(_x.toPrecision(precision))4 : _x5 const chars = Array.from(x.toExponential())6 let wholeStart7 let wholeEnd8 if (chars[0] === '-' || chars[0] === '+') {9 wholeStart = 110 wholeEnd = 211 } else {12 wholeStart = 013 wholeEnd = 114 }15 if (chars[wholeStart] === '0') { wholeStart = wholeEnd }16 let fracStart17 let fracEnd18 if (chars[wholeEnd] === '.') {19 fracStart = wholeEnd + 120 fracEnd = chars.lastIndexOf('e')21 } else {22 fracStart = wholeEnd23 fracEnd = wholeEnd24 }25 const exp = parseInt(chars.slice(fracEnd + 1).join(''), 10)26 const signLength = wholeStart27 const wholeLength = wholeEnd - wholeStart28 const fracLength = fracEnd - fracStart29 let leadingZeros = 030 let trailingZeros = 031 if (exp > fracLength) {32 trailingZeros = exp - fracLength33 } else if (-exp >= wholeLength) {34 leadingZeros = Math.max(0, (-exp + 1) - wholeLength)35 }36 const totalLength = 037 + signLength38 + leadingZeros39 + wholeLength40 + fracLength41 + trailingZeros42 const res = new Array(totalLength)43 let writeIndex = 044 const wholeDigits = leadingZeros ? 1 : wholeLength + exp45 let commaPosition = wholeDigits46 if (wholeStart) {47 res[writeIndex++] = chars[0]48 commaPosition++49 }50 let dotStepper = 3 - (wholeDigits % 3)51 if (dotStepper === 3) { dotStepper = 0 }52 for (let i = 1; i < leadingZeros; i++) {53 if (writeIndex === commaPosition) {54 res[writeIndex++] = ','55 dotStepper = 056 } else if (dotStepper === 3) {57 res[writeIndex++] = '.'58 dotStepper = 059 commaPosition++60 }61 res[writeIndex++] = '0'62 ++dotStepper63 }64 for (let i = wholeStart; i < wholeEnd; i++) {65 if (writeIndex === commaPosition) {66 res[writeIndex++] = ','67 dotStepper = 068 } else if (dotStepper === 3) {69 res[writeIndex++] = '.'70 dotStepper = 071 commaPosition++72 }73 res[writeIndex++] = chars[i]74 ++dotStepper75 }76 for (let i = fracStart; i < fracEnd; i++) {77 if (writeIndex === commaPosition) {78 res[writeIndex++] = ','79 dotStepper = 080 } else if (dotStepper === 3) {81 res[writeIndex++] = '.'82 dotStepper = 083 commaPosition++84 }85 res[writeIndex++] = chars[i]86 ++dotStepper87 }88 for (let i = 0; i < trailingZeros; i++) {89 if (writeIndex === commaPosition) {90 res[writeIndex++] = ','91 dotStepper = 092 } else if (dotStepper === 3) {93 res[writeIndex++] = '.'94 dotStepper = 095 commaPosition++96 }97 res[writeIndex++] = '0'98 ++dotStepper99 }100 // console.log({101 // chars: chars.join(''),102 // sign: chars.slice(0, wholeStart).join(''),103 // whole: chars.slice(wholeStart, wholeEnd).join(''),104 // frac: chars.slice(fracStart, fracEnd).join(''),105 // exp,106 // res: res.join(''),107 // })108 return res.join('')109}...
AtmelRegisters.js
Source:AtmelRegisters.js
1$(function () {23 // these classes are accessors for specialty AVR registers i.e. those with different read/write values and/or addresses4 PortRegister = Class.create({56 ctor: function(readIndex, writeIndex, dirIndex)7 {8 var self = this;9 this.ReadIndex = readIndex;10 this.WriteIndex = writeIndex;11 this.DirIndex = dirIndex;1213 this.ReadRegister =14 {15 get: function() { return AtmelContext.RAM[self.ReadIndex]; },16 set: function(value) { }17 }1819 this.WriteRegister =20 {21 get: function() { return AtmelContext.RAM[self.WriteIndex]; },22 set: function(value) { }23 }2425 AtmelContext.RAM[writeIndex].OnRegisterChanged.push(26 function (oldVal, newVal) { self.PortRegister_OnRegisterChanged(oldVal, newVal); }27 );2829 },3031 PortRegister_OnRegisterChanged: function(oldVal, newVal)32 {33 // if a pin is set as an output then writing to its write register sets the input value on it's read register as well34 var readVal = AtmelContext.RAM[this.ReadIndex].get();35 var direction = AtmelContext.RAM[this.DirIndex].get();36 readVal = readVal & ~direction;37 readVal = readVal | (direction & newVal);38 AtmelContext.RAM[this.ReadIndex].set(readVal);39 },4041 get: function()42 {43 return AtmelContext.RAM[this.ReadIndex].get();44 },4546 set: function(value)47 {48 AtmelContext.RAM[this.WriteIndex].set(value);49 },5051 get_bit: function(index)52 {53 return ((AtmelContext.RAM[this.ReadIndex].get() >> index) & 1);54 },5556 set_bit: function(index, value)57 {58 if (value == 0)59 AtmelContext.RAM[this.WriteIndex].set(AtmelContext.RAM[this.WriteIndex].get() & ~(1 << index));60 else61 AtmelContext.RAM[this.WriteIndex].set(AtmelContext.RAM[this.WriteIndex].get() | (1 << index));62 },6364 Reset: function()65 {66 AtmelContext.RAM[this.WriteIndex].Reset();67 AtmelContext.RAM[this.ReadIndex].Reset();68 }69 });7071 IndirectAddressRegister = Class.create({7273 ctor: function(index)74 {75 this.Index = index;76 },7778 Reset: function()79 {80 this.set(0);81 },8283 get: function()84 {85 var lo = AtmelContext.RAM[this.Index].get();86 var hi = AtmelContext.RAM[(this.Index + 1)].get();87 return lo | (hi << 8);88 },8990 set: function(value)91 {92 AtmelContext.RAM[this.Index].set(value & 0xff);93 AtmelContext.RAM[this.Index + 1].set(value >> 8);94 },9596 get_bit: function(index)97 {98 return ((this.get() >> index) & 1);99 },100101 set_bit: function(index, value)102 {103 if (value == 0)104 set((get() & ~(1 << index)));105 else106 set((get() | (1 << index)));107 }108109 });110
...
server.js
Source:server.js
1var express = require('express');2var serveStatic = require('serve-static');3var bodyParser = require('body-parser');4var fs = require("fs");5var writeIndex = 0;6var maxImageCount = 10;7var dataSaved = false;8var statistics = null;9var faces = null;10loadData();11var urlencodedParser = bodyParser.urlencoded({ extended: true, limit: '1mb' });12var app = express ();13app.use(serveStatic(__dirname + '\\quiz\\'));14app.get('/getFace', function (req, res) {15 if(faces.length == 0){16 res.writeHead(200, {'Content-Type': 'text/plain'});17 res.end(JSON.stringify({18 "file": "img/noImage.png",19 "archetype": Math.floor(Math.random() * 4)20 })); 21 }22 else {23 var keys = Object.keys(faces);24 var index = keys[Math.floor(keys.length * Math.random())];25 res.writeHead(200, {'Content-Type': 'text/plain'});26 res.end(JSON.stringify({27 "file": "faces/" + index + ".png",28 "archetype": faces[index]29 })); 30 }31})32app.post('/upload', urlencodedParser, function (req, res) {33 if(req.body.noWebcam){34 statistics[req.body.archetype] += 1;35 }36 else{37 var base64Data = req.body.image.replace(/^data:image\/png;base64,/, "");38 var path = "quiz/faces/" + writeIndex + ".png";39 if (fs.existsSync(path)) {40 fs.unlink(path, function(err) {41 writeFace(base64Data, path, req.body.archetype);42 });43 }44 else {45 writeFace(base64Data, path, req.body.archetype);46 }47 }48 res.writeHead(200, {'Content-Type': 'text/plain'});49 res.end(JSON.stringify(statistics));50})51app.listen(8000)52function writeFace(base64Data, path, archetype)53{54 fs.writeFile(path, base64Data, 'base64', function(err) {55 if(err)56 return;57 faces[writeIndex] = archetype;58 statistics[archetype] += 1;59 console.log("face " + writeIndex + " written -> " + JSON.stringify(statistics));60 writeIndex ++;61 writeIndex = writeIndex % 10;62 saveData();63 });64}65function loadData()66{67 fs.readFile('data.json', 'utf8', function (err, data) {68 if(err)69 {70 statistics = [0, 0, 0, 0];71 faces = [];72 writeIndex = 0;73 }74 else75 {76 data = JSON.parse(data);77 faces = data.faces;78 statistics = data.statistics;79 writeIndex = data.writeIndex;80 }81 });82}83function saveData(){84 if(faces != null && statistics != null)85 {86 fs.writeFile("data.json", JSON.stringify({87 "faces":faces,88 "statistics": statistics,89 "writeIndex": writeIndex90 }), function(err){91 if(err)92 console.log(err);93 else94 console.log("data saved");95 });96 }...
lag.js
Source:lag.js
1(function(T) {2 "use strict";3 var fn = T.fn;4 var timevalue = T.timevalue;5 function LagNode(_args) {6 T.Object.call(this, 1, _args);7 fn.fixAR(this);8 var _ = this._;9 var bits = Math.ceil(Math.log(_.samplerate) * Math.LOG2E);10 _.buffersize = 1 << bits;11 _.buffermask = _.buffersize - 1;12 _.buffer = new fn.SignalArray(_.buffersize);13 _.time = 0;14 _.readIndex = 0;15 _.writeIndex = 0;16 }17 fn.extend(LagNode);18 var $ = LagNode.prototype;19 Object.defineProperties($, {20 time: {21 set: function(value) {22 if (typeof value === "string") {23 value = timevalue(value);24 }25 if (typeof value === "number" && value > 0) {26 var _ = this._;27 _.time = value;28 var offset = (value * 0.001 * _.samplerate)|0;29 if (offset > _.buffermask) {30 offset = _.buffermask;31 }32 _.writeIndex = (_.readIndex + offset) & _.buffermask;33 }34 },35 get: function() {36 return this._.time;37 }38 }39 });40 $.process = function(tickID) {41 var _ = this._;42 if (this.tickID !== tickID) {43 this.tickID = tickID;44 fn.inputSignalAR(this);45 var cell = this.cells[0];46 var buffer = _.buffer;47 var mask = _.buffermask;48 var readIndex = _.readIndex;49 var writeIndex = _.writeIndex;50 var i, imax = cell.length;51 for (i = 0; i < imax; ++i) {52 buffer[writeIndex] = cell[i];53 cell[i] = buffer[readIndex];54 readIndex += 1;55 writeIndex = (writeIndex + 1) & mask;56 }57 _.readIndex = readIndex & mask;58 _.writeIndex = writeIndex;59 fn.outputSignalAR(this);60 }61 return this;62 };63 fn.register("lag", LagNode);...
Using AI Code Generation
1var webdriverio = require('webdriverio');2var options = {3 desiredCapabilities: {4 }5};6var client = webdriverio.remote(options);7client.init()8 .getTitle().then(function(title) {9 console.log('Title was: ' + title);10 })11 .end();12var webdriverio = require('webdriverio');13var options = {14 desiredCapabilities: {15 }16};17var client = webdriverio.remote(options);18client.init()19 .getTitle().then(function(title) {20 console.log('Title was: ' + title);21 })22 .end();23var webdriverio = require('webdriverio');24var options = {25 desiredCapabilities: {26 }27};28var client = webdriverio.remote(options);29client.init()30 .getTitle().then(function(title) {31 console.log('Title was: ' + title);32 })33 .end();34var webdriverio = require('webdriverio');35var options = {36 desiredCapabilities: {37 }38};39var client = webdriverio.remote(options);40client.init()41 .getTitle().then(function(title) {42 console.log('Title was: ' + title);43 })44 .end();45var webdriverio = require('webdriverio');46var options = {47 desiredCapabilities: {48 }49};50var client = webdriverio.remote(options);51client.init()52 .getTitle().then(function(title) {53 console.log('Title was: ' + title);54 })55 .end();
Using AI Code Generation
1var wd = require('wd');2var assert = require('assert');3var index = 1;4var desired = {5};6var browser = wd.remote('localhost', 4723);7browser.init(desired, function() {8 browser.writeIndex('q', index, 'Appium', function() {9 browser.elementByCssSelector('#tsf > div.tsf-p > div.jsb > center > input[type="submit"]:nth-child(1)', function(err, el) {10 browser.clickElement(el, function() {11 browser.waitForElementByCss('#ires > ol > div > h3 > a', function() {12 browser.title(function(err, title) {13 assert.ok(~title.indexOf('Appium'), 'Wrong title!');14 browser.quit();15 });16 });17 });18 });19 });20 });21});22writeElement(locator, text, cb)23var wd = require('wd');24var assert = require('assert');25var desired = {26};27var browser = wd.remote('localhost', 4723);28browser.init(desired, function() {29 browser.writeElement('name', 'q', 'Appium', function() {30 browser.elementByCssSelector('#tsf > div.tsf-p > div.jsb > center > input[type="submit"]:nth-child(1)', function(err, el) {31 browser.clickElement(el, function() {32 browser.waitForElementByCss('#ires > ol > div > h3 > a', function() {33 browser.title(function(err, title)
Using AI Code Generation
1var appium = require('appium');2var wd = require('wd');3var assert = require('assert');4var should = require('should');5var fs = require('fs');6var path = require('path');7var _ = require('underscore');8var desiredCaps = {9};10var driver = wd.promiseChainRemote("localhost", 4723);11driver.init(desiredCaps).then(function() {12 return driver.sleep(10000);13}).then(function() {14 return driver.elementById('io.appium.android.apis:id/edit');15}).then(function(el) {16 return el.sendKeys("Hello World");17}).fin(function() {18 return driver.quit();19}).done();20I have tried to use appium.writeIndex() method with the following code but it is not working. I am getting the following error21I have tried to use appium.writeIndex() method with the following code but it is not working. I am getting the following error22appium.writeIndex(4723, desiredCaps, function(err, res) {23 if (err) {24 console.log("Error: " + err);25 } else {26 console.log("Response: " + res);27 }28});29Your name to display (optional):30Your name to display (optional):
Using AI Code Generation
1var wd = require('wd'),2 path = require('path'),3 fs = require('fs'),4 assert = require('assert'),5 _ = require('underscore'),6 serverConfigs = require('./helpers/appium-servers');7var serverConfig = serverConfigs.local;8var driver = wd.promiseChainRemote(serverConfig);9var desired = {10 app: path.resolve(__dirname, "apps", "TestApp.app.zip"),11};12 .init(desired)13 .then(function() {14 .writeIndex()15 .then(function() {16 .source()17 .then(function(src) {18 assert(src.indexOf('<html') !== -1);19 });20 });21 })22 .fin(function() { return driver.quit(); })23 .done();
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!