diff --git a/src/main.ts b/src/main.ts index 8513a89..b228af4 100755 --- a/src/main.ts +++ b/src/main.ts @@ -169,6 +169,27 @@ export class MPinstance extends InstanceBase { return null } + + public readonly initPolling = (): void => { + //this.instance.log('warn', `CONNECTION| INIT POLLING >>> ${this.pollAPI}`) + if (this.pollAPI !== undefined && this.pollAPI !== null) { + clearInterval(this.pollAPI) + } + + const pollAPI = () => { + //if (this.websocket?.readyState == 1) { + this.updatPolling() + //} + } + + pollAPI() + + // Check if API Polling is disabled + if (this.config.pollInterval != 0) { + const pollInterval = this.config.pollInterval < 100 ? 100 : this.config.pollInterval + this.pollAPI = setInterval(pollAPI, pollInterval) + } + } } runEntrypoint(MPinstance, UpgradeScripts) diff --git a/src/mpconnection.ts b/src/mpconnection.ts index f8fe7b7..a921307 100755 --- a/src/mpconnection.ts +++ b/src/mpconnection.ts @@ -40,7 +40,7 @@ export class MPconnection { this.instance!.log('info', 'WEBSOCKET MP OPENED ' + this.websocket?.readyState) this.instance.mpConnected = true this.instance.isConnected() - //this.initPolling() + this.instance.initPolling() }) this.websocket.on('close', (ev: { toString: () => any }) => { diff --git a/src/presets.ts b/src/presets.ts index 56a8e13..96cd984 100755 --- a/src/presets.ts +++ b/src/presets.ts @@ -75,7 +75,7 @@ export function getPresets(instance: MPinstance): CompanionPresetDefinitions { //text: 'Generals', }) - // Play + // PLAY playlistsPresets.push({ category: `${playlist + 1} - ${plName}`, name: `${plName}\nPlay`, @@ -103,7 +103,7 @@ export function getPresets(instance: MPinstance): CompanionPresetDefinitions { feedbacks: [], }) - // Play + // PAUSE playlistsPresets.push({ category: `${playlist + 1} - ${plName}`, name: `${plName}\nPause`, @@ -134,13 +134,16 @@ export function getPresets(instance: MPinstance): CompanionPresetDefinitions { // NEXT CUE playlistsPresets.push({ category: `${playlist + 1} - ${plName}`, - name: `${plName}\nNext cue`, + name: `${plName}`, type: 'button', style: { - text: `${plName}\nNext cue`, + text: `${plName}`, + alignment: 'center:top', size: textSize, color: combineRgb(255, 255, 255), bgcolor: instance.grayModuloPlayer, + png64: next_icon, + pngalignment: 'center:center', }, steps: [ { @@ -162,13 +165,16 @@ export function getPresets(instance: MPinstance): CompanionPresetDefinitions { // PREV CUE playlistsPresets.push({ category: `${playlist + 1} - ${plName}`, - name: `${plName}\nPrev cue`, + name: `${plName}`, type: 'button', style: { - text: `${plName}\nPrev cue`, + text: `${plName}`, + alignment: 'center:top', size: textSize, color: combineRgb(255, 255, 255), bgcolor: instance.grayModuloPlayer, + png64: prev_icon, + pngalignment: 'center:center', }, steps: [ { @@ -871,3 +877,9 @@ export function getPresets(instance: MPinstance): CompanionPresetDefinitions { return presets as unknown as CompanionPresetDefinitions } + +const next_icon = + 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAFEmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgeG1wOkNyZWF0ZURhdGU9IjIwMjUtMDYtMjRUMTA6NDI6MTUrMDIwMCIKICAgeG1wOk1vZGlmeURhdGU9IjIwMjUtMDYtMjRUMTA6NDY6MTQrMDI6MDAiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjUtMDYtMjRUMTA6NDY6MTQrMDI6MDAiCiAgIHBob3Rvc2hvcDpEYXRlQ3JlYXRlZD0iMjAyNS0wNi0yNFQxMDo0MjoxNSswMjAwIgogICBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIgogICBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiCiAgIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSI0MCIKICAgZXhpZjpQaXhlbFlEaW1lbnNpb249IjQwIgogICBleGlmOkNvbG9yU3BhY2U9IjEiCiAgIHRpZmY6SW1hZ2VXaWR0aD0iNDAiCiAgIHRpZmY6SW1hZ2VMZW5ndGg9IjQwIgogICB0aWZmOlJlc29sdXRpb25Vbml0PSIyIgogICB0aWZmOlhSZXNvbHV0aW9uPSI3Mi8xIgogICB0aWZmOllSZXNvbHV0aW9uPSI3Mi8xIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0icHJvZHVjZWQiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFmZmluaXR5IFBob3RvIDIgMi42LjIiCiAgICAgIHN0RXZ0OndoZW49IjIwMjUtMDYtMjRUMTA6NDY6MTQrMDI6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0iciI/Phspxb4AAAGCaUNDUHNSR0IgSUVDNjE5NjYtMi4xAAAokXWRzytEURTHPzMGEyOKxSwsXhpKIT9qYqOMNNSkaYzyazPzzJtRM+P13pskW2WrKLHxa8FfwFZZK0WkZM2W2KDnPKNGMud27vnc773ndO+54I5n1Zzp6YZc3jJi4ZAyNT2jVD9RhR8v7XgSqqkPRaMRytrbDS4nXnU6tcqf+9dq51OmCi6v8KCqG5bwqHBkydId3hRuUjOJeeFj4Q5DLih87ejJIj86nC7yh8NGPDYM7gZhJf2Lk79YzRg5YXk5gVy2oP7cx3mJL5WfnJDYIt6MSYwwIRTGGGGYID0MyBykk166ZEWZ/O7v/HEWJVeVWWcZgwXSZLDoELUg1VMSNdFTMrIsO/3/21dT6+stVveFoPLBtl9aoXoDPtdt+33ftj8PoOIezvKl/MU96H8Vfb2kBXahfhVOzktacgtO18B/pyeMxLdUIe7WNHg+grppaLyEmtliz372ObyF+Ip81QVs70CbnK+f+wI1bGfP9gSzaAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAN9JREFUWIXt1D8OQUEQgPEZf0KpcQAKh3ATrqByAU6glFCLS9ByBApH4AKv8imEbPEi5i1vSeZXv9n58jZZEeecc86lpJaPgZ6IjCJ3zlX1FHlGPkCBJcUtANNPKRJZB7YF4jZA/atxQWQLOBriDkCrlLggsgtc3og7A51S44LIPpC9iMuAfpK4IHL4InCQNO4BmObETVJ3PXF/ftZB3IpvPydWQBPYAzugkbonF9AG2p88s/A1AGMRqRpGZqqKdU9MYCYilqusqurVuqdiHSjbzwfWImbnkfPOOeec+wM3bf56C1rwLO4AAAAASUVORK5CYII=' + +const prev_icon = + 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAFEmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgeG1wOkNyZWF0ZURhdGU9IjIwMjUtMDYtMjRUMTA6NDI6MTUrMDIwMCIKICAgeG1wOk1vZGlmeURhdGU9IjIwMjUtMDYtMjRUMTA6NDY6MjQrMDI6MDAiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjUtMDYtMjRUMTA6NDY6MjQrMDI6MDAiCiAgIHBob3Rvc2hvcDpEYXRlQ3JlYXRlZD0iMjAyNS0wNi0yNFQxMDo0MjoxNSswMjAwIgogICBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIgogICBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiCiAgIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSI0MCIKICAgZXhpZjpQaXhlbFlEaW1lbnNpb249IjQwIgogICBleGlmOkNvbG9yU3BhY2U9IjEiCiAgIHRpZmY6SW1hZ2VXaWR0aD0iNDAiCiAgIHRpZmY6SW1hZ2VMZW5ndGg9IjQwIgogICB0aWZmOlJlc29sdXRpb25Vbml0PSIyIgogICB0aWZmOlhSZXNvbHV0aW9uPSI3Mi8xIgogICB0aWZmOllSZXNvbHV0aW9uPSI3Mi8xIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0icHJvZHVjZWQiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFmZmluaXR5IFBob3RvIDIgMi42LjIiCiAgICAgIHN0RXZ0OndoZW49IjIwMjUtMDYtMjRUMTA6NDY6MjQrMDI6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0iciI/PiTiGS4AAAGCaUNDUHNSR0IgSUVDNjE5NjYtMi4xAAAokXWRzytEURTHPzMGEyOKxSwsXhpKIT9qYqOMNNSkaYzyazPzzJtRM+P13pskW2WrKLHxa8FfwFZZK0WkZM2W2KDnPKNGMud27vnc773ndO+54I5n1Zzp6YZc3jJi4ZAyNT2jVD9RhR8v7XgSqqkPRaMRytrbDS4nXnU6tcqf+9dq51OmCi6v8KCqG5bwqHBkydId3hRuUjOJeeFj4Q5DLih87ejJIj86nC7yh8NGPDYM7gZhJf2Lk79YzRg5YXk5gVy2oP7cx3mJL5WfnJDYIt6MSYwwIRTGGGGYID0MyBykk166ZEWZ/O7v/HEWJVeVWWcZgwXSZLDoELUg1VMSNdFTMrIsO/3/21dT6+stVveFoPLBtl9aoXoDPtdt+33ftj8PoOIezvKl/MU96H8Vfb2kBXahfhVOzktacgtO18B/pyeMxLdUIe7WNHg+grppaLyEmtliz372ObyF+Ip81QVs70CbnK+f+wI1bGfP9gSzaAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAOJJREFUWIXt1bFtwkAYhuHvR6C4dOMBEilLhElgDZSWjIBElfRhCdKGFVwwAixgS0Ev1SkiIJQ7ZB/F/9T+fG9hnSXnnHPO5WQpI2AgaREx+TGzWcpZtwQeIiatmRUpZw1SRn26+8Bh4g5JrxHPx3wO3QEqoMrdcRFQABvgG3jI3XMCMGDFr08g6YboBPDGuXnuLkkSML0QF0xyx42B9kpgA7zkinsC9lfigh3w2HdcCdT/iAtqoOwrbgR8RcQFa2DUdZwBHwlxwTuR10/sr+5ZUiNpGbn7+47tDXvnnHPO9egInP95mCldvZ4AAAAASUVORK5CYII=' diff --git a/src/sdconnection.ts b/src/sdconnection.ts index 681f392..8bae062 100755 --- a/src/sdconnection.ts +++ b/src/sdconnection.ts @@ -42,7 +42,7 @@ export class SDconnection { this.instance!.log('info', 'WEBSOCKET SPYDOG OPENED ' + this.websocket?.readyState) this.instance.sdConnected = true this.instance.isConnected() - this.initPolling() + this.instance.initPolling() }) this.websocket.on('close', (ev: { toString: () => any }) => { @@ -113,27 +113,5 @@ export class SDconnection { this.websocket = null this.instance.sdConnected = false this.instance.isConnected() - //this.instance!.log('debug', 'Connection has been destroyed due to removal or disable by user') - } - - public readonly initPolling = (): void => { - //this.instance.log('warn', `CONNECTION| INIT POLLING >>> ${this.pollAPI}`) - if (this.pollAPI !== undefined) { - clearInterval(this.pollAPI) - } - - const pollAPI = () => { - if (this.websocket?.readyState == 1) { - this.instance.updatPolling() - } - } - - pollAPI() - - // Check if API Polling is disabled - if (this.instance.config.pollInterval != 0) { - const pollInterval = this.instance.config.pollInterval < 100 ? 100 : this.instance.config.pollInterval - this.pollAPI = setInterval(pollAPI, pollInterval) - } } }