Browse Source

- 修复浅拷贝造成的默认值更改

- 支持二级嵌套对象的更新操作
- 优化翻译
- 更新readme
master
mashiros 2 years ago
parent
commit
5859521b6c
  1. BIN
      Locales/ja.qm
  2. BIN
      Locales/zh.qm
  3. BIN
      Locales/zh_TW.qm
  4. 19
      qml/Common.qml
  5. 2
      qml/Main.qml
  6. 10
      qml/ServerPreferences.qml
  7. 68
      readme.md

BIN
Locales/ja.qm

Binary file not shown.

BIN
Locales/zh.qm

Binary file not shown.

BIN
Locales/zh_TW.qm

Binary file not shown.

19
qml/Common.qml

@ -123,6 +123,20 @@ Item {
return objClone;
}
//
function updateObject(targetObj, sourceObj) {
for (let prop in sourceObj) {
if (sourceObj.hasOwnProperty(prop) && sourceObj[prop] !== undefined) {
if (typeof sourceObj[prop] === 'object') {
Object.assign(targetObj[prop], sourceObj[prop]);
} else {
targetObj[prop] = sourceObj[prop];
}
}
}
return targetObj;
}
function isObjectValueEqual(a, b) {
if (a === b)
return true;
@ -175,6 +189,9 @@ Item {
onRebootFlagChanged: {
rebootServer();
if (rebootFlag && debug) {
NVG.SystemCall.execute("explorer", NVG.Url.toLocalFile(Qt.resolvedUrl("../bin/ADV_Log.log")).replace(/\//g, '\\'));
}
}
function parse_resource(resource_list, sort) {
@ -211,7 +228,7 @@ Item {
if (ini_data) {
ini_data = ini_data.toLowerCase();
let cfg = parseINIString(ini_data);
serverCFG = Object.assign(defaultServerCFG, cfg);
serverCFG = Object.assign(deepClone(defaultServerCFG), cfg);
} else {
let ini_text = convertINIString(defaultServerCFG);
writeFile(iniFile, ini_text);

2
qml/Main.qml

@ -41,7 +41,7 @@ T.Widget {
widget.settings[widget.settings.current_style] = defaultValues;
}else if(widget.settings[widget.settings.current_style]["Version"] !== defaultValues["Version"]) {
delete widget.settings[widget.settings.current_style]["Version"];
widget.settings[widget.settings.current_style] = Object.assign(defaultValues, widget.settings[widget.settings.current_style]);
widget.settings[widget.settings.current_style] = Common.updateObject(Common.deepClone(defaultValues), widget.settings[widget.settings.current_style]);
}
}
}

10
qml/ServerPreferences.qml

@ -141,21 +141,23 @@ NVG.Window {
P.SpinPreference {
name: "attack"
label: qsTr("Increase Speed")
label: qsTr("Increase Factor")
message: qsTr("The larger the value, the slower the data increase.")
display: P.TextFieldPreference.ExpandLabel
editable: true
from: 1
to: 200
to: 20000
defaultValue: Common.defaultServerCFG["fft"]["attack"]
}
P.SpinPreference {
name: "decay"
label: qsTr("Reduction Speed")
label: qsTr("Reduction Factor")
message: qsTr("The larger the value, the slower the data reduction.")
display: P.TextFieldPreference.ExpandLabel
editable: true
from: 1
to: 200
to: 20000
defaultValue: Common.defaultServerCFG["fft"]["decay"]
}

68
readme.md

@ -1,5 +1,5 @@
<div align="center"><h1>ADV-Plugin</h1></div>
<div align="center"><img src="https://p.qlogo.cn/zc_icon/0/0afa95dfc4850ec9539eb0800b61a15016277179577515/0.png"></div>
<div align="center"><img src="https://s3.bmp.ovh/imgs/2022/05/25/890c76939e00f9ab.png"></div>
<div align="center">Powered By <a href="http://mashiros.top">Mashiro_Sorata</a></div>
---
@ -16,46 +16,32 @@
* 导入第三方Style类似其他插件,预计支持steam创意工坊下载
* 服务端崩溃后自启动
## 使用说明
安装并启用插件后,默认加载第一种预设Style样式。右键挂件可调出菜单,在挂件菜单的挂件名选单中点击Settings选项,呼出Style设置窗口。点击其中的Styles选项可切换不同的Style风格,若此Style提供可配置项,则在Styles选项下方会出现配置界面的入口。
<div align="center"><img src="https://s3.bmp.ovh/imgs/2022/04/29/c666df5a88a7ab9a.png" style="zoom:80%;" /></div>
# 进阶设置
样式设置可在插件内设置,一般服务端设置采用默认设置即可,但也提供了服务端设置的接口作为高级设置。可通过更改本插件目录`bin`文件夹中的`advConfig.ini`文件来配置插件服务器与数据设置。当配置数据错误或无配置文件时使用默认值,配置值不区分大小写。其参数的具体说明如下。
- [Server]
- `ip`:可选,默认值为`local`,指代地址127.0.0.1,可更改为`any`,指代地址0.0.0.0。只支持`any`与默认参数`local`,定义插件提供服务的地址。
- `port`:可选,默认值为`5050`,定义插件提供服务的端口号。
- `maxClient`:可选,默认值为`5`,定义WebSocket的最大连接数。
- `logger`:可选,默认值为`false`。设置为`true`后可在插件所在目录下输出日志文件`ADV_Log.log`。
- [FFT]
- `attack`:可选,默认值为25。可调节频谱数据增大时的速度,该值越大,增大速度越慢。
- `decay`:可选,默认值为25。可调节频谱数据减小时的速度,该值越大,减小速度越慢。
- `norspeed`:可选,默认值为1。动态归一化系数,取值范围从1~99,该值越大,归一化的峰值数据收敛速度越快。
- `peakthr`:可选,默认值为10。归一化的峰值数据的额外增量。
- `fps`:可选,默认值为30。每秒钟数据发送的次数,**<font color='red'>必须确保该值大于5</font>**。
- `changeSpeed`:可选,默认值为25。按照`changeSpeed/fps`的比例调节频谱数据变化速度,**一般该值小于fps**。
`advConfig.ini` 文件示例:
```ini
[Server]
ip = local
port = 5050
maxClient = 5
logger = true
[FFT]
attack = 25
decay = 25
norspeed = 1
peakthr = 10
fps = 35
changeSpeed = 25
```
## 样式设置
安装并启用插件后,默认加载第一种预设Style样式。右键点击挂件可调出菜单,在挂件菜单的挂件名选单中点击“样式设置...”选项,呼出样式设置窗口。点击其中的样式选项可切换不同的样式风格,若此样式提供可配置项,则在样式选项下方会出现配置项。
<div align="center"><img src="https://s3.bmp.ovh/imgs/2022/05/25/ad36cd0eccc8dd61.png" style="zoom:80%;" /></div>
## 服务器设置
右键点击挂件后,在菜单项选择“服务器设置...”即可对服务器进行设置与调试。一般采用默认设置即可,也可进一步自定义服务端的参数,调节所有音频可视化挂件的动画效果。此外对于所有音频可视化挂件无法正常显示的用户,提供了调试接口以便更好的帮助定位错误。
<div align="center"><img src="https://s3.bmp.ovh/imgs/2022/05/25/e00d784108a16948.png" style="zoom:80%;" /></div>
其参数的具体说明如下。
* `调试模式`:因为插件有着错误自启功能,每次自启都会覆盖日志文件,打开调试模式后,会关闭错误自启功能,这时可打开日志文件定位具体错误。
* `常规`设置
* `端口号`:Websocket服务器的端口号。
* `最大客户端数量`:Websocket服务器的最大连接数,音频可视化挂件均共用同一个连接的数据。
* `启用日志`:启用后会在插件服务器目录下输出日志文件`ADV_Log.log`以定位错误,进入`调试模式`时必须启用日志。
* `数据`设置
* `增大系数`:可调节频谱数据增大时的速度,该值越大,数据增大时的速度越慢。
* `减小系数`:可调节频谱数据减小时的速度,该值越大,数据减小时的速度越慢。
* `峰值额外增量`:数据归一化峰值的额外增量,调节频谱的动态范围。
* `动态归一化系数`:数据归一化峰值的收敛速度,该值越大,归一化的峰值数据收敛速度越快。
* `传输速率`:数据每秒发送的次数,可理解为挂件刷新率。
* `变化速度`:按照`变化速度/传输速率`的比例调节频谱数据变化速度,一般该值小于`传输速率`。
# 频谱样式开发

Loading…
Cancel
Save