updated web demo for new profiles

上级 dbe7b8cf
......@@ -21,7 +21,7 @@ export class DemoTerminalTabComponent extends BaseTerminalTabComponent {
ngOnInit (): void {
this.logger = this.log.create('terminalTab')
this.session = new Session(this.logger)
this.session = new Session(this.injector, this.logger)
super.ngOnInit()
}
......
/* eslint-disable @typescript-eslint/no-empty-function */
import { Injector, NgZone } from '@angular/core'
import * as path from 'path'
import { BaseSession } from 'tabby-terminal'
import { Logger } from '../../tabby-core/typings'
const currentScript: any = document.currentScript
export class Session extends BaseSession {
private dataPath = window['tabbyWebDemoDataPath'] ?? currentScript.src + '../../../data'
private vm: any
private zone: NgZone
static v86Loaded = false
constructor (
injector: Injector,
logger: Logger,
) {
super(logger)
this.zone = injector.get(NgZone)
}
async start (): Promise<void> {
this.open = true
this.emitMessage('Hey\r\n')
......@@ -25,23 +36,25 @@ export class Session extends BaseSession {
})
}
this.vm = new window['V86Starter']({
bios: {
url: `${this.dataPath}/bios.bin`,
},
vga_bios: {
url: `${this.dataPath}/vgabios.bin`,
},
wasm_path: `${this.dataPath}/v86.wasm`,
cdrom: {
url: `${this.dataPath}/linux.iso`,
},
initial_state: {
url: `${this.dataPath}/v86state.bin`,
},
autostart: true,
disable_keyboard: true,
disable_speaker: true,
this.zone.runOutsideAngular(() => {
this.vm = new window['V86Starter']({
bios: {
url: `${this.dataPath}/bios.bin`,
},
vga_bios: {
url: `${this.dataPath}/vgabios.bin`,
},
wasm_path: `${this.dataPath}/v86.wasm`,
cdrom: {
url: `${this.dataPath}/linux.iso`,
},
initial_state: {
url: `${this.dataPath}/v86state.bin`,
},
autostart: true,
disable_keyboard: true,
disable_speaker: true,
})
})
this.vm.add_listener('emulator-ready', () => {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册