优化内存分享,修复一些问题,新增答题投票功能

This commit is contained in:
snltty
2023-12-07 17:04:06 +08:00
parent a664ee8813
commit 1a62bd809d
181 changed files with 30746 additions and 29234 deletions

View File

@@ -0,0 +1,61 @@
using cmonitor.service;
using cmonitor.service.messengers.setting;
using cmonitor.service.messengers.sign;
using common.libs.extends;
using MemoryPack;
namespace cmonitor.api.services
{
public sealed class SettingClientService : IClientService
{
private readonly MessengerSender messengerSender;
private readonly SignCaching signCaching;
private readonly Config config;
public SettingClientService(MessengerSender messengerSender, SignCaching signCaching, Config config)
{
this.messengerSender = messengerSender;
this.signCaching = signCaching;
this.config = config;
}
public SettingInfo Get(ClientServiceParamsInfo param)
{
return new SettingInfo
{
ReportDelay = config.ReportDelay,
ScreenDelay = config.ScreenDelay,
ScreenScale = config.ScreenScale,
SaveSetting = config.SaveSetting,
WakeUp = config.WakeUp,
VolumeMasterPeak = config.VolumeMasterPeak,
};
}
public bool Set(ClientServiceParamsInfo param)
{
SettingInfo settingInfo = param.Content.DeJson<SettingInfo>();
config.ReportDelay = settingInfo.ReportDelay;
config.ScreenDelay = settingInfo.ScreenDelay;
config.ScreenScale = settingInfo.ScreenScale;
config.SaveSetting = settingInfo.SaveSetting;
config.WakeUp = settingInfo.WakeUp;
config.VolumeMasterPeak = settingInfo.VolumeMasterPeak;
byte[] bytes = MemoryPackSerializer.Serialize(settingInfo);
foreach (var item in signCaching.Get())
{
if (item.Connected)
{
_ = messengerSender.SendOnly(new MessageRequestWrap
{
Connection = item.Connection,
MessengerId = (ushort)SettingMessengerIds.Update,
Payload = bytes
});
}
}
return true;
}
}
}