Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
ff-editor / dist / index.html
Size: Mime:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <div id="main"></div>
    <script>
        (function(root) {
            const loadAppScript = function(src){
                const appScript = document.createElement('script');
                appScript.src = src;
                document.body.appendChild(appScript);
            }
            if(typeof(require) === 'undefined') return loadAppScript('bundle.js');
            let remote = null;
            try {
                remote = require('electron').remote;
            } catch(err) {
                return loadAppScript('bundle.js');
            }
            
            const config = remote.require('config');
            let playbackTimeout = null;
            let stopPlayback = true;
            const revPlay = function() {
                this.playbackRate = 1;
                clearTimeout(playbackTimeout);
                if(this.currentTime === 0 || stopPlayback) {
                    clearTimeout(playbackTimeout);
                    //this.pause();
                } else {
                    this.currentTime += -.5;
                    setTimeout(revPlay.bind(this), 80);
                }
            };
            const play = function() {
                const media = document
                    .querySelectorAll('audio,video');
                const src = media[0];
                stopPlayback = true;
                clearTimeout(playbackTimeout);
                src.play();
            };
            const stop = function() {
                const media = document
                    .querySelectorAll('audio,video');
                const src = media[0];
                stopPlayback = true;
                clearTimeout(playbackTimeout);
                src.playbackRate = 1;
                src.pause();
            };
            const rew = function() {
                const media = document
                    .querySelectorAll('audio,video');
                const src = media[0];
                stopPlayback = true;
            };
            const fwd = function() {
                const media = document
                    .querySelectorAll('audio,video');
                const src = media[0];
                stopPlayback = true;
                src.playbackRate = 2;
            };

            root.ffplay = play;
            root.ffstop = stop;
            root.fffwd = fwd;
            root.ffrwd = rew;

            require('electron').ipcRenderer
                .on('pedal', (event, message) => {
                    const payload = JSON.parse(message);
                    console.log(payload.device.messages);
                    const media = document.querySelectorAll('audio,video');
                    if(media.length === 0) return;
                    payload.device.messages.forEach(function(msg) {
                        const src = media[0];
                        console.log(msg);
                        switch(msg) {
                            case 'play':
                                play();
                                break;
                            case 'stop':
                                stop();
                                break;
                            case 'rew':
                                rew();
                                break;
                            case 'fwd':
                                fwd();
                                break;
                            case 'fwdplay':
                                stopPlayback = false;
                                src.playbackRate = 2;
                                src.play()
                                break;
                            case 'rewplay':
                                stopPlayback = false;
                                src.play()
                                playbackTimeout = setTimeout(revPlay.bind(src), 80);
                                break;
                        }
                    });
                });
            return loadAppScript('bundle.js');
        })(this)
    </script>
</body>
</html>