diff --git a/package-lock.json b/package-lock.json index f261ea007..db3315fc0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15719,7 +15719,7 @@ "resolved": "https://registry.npmjs.org/wmic/-/wmic-0.3.0.tgz", "integrity": "sha1-j3R9INVyUzfRIn4fGwIqaRDVPjg=", "requires": { - "async": "^3.2.1", + "async": "3.2.1", "iconv-lite": "^0.4.13" }, "dependencies": { diff --git a/src/application-manager/helpers.ts b/src/application-manager/helpers.ts index 36049eaa3..9e840e42f 100644 --- a/src/application-manager/helpers.ts +++ b/src/application-manager/helpers.ts @@ -63,7 +63,7 @@ export const monitorActivity = (browserWindow: BrowserWindow, timeout: number, c log.info(`Activity monitor enabled (timeout value: ${timeout}ms)`) const watchDogTimeout = 30000 // ping every 30 s - let watchDogTimer: number | undefined + let watchDogTimer: NodeJS.Timeout const start = () => { setTimeout(() => { diff --git a/src/frontend/src/players/abstractPlayer.ts b/src/frontend/src/players/abstractPlayer.ts index c760f78ce..600cc0c74 100644 --- a/src/frontend/src/players/abstractPlayer.ts +++ b/src/frontend/src/players/abstractPlayer.ts @@ -73,4 +73,4 @@ export { IPlayer, PlayProps, SubtitlesProps, -} \ No newline at end of file +} diff --git a/src/frontend/src/players/player.ts b/src/frontend/src/players/player.ts index f0c4bedb1..e2479f852 100644 --- a/src/frontend/src/players/player.ts +++ b/src/frontend/src/players/player.ts @@ -90,6 +90,7 @@ export class Player extends AbstractPlayer { if (!this.playPipelineHeadOutput && this.playPipelineTail) { return } + this.log.info('--------- SETTING SUBTITLE PID', subtitlesPid, '---------') if (this.playPipelineTail === this.transmuxer) { // Switch to FFMPEG diff --git a/src/frontend/src/players/vlc/player.ts b/src/frontend/src/players/vlc/player.ts index 38c8afe4e..e0ec5be71 100644 --- a/src/frontend/src/players/vlc/player.ts +++ b/src/frontend/src/players/vlc/player.ts @@ -1,7 +1,7 @@ import { ChildProcess, spawn } from 'child_process' import { app, IpcMainEvent, WebContents } from 'electron' import { IPlayerStore, PlayerPosition } from '../../interfaces/playerStore' -import { ILogger } from '../../logging/types' +import { ILogger, LogSeverity } from '../../logging/types' import { Store } from '../../store' import { AbstractPlayer, PlayProps } from '../abstractPlayer' import { IMessage, LogMessage, MessageDataType, MessageType, ProcessMessaging, VLCLogLevel } from './messaging' @@ -25,6 +25,7 @@ export class VlcPlayer extends AbstractPlayer { private playerPosition: ResizeProps = { x: 0, y: 0, width: 0, height: 0 } private keepAliveTimeout?: ResetableTimeout private frontendWebView?: WebContents + private logLevel: LogSeverity = LogSeverity.INFO; constructor(private readonly flowrWindow: FlowrWindow, store: Store) { super(store) @@ -33,10 +34,13 @@ export class VlcPlayer extends AbstractPlayer { this.onError = this.onError.bind(this) this.onMessage = this.onMessage.bind(this) this.resize = this.resize.bind(this) + this.setLogLevel = this.setLogLevel.bind(this) /* eslint-enable @typescript-eslint/no-unsafe-assignment */ // eslint-disable-next-line @typescript-eslint/unbound-method this.registerEvent('resize', this.resize) + // eslint-disable-next-line @typescript-eslint/unbound-method + this.registerEvent('setlogLevel',this.setLogLevel) } private resetKeepAlive() { @@ -62,10 +66,11 @@ export class VlcPlayer extends AbstractPlayer { } const path = this.store.get('pipeline')?.metadata?.applicationPath + if (!path) { throw Error('No path is defined for VLC executable. Please configure it in flowr-admin\'s settings') } - const args = [url, toRectangle(this.playerPosition), this.store.get('position')] + const args = [url, toRectangle(this.playerPosition), this.store.get('position'),this.flowrWindow.store.get('logLevel')] const process = spawn(path, args) /* eslint-disable @typescript-eslint/unbound-method */ @@ -121,6 +126,7 @@ export class VlcPlayer extends AbstractPlayer { case VLCLogLevel.ERROR: return this.log.error.bind(this.log) as ILogger['error'] case VLCLogLevel.INFO: + return this.log.info.bind(this.log) as ILogger['info'] default: return this.log.info.bind(this.log) as ILogger['info'] } @@ -189,6 +195,11 @@ export class VlcPlayer extends AbstractPlayer { // not required now, maybe later } + setLogLevel(_: IpcMainEvent, logLevel: LogSeverity): void { + this.logLevel = logLevel + this.messaging.send(MessageType.LOG, {value: this.logLevel}) + } + resize(_: IpcMainEvent, { x, y, width, height }: ResizeProps): void { const windowPosition = this.flowrWindow.getBounds() this.playerPosition = { diff --git a/src/launcher/index.ts b/src/launcher/index.ts index 5e5ed5217..a1e633a70 100644 --- a/src/launcher/index.ts +++ b/src/launcher/index.ts @@ -195,7 +195,6 @@ async function main() { maxTab : 0, }) }) - ipcMain.on('flowrLanguageChanged', (e: Event, lang: string) => applicationManager.languageChanged(lang)) } catch (e) { console.error('Error in init', e)