diff --git a/src/post-worker.js b/src/post-worker.js index 13675a89..6c01f39a 100644 --- a/src/post-worker.js +++ b/src/post-worker.js @@ -594,6 +594,7 @@ function onMessageFromMainEmscriptenThread(message) { for (var i = 0; i < self.octObj.getEventCount(); i++) { var evnt_ptr = self.octObj.track.get_events(i); var event = { + _index: i, Start: evnt_ptr.get_Start(), Duration: evnt_ptr.get_Duration(), ReadOrder: evnt_ptr.get_ReadOrder(), @@ -636,6 +637,7 @@ function onMessageFromMainEmscriptenThread(message) { for (var i = 0; i < self.octObj.getStyleCount(); i++) { var styl_ptr = self.octObj.track.get_styles(i); var style = { + _index: i, Name: styl_ptr.get_Name(), FontName: styl_ptr.get_FontName(), FontSize: styl_ptr.get_FontSize(), diff --git a/src/subtitles-octopus.js b/src/subtitles-octopus.js index 0418f8b8..9ef440e9 100644 --- a/src/subtitles-octopus.js +++ b/src/subtitles-octopus.js @@ -88,8 +88,8 @@ var SubtitlesOctopus = function (options) { // Worker if (!self.worker) { self.worker = new Worker(self.workerUrl); - self.worker.onmessage = self.onWorkerMessage; - self.worker.onerror = self.workerError; + self.worker.addEventListener('message', self.onWorkerMessage); + self.worker.addEventListener('error', self.workerError); } self.workerActive = false; self.createCanvas(); @@ -387,13 +387,9 @@ var SubtitlesOctopus = function (options) { break; } case 'get-events': { - console.log(data.target); - console.log(data.events); break; } case 'get-styles': { - console.log(data.target); - console.log(data.styles); break; } case 'ready': { @@ -538,8 +534,24 @@ var SubtitlesOctopus = function (options) { }; self.getEvents = function () { - self.worker.postMessage({ - target: 'get-events' + return new Promise((resolve, reject) => { + try { + self.worker.onmessage = result => { + if (result.data.target == "get-events") { + resolve(result.data.events); + } + }; + + self.worker.onerror = error => { + reject(error); + }; + + self.worker.postMessage({ + target: 'get-events' + }); + } catch (error) { + reject(error); + } }); }; @@ -566,8 +578,24 @@ var SubtitlesOctopus = function (options) { }; self.getStyles = function () { - self.worker.postMessage({ - target: 'get-styles' + return new Promise((resolve, reject) => { + try { + self.worker.onmessage = result => { + if (result.data.target == "get-styles") { + resolve(result.data.styles); + } + }; + + self.worker.onerror = error => { + reject(error); + }; + + self.worker.postMessage({ + target: 'get-styles' + }); + } catch (error) { + reject(error); + } }); };