Dimmer updates

This commit is contained in:
Bill 2021-09-14 02:40:00 -04:00
parent 88e304227a
commit 4e3af05d1f
5 changed files with 43 additions and 44 deletions

View File

@ -1,6 +1,7 @@
export class MoodlightFromServer export class RoomDimmerPresetsMessageData
{ {
constructor(public id: number, constructor(
public id: number,
public bgOnly: boolean, public bgOnly: boolean,
public color: string, public color: string,
public brightness: number) public brightness: number)

View File

@ -9,6 +9,6 @@ export * from './GroupFurniContextMenuInfoMessageEvent';
export * from './LoveLockFurniFinishedEvent'; export * from './LoveLockFurniFinishedEvent';
export * from './LoveLockFurniFriendConfirmedEvent'; export * from './LoveLockFurniFriendConfirmedEvent';
export * from './LoveLockFurniStartEvent'; export * from './LoveLockFurniStartEvent';
export * from './moodlightFromServer'; export * from './RoomDimmerPresetsMessageData';
export * from './RoomDimmerPresetsMessageEvent'; export * from './RoomDimmerPresetsMessageEvent';
export * from './wall'; export * from './wall';

View File

@ -1,33 +1,17 @@
import { IMessageDataWrapper, IMessageParser } from '../../../../../../core'; import { IMessageDataWrapper, IMessageParser } from '../../../../../../core';
import { MoodlightFromServer } from '../../../incoming/room/furniture/moodlightFromServer'; import { RoomDimmerPresetsMessageData } from '../../../incoming/room/furniture/RoomDimmerPresetsMessageData';
export class RoomDimmerPresetsMessageParser implements IMessageParser export class RoomDimmerPresetsMessageParser implements IMessageParser
{ {
private _selectedPresetId: number = 0; private _selectedPresetId: number;
private _presets: MoodlightFromServer[]; private _presets: RoomDimmerPresetsMessageData[];
constructor() constructor()
{ {
this._selectedPresetId = 0;
this._presets = []; this._presets = [];
} }
public get presetCount(): number
{
return this._presets.length;
}
public get selectedPresetId(): number
{
return this._selectedPresetId;
}
public getPreset(k: number): MoodlightFromServer
{
if((k < 0) || (k >= this.presetCount)) return null;
return this._presets[k];
}
public flush(): boolean public flush(): boolean
{ {
this._presets = []; this._presets = [];
@ -44,13 +28,30 @@ export class RoomDimmerPresetsMessageParser implements IMessageParser
for(let i = 0; i < totalPresets; i++) for(let i = 0; i < totalPresets; i++)
{ {
const presetId = wrapper.readInt(); const presetId = wrapper.readInt();
const bgOnly = wrapper.readInt() === 2; const bgOnly = (wrapper.readInt() === 2);
const color = wrapper.readString(); const color = wrapper.readString();
const brightness = wrapper.readInt(); const brightness = wrapper.readInt();
this._presets.push(new MoodlightFromServer(presetId, bgOnly, color, brightness)); this._presets.push(new RoomDimmerPresetsMessageData(presetId, bgOnly, color, brightness));
} }
return true; return true;
} }
public getPreset(id: number): RoomDimmerPresetsMessageData
{
if((id < 0) || (id >= this.presetCount)) return null;
return this._presets[id];
}
public get presetCount(): number
{
return this._presets.length;
}
public get selectedPresetId(): number
{
return this._selectedPresetId;
}
} }

View File

@ -9,9 +9,9 @@ export class RoomSessionDimmerPresetsEvent extends RoomSessionEvent
private _selectedPresetId: number = 0; private _selectedPresetId: number = 0;
private _presets: RoomSessionDimmerPresetsEventPresetItem[]; private _presets: RoomSessionDimmerPresetsEventPresetItem[];
constructor(k: string, _arg_2: IRoomSession) constructor(type: string, session: IRoomSession)
{ {
super(k, _arg_2); super(type, session);
this._presets = []; this._presets = [];
} }
@ -26,23 +26,20 @@ export class RoomSessionDimmerPresetsEvent extends RoomSessionEvent
return this._selectedPresetId; return this._selectedPresetId;
} }
public set selectedPresetId(k: number) public set selectedPresetId(id: number)
{ {
this._selectedPresetId = k; this._selectedPresetId = id;
} }
public storePreset(id: number, bgOnly: boolean, color: string, brightness: number): void public storePreset(id: number, bgOnly: boolean, color: string, brightness: number): void
{ {
const _local_5:RoomSessionDimmerPresetsEventPresetItem = new RoomSessionDimmerPresetsEventPresetItem(id, bgOnly, color, brightness); this._presets[(id - 1)] = new RoomSessionDimmerPresetsEventPresetItem(id, bgOnly, color, brightness);
this._presets[(id - 1)] = _local_5;
} }
public getPreset(k: number):RoomSessionDimmerPresetsEventPresetItem public getPreset(id: number): RoomSessionDimmerPresetsEventPresetItem
{ {
if(((k < 0) || (k >= this._presets.length))) if((id < 0) || (id >= this._presets.length)) return null;
{
return null; return this._presets[id];
}
return this._presets[k];
} }
} }

View File

@ -13,11 +13,11 @@ export class RoomDimmerPresetsHandler extends BaseHandler
connection.addMessageEvent(new RoomDimmerPresetsEvent(this.onRoomDimmerPresets.bind(this))); connection.addMessageEvent(new RoomDimmerPresetsEvent(this.onRoomDimmerPresets.bind(this)));
} }
private onRoomDimmerPresets(k: RoomDimmerPresetsEvent): void private onRoomDimmerPresets(event: RoomDimmerPresetsEvent): void
{ {
if(!k) return; if(!event) return;
const parser = k.getParser(); const parser = event.getParser();
if(!parser) return; if(!parser) return;
@ -25,17 +25,17 @@ export class RoomDimmerPresetsHandler extends BaseHandler
if(!session) return; if(!session) return;
const event = new RoomSessionDimmerPresetsEvent(RoomSessionDimmerPresetsEvent.ROOM_DIMMER_PRESETS, session); const presetEvent = new RoomSessionDimmerPresetsEvent(RoomSessionDimmerPresetsEvent.ROOM_DIMMER_PRESETS, session);
event.selectedPresetId = parser.selectedPresetId; presetEvent.selectedPresetId = parser.selectedPresetId;
for(let i = 0; i < parser.presetCount; i++) for(let i = 0; i < parser.presetCount; i++)
{ {
const preset = parser.getPreset(i); const preset = parser.getPreset(i);
if(preset) event.storePreset(preset.id, preset.bgOnly, preset.color, preset.brightness); if(preset) presetEvent.storePreset(preset.id, preset.bgOnly, preset.color, preset.brightness);
} }
this.listener && this.listener.events.dispatchEvent(event); this.listener && this.listener.events.dispatchEvent(presetEvent);
} }
} }