| 820 | } |
| 821 | |
| 822 | async loadLayers(layers) { |
| 823 | let on_ready = function(d, c) { |
| 824 | if (!d.ready) { |
| 825 | setTimeout(function(){ on_ready(d, c); }, 10); |
| 826 | } else { |
| 827 | c(d); |
| 828 | } |
| 829 | }; |
| 830 | for (let layer_d of layers) { |
| 831 | let layer = null; |
| 832 | if (layer_d.type == "VideoLayer") { |
| 833 | layer = await this.addURI(layer_d.uri); |
| 834 | } else if (layer_d.type == "TextLayer") { |
| 835 | layer = this.add(new TextLayer(layer_d.name)); |
| 836 | } else if (layer_d.type == "ImageLayer") { |
| 837 | layer = await this.addURI(layer_d.uri); |
| 838 | } |
| 839 | if (!layer) { |
| 840 | alert("layer couldn't be processed"); |
| 841 | continue; |
| 842 | } |
| 843 | on_ready(layer, function(l) { |
| 844 | layer.name = layer.name; |
| 845 | layer.width = layer_d.width, |
| 846 | layer.height = layer_d.height, |
| 847 | layer.start_time = layer_d.start_time; |
| 848 | layer.total_time = layer_d.total_time; |
| 849 | if (layer_d.frames) { |
| 850 | layer.frames = []; |
| 851 | for (let f of layer_d.frames) { |
| 852 | layer.frames.push(new Float32Array(f)); |
| 853 | } |
| 854 | } |
| 855 | }); |
| 856 | } |
| 857 | } |
| 858 | |
| 859 | intersectsTime(time, query) { |
| 860 | if (!query) { |