From 712e4a10713221deebdd99eba3ca55d5fa8e5a2f Mon Sep 17 00:00:00 2001 From: Mashiro_Sorata <490328928@qq.com> Date: Sun, 20 Mar 2022 23:21:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20'=E9=A2=91=E8=B0=B1?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E5=BC=80=E5=8F=91=E6=95=99=E7=A8=8B'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...E5%BC%8F%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B.md | 40 ++++++++++++++++++++++ Home.md | 40 ---------------------- 2 files changed, 40 insertions(+), 40 deletions(-) create mode 100644 %E9%A2%91%E8%B0%B1%E6%A0%B7%E5%BC%8F%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B.md delete mode 100644 Home.md diff --git a/%E9%A2%91%E8%B0%B1%E6%A0%B7%E5%BC%8F%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B.md b/%E9%A2%91%E8%B0%B1%E6%A0%B7%E5%BC%8F%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B.md new file mode 100644 index 0000000..b8cf56b --- /dev/null +++ b/%E9%A2%91%E8%B0%B1%E6%A0%B7%E5%BC%8F%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B.md @@ -0,0 +1,40 @@ +# 频谱样式开发 + +上面介绍了ADV-Plugin的一些配置项,现在我们将从零开始一个完整的第三方Style开发的项目。 +第三方的Style是SAO Utils 2中的一个插件形式存在,ADV-Plugin会自动识别`catalog`为`top.mashiros.advp-style`的Style插件。 + +## 目录结构 + +一个完整的项目目录示例如下,这个Style插件内包含: + +```powershell +top.mashiros.3rd-party-style-demo.advp + ├── demo1 (示例文件夹) + │ └── Style.qml (必须) + ├── demo2 (示例文件夹) + │ ├── Config.qml (可选) + │ └── Style.qml (必须) + └── package.json (必须) +``` + +* `package.json`:必须,SAO Utils 2的插件定义文件 +* `Style.qml`:必须,Style插件入口文件 +* `Config.qml`:可选,为Style插件定义配置项 + +## 开发接口(API) + +ADV-Plugin提供了`StyleAPI`组件与`CfgAPI`组件作为接口使用。 + +* `StyleAPI`:Canvas组件的封装。下面为一些常用的属性与函数。 + * `width`:只读,画布的宽度,也为插件的显示宽度。 + * `height`:只读,画布的长度,也为插件的显示长度。 + * `context`:只读,Canvas的2D上下文。 + * `configs`:只读,若此Style的路径下有*Config.qml*,则其值为`CfgAPI`的设置值(JSON格式);否则为`undefined`。 + * `onAudioDataUpdeted`:可写,数据更新时的处理代码,带有一个长度为129数组参数:`data`。前64个数据为左声道FFT数据,后64个数据为右声道FFT数据,每一个声道的FFT数据位从低到高对应频谱频率的由低到高。最后一个数据为动态归一化的峰值数据(自动归一化时,第i个频谱数据大小 = data[i] / data[128])。 + * `onConfigsUpdated`:可写,属性`configs`或者`context`改变时的处理代码,函数无参数。 + * `requestPaint`:函数,调用此函数使Canvas绘制图形。 +* `CfgAPI`:NERvGear.Preferences.DialogPreference的封装,插件设置项的API,支持NERvGear.Preferences中的各种Preference样式。 + * `version`:可写,版本号,默认为`""`。防止选项更改后加载历史选项值导致的插件错误,版本号更新后会自动加载最新选项的默认值。可在选项列表的最上方查看到`version`值,若为空则不显示。 + * `cfg_height`:可写,设置页面的高度,默认为580。 + +更多属性与方法可参考QML中的canvas组件,细节可参考demo与SAO Utils 2的官方开发说明。 \ No newline at end of file diff --git a/Home.md b/Home.md deleted file mode 100644 index b8cf56b..0000000 --- a/Home.md +++ /dev/null @@ -1,40 +0,0 @@ -# 频谱样式开发 - -上面介绍了ADV-Plugin的一些配置项,现在我们将从零开始一个完整的第三方Style开发的项目。 -第三方的Style是SAO Utils 2中的一个插件形式存在,ADV-Plugin会自动识别`catalog`为`top.mashiros.advp-style`的Style插件。 - -## 目录结构 - -一个完整的项目目录示例如下,这个Style插件内包含: - -```powershell -top.mashiros.3rd-party-style-demo.advp - ├── demo1 (示例文件夹) - │ └── Style.qml (必须) - ├── demo2 (示例文件夹) - │ ├── Config.qml (可选) - │ └── Style.qml (必须) - └── package.json (必须) -``` - -* `package.json`:必须,SAO Utils 2的插件定义文件 -* `Style.qml`:必须,Style插件入口文件 -* `Config.qml`:可选,为Style插件定义配置项 - -## 开发接口(API) - -ADV-Plugin提供了`StyleAPI`组件与`CfgAPI`组件作为接口使用。 - -* `StyleAPI`:Canvas组件的封装。下面为一些常用的属性与函数。 - * `width`:只读,画布的宽度,也为插件的显示宽度。 - * `height`:只读,画布的长度,也为插件的显示长度。 - * `context`:只读,Canvas的2D上下文。 - * `configs`:只读,若此Style的路径下有*Config.qml*,则其值为`CfgAPI`的设置值(JSON格式);否则为`undefined`。 - * `onAudioDataUpdeted`:可写,数据更新时的处理代码,带有一个长度为129数组参数:`data`。前64个数据为左声道FFT数据,后64个数据为右声道FFT数据,每一个声道的FFT数据位从低到高对应频谱频率的由低到高。最后一个数据为动态归一化的峰值数据(自动归一化时,第i个频谱数据大小 = data[i] / data[128])。 - * `onConfigsUpdated`:可写,属性`configs`或者`context`改变时的处理代码,函数无参数。 - * `requestPaint`:函数,调用此函数使Canvas绘制图形。 -* `CfgAPI`:NERvGear.Preferences.DialogPreference的封装,插件设置项的API,支持NERvGear.Preferences中的各种Preference样式。 - * `version`:可写,版本号,默认为`""`。防止选项更改后加载历史选项值导致的插件错误,版本号更新后会自动加载最新选项的默认值。可在选项列表的最上方查看到`version`值,若为空则不显示。 - * `cfg_height`:可写,设置页面的高度,默认为580。 - -更多属性与方法可参考QML中的canvas组件,细节可参考demo与SAO Utils 2的官方开发说明。 \ No newline at end of file