mirror of
https://github.com/m1k1o/neko.git
synced 2024-07-24 14:40:50 +12:00
add room.settings.updated.
This commit is contained in:
parent
17b6493832
commit
2536b49568
@ -6,6 +6,7 @@ import type { AxiosProgressEvent } from 'axios'
|
||||
import { Logger } from '../utils/logger'
|
||||
import { NekoConnection } from './connection'
|
||||
import type NekoState from '../types/state'
|
||||
import type { Settings } from '../types/state'
|
||||
|
||||
export interface NekoEvents {
|
||||
// connection events
|
||||
@ -36,7 +37,8 @@ export interface NekoEvents {
|
||||
|
||||
// room events
|
||||
['room.control.host']: (hasHost: boolean, hostID?: string) => void
|
||||
['room.screen.updated']: (width: number, height: number, rate: number, id?: string) => void
|
||||
['room.screen.updated']: (width: number, height: number, rate: number, id: string) => void
|
||||
['room.settings.updated']: (settings: Settings, id: string) => void
|
||||
['room.clipboard.updated']: (text: string) => void
|
||||
['room.broadcast.status']: (isActive: boolean, url?: string) => void
|
||||
|
||||
@ -113,9 +115,10 @@ export class NekoMessages extends EventEmitter<NekoEvents> {
|
||||
this[EVENT.SESSION_CREATED](conf.sessions[id])
|
||||
}
|
||||
|
||||
this[EVENT.SCREEN_UPDATED](conf.screen_size)
|
||||
const { width, height, rate } = conf.screen_size
|
||||
this._state.screen.size = { width, height, rate } // TODO: Vue.Set
|
||||
this[EVENT.CONTROL_HOST](conf.control_host)
|
||||
this[EVENT.SYSTEM_SETTINGS](conf.settings)
|
||||
this._state.settings = conf.settings // TODO: Vue.Set
|
||||
}
|
||||
|
||||
protected [EVENT.SYSTEM_ADMIN]({ screen_sizes_list, broadcast_status }: message.SystemAdmin) {
|
||||
@ -135,9 +138,10 @@ export class NekoMessages extends EventEmitter<NekoEvents> {
|
||||
this[EVENT.BORADCAST_STATUS](broadcast_status)
|
||||
}
|
||||
|
||||
protected [EVENT.SYSTEM_SETTINGS](settings: message.SystemSettings) {
|
||||
protected [EVENT.SYSTEM_SETTINGS]({ id, ...settings }: message.SystemSettingsUpdate) {
|
||||
this._localLog.debug(`EVENT.SYSTEM_SETTINGS`)
|
||||
this._state.settings = settings // TODO: Vue.Set
|
||||
this.emit('room.settings.updated', settings, id)
|
||||
}
|
||||
|
||||
protected [EVENT.SYSTEM_DISCONNECT]({ message }: message.SystemDisconnect) {
|
||||
|
@ -6,7 +6,9 @@ import type { PeerRequest, PeerVideo, PeerAudio } from './webrtc'
|
||||
// System
|
||||
/////////////////////////////
|
||||
|
||||
export interface SystemSettings extends Settings {}
|
||||
export interface SystemSettingsUpdate extends Settings {
|
||||
id: string
|
||||
}
|
||||
|
||||
export interface SystemWebRTC {
|
||||
videos: string[]
|
||||
@ -142,7 +144,7 @@ export interface ControlTouch extends Partial<ControlPos> {
|
||||
/////////////////////////////
|
||||
|
||||
export interface ScreenSizeUpdate extends ScreenSize {
|
||||
id?: string
|
||||
id: string
|
||||
}
|
||||
|
||||
/////////////////////////////
|
||||
|
@ -347,6 +347,7 @@ import { ref, shallowRef, computed, onMounted } from 'vue'
|
||||
|
||||
import type { AxiosProgressEvent } from 'axios'
|
||||
import NekoCanvas from '@/component/main.vue'
|
||||
import type { Settings } from '@/component/types/state'
|
||||
import NekoHeader from './components/header.vue'
|
||||
import NekoConnect from './components/connect.vue'
|
||||
import NekoControls from './components/controls.vue'
|
||||
@ -502,6 +503,9 @@ onMounted(() => {
|
||||
neko.value!.events.on('room.clipboard.updated', (text: string) => {
|
||||
console.log('room.clipboard.updated', text)
|
||||
})
|
||||
neko.value!.events.on('room.settings.updated', (settings: Settings, id: string) => {
|
||||
console.log('room.settings.updated', settings, 'by', id)
|
||||
})
|
||||
neko.value!.events.on('room.broadcast.status', (isActive: boolean, url?: string) => {
|
||||
console.log('room.broadcast.status', isActive, url)
|
||||
})
|
||||
|
Loading…
Reference in New Issue
Block a user