{"version":3,"file":"anim_hwave_timer.min.js","sources":["../src/anim_hwave_timer.js"],"sourcesContent":["/* jshint ignore:start */\ndefine(['jquery', 'core/log'], function ($, log) {\n\n    \"use strict\"; // jshint ;_;\n\n    log.debug('anim_horizontal_wave_ra: initialising');\n\n    return {\n\n        analyser: null,\n        cvs: null,\n        cvsctx: null,\n        sounddetected: false,\n        displaytime: '00:00:00',\n        drawparams: {\n            wavColor: \"#CCCCCC\",\n            textColor: \"#000000\",\n            lineWidth: 2,\n            font: '30px Georgia',\n            textAlign: \"center\"\n        },\n\n        //for making multiple instances\n        clone: function () {\n            return $.extend(true, {}, this);\n        },\n\n\n        //init\n        init: function (analyser, cvs) {\n            this.cvs = cvs;\n            this.cvsctx = cvs.getContext(\"2d\");\n            this.cvsctx.textAlign = this.drawparams.textAlign;\n            this.analyser = analyser;\n        },\n\n        setDrawParam: function (paramkey, paramvalue) {\n            this.drawparams[paramkey] = paramvalue;\n        },\n\n        clear: function () {\n            this.cvsctx.clearRect(0, 0, this.cvs.width, this.cvs.height);\n            this.cvsctx.lineWidth = 2;\n            this.cvsctx.strokeStyle = this.drawparams.textColor;\n            this.cvsctx.beginPath();\n            this.drawTime(this.cvsctx, this.displaytime, this.cvs.width, this.cvs.height);\n            this.cvsctx.stroke();\n        },\n\n        drawTime: function (ctx, displaytime, cwidth, cheight) {\n            ctx.fillStyle = this.drawparams.textColor;\n            ctx.font = this.drawparams.font;\n            ctx.fillText(displaytime, cwidth / 2, (cheight / 4) * 3);\n        },\n\n        start: function () {\n            this.analyser.core.fftSize = 2048;\n            var bufferLength = this.analyser.core.fftSize;\n            var dataArray = new Uint8Array(bufferLength);\n            var cwidth = this.cvs.width;\n            var cheight = this.cvs.height;\n            var canvasCtx = this.cvsctx;\n            var analyser = this.analyser;\n            var that = this;\n            this.clear();\n\n            var draw = function () {\n\n                var drawVisual = requestAnimationFrame(draw);\n\n                //cancel out if the theinterval is null\n                if (!analyser.theinterval) {\n                    return;\n                }\n\n                analyser.core.getByteTimeDomainData(dataArray);\n\n                //filling is rubbish, we just clear it\n                //canvasCtx.fillStyle = 'rgb(200, 200, 200)';\n                //canvasCtx.fillRect(0, 0, cwidth, cheight);\n                canvasCtx.clearRect(0, 0, cwidth, cheight);\n\n                canvasCtx.lineWidth = that.drawparams.lineWidth;\n                canvasCtx.strokeStyle = that.drawparams.wavColor;\n                canvasCtx.beginPath();\n\n                var lineheight = (cheight / 4) * 3;\n\n                var sliceWidth = cwidth * 2.0 / bufferLength;\n                var x = 0;\n                var oldy = 0;\n\n                //we check if we could capture sound here\n                if (bufferLength > 0) {\n                    var level = dataArray[bufferLength - 1];\n                    if (level != 128) {\n                        that.sounddetected = true;\n                    }\n                }\n\n                for (var i = 0; i < bufferLength; i++) {\n\n                    var v = dataArray[i] / 128.0;\n                    var y = v * lineheight / 2;\n\n                    if (i === 0) {\n                        canvasCtx.moveTo(x, y);\n                    } else {\n                        //canvasCtx.lineTo(x, oldy);\n                        canvasCtx.lineTo(x, y);\n\n                    }\n                    oldy = y;\n                    x += sliceWidth;\n                }\n\n                canvasCtx.lineTo(cwidth, lineheight / 2);\n                //draw thetime\n                that.drawTime(canvasCtx, that.displaytime, cwidth, cheight);\n                canvasCtx.stroke();\n\n            };\n\n            draw();\n        }//END OF START\n    };//end of returned object\n});//total end\n"],"names":["define","$","log","debug","analyser","cvs","cvsctx","sounddetected","displaytime","drawparams","wavColor","textColor","lineWidth","font","textAlign","clone","extend","this","init","getContext","setDrawParam","paramkey","paramvalue","clear","clearRect","width","height","strokeStyle","beginPath","drawTime","stroke","ctx","cwidth","cheight","fillStyle","fillText","start","core","fftSize","bufferLength","dataArray","Uint8Array","canvasCtx","that","draw","requestAnimationFrame","theinterval","getByteTimeDomainData","lineheight","sliceWidth","x","i","y","moveTo","lineTo"],"mappings":"AACAA,wCAAO,CAAC,SAAU,aAAa,SAAUC,EAAGC,YAIxCA,IAAIC,MAAM,yCAEH,CAEHC,SAAU,KACVC,IAAK,KACLC,OAAQ,KACRC,eAAe,EACfC,YAAa,WACbC,WAAY,CACRC,SAAU,UACVC,UAAW,UACXC,UAAW,EACXC,KAAM,eACNC,UAAW,UAIfC,MAAO,kBACId,EAAEe,QAAO,EAAM,GAAIC,OAK9BC,KAAM,SAAUd,SAAUC,UACjBA,IAAMA,SACNC,OAASD,IAAIc,WAAW,WACxBb,OAAOQ,UAAYG,KAAKR,WAAWK,eACnCV,SAAWA,UAGpBgB,aAAc,SAAUC,SAAUC,iBACzBb,WAAWY,UAAYC,YAGhCC,MAAO,gBACEjB,OAAOkB,UAAU,EAAG,EAAGP,KAAKZ,IAAIoB,MAAOR,KAAKZ,IAAIqB,aAChDpB,OAAOM,UAAY,OACnBN,OAAOqB,YAAcV,KAAKR,WAAWE,eACrCL,OAAOsB,iBACPC,SAASZ,KAAKX,OAAQW,KAAKT,YAAaS,KAAKZ,IAAIoB,MAAOR,KAAKZ,IAAIqB,aACjEpB,OAAOwB,UAGhBD,SAAU,SAAUE,IAAKvB,YAAawB,OAAQC,SAC1CF,IAAIG,UAAYjB,KAAKR,WAAWE,UAChCoB,IAAIlB,KAAOI,KAAKR,WAAWI,KAC3BkB,IAAII,SAAS3B,YAAawB,OAAS,EAAIC,QAAU,EAAK,IAG1DG,MAAO,gBACEhC,SAASiC,KAAKC,QAAU,SACzBC,aAAetB,KAAKb,SAASiC,KAAKC,QAClCE,UAAY,IAAIC,WAAWF,cAC3BP,OAASf,KAAKZ,IAAIoB,MAClBQ,QAAUhB,KAAKZ,IAAIqB,OACnBgB,UAAYzB,KAAKX,OACjBF,SAAWa,KAAKb,SAChBuC,KAAO1B,UACNM,YAEDqB,KAAO,WAEUC,sBAAsBD,SAGlCxC,SAAS0C,aAId1C,SAASiC,KAAKU,sBAAsBP,WAKpCE,UAAUlB,UAAU,EAAG,EAAGQ,OAAQC,SAElCS,UAAU9B,UAAY+B,KAAKlC,WAAWG,UACtC8B,UAAUf,YAAcgB,KAAKlC,WAAWC,SACxCgC,UAAUd,gBAENoB,WAAcf,QAAU,EAAK,EAE7BgB,WAAsB,EAATjB,OAAeO,aAC5BW,EAAI,KAIJX,aAAe,EAEF,KADDC,UAAUD,aAAe,KAEjCI,KAAKpC,eAAgB,OAIxB,IAAI4C,EAAI,EAAGA,EAAIZ,aAAcY,IAAK,KAG/BC,EADIZ,UAAUW,GAAK,IACXH,WAAa,EAEf,IAANG,EACAT,UAAUW,OAAOH,EAAGE,GAGpBV,UAAUY,OAAOJ,EAAGE,GAGjBA,EACPF,GAAKD,WAGTP,UAAUY,OAAOtB,OAAQgB,WAAa,GAEtCL,KAAKd,SAASa,UAAWC,KAAKnC,YAAawB,OAAQC,SACnDS,UAAUZ,WAIdc"}