import { Transformer } from './interface'; type IMicMusicData = { /** * 本地音乐开关,0:关;1:开; */ power: number; /** * 音乐模式ID,最多支持8种 */ id: number; /** * 无声音输入时的灯光状态:0:灭灯;1:维持静态亮度;2:缓慢渐变; */ status: number; /** * 变化方式:0:跳变;1:渐变;2:呼吸;3:闪烁; */ style: number; /** * 变化速度,1~100,默认50(预留用,面板不开放设置) */ speed: number; /** * 灵敏度,1~100,默认50(灵敏度高对应低阈值电压,灵敏度低对应高阈值电压) */ sensitivity: number; /** * 亮度,1~100,默认100(预留用,面板不开放设置) */ light: number; }; /** * 本地麦克风音乐 Raw 类型 DP 协议转换器,用于本地音乐控制参数与 Raw DP 十六进制协议的双向转换 * * @public * @since @ray-js/panel-sdk 1.0.0 * @remarks * 适用于灯类产品的本地麦克风音乐 Raw DP(如 `mic_music_data_raw`),协议为 8 位十六进制字符。 * 第一字节通过位运算编码了 power(1bit)、id(3bit)、status(2bit)、style(2bit), * 后续字节依次为 speed、sensitivity、light 各 1 字节。 * * @example * ```ts * import { MicMusicDataRawTransformer } from '@ray-js/panel-sdk'; * * const transformer = new MicMusicDataRawTransformer(); * // 解析 Raw DP 字符串 * const data = transformer.parser('80323264'); * // => { power: 1, id: 0, status: 0, style: 0, speed: 50, sensitivity: 50, light: 100 } * * // 格式化为 Raw DP 字符串 * const dpStr = transformer.formatter({ * power: 1, id: 0, status: 0, style: 0, * speed: 50, sensitivity: 50, light: 100 * }); * ``` */ declare class MicMusicDataRawTransformer implements Transformer { /** * @internal */ defaultValue: IMicMusicData; /** * @internal */ uuid: string; /** * 创建本地麦克风音乐 Raw 转换器实例 * * @public * @since @ray-js/panel-sdk 1.0.0 * @param uuid - DP 标识符,默认为 `'mic_music_data_raw'` * @param defaultValue - 默认音乐数据,当解析失败时返回此值 */ constructor(uuid?: string, defaultValue?: null); /** * 将 Raw DP 十六进制字符串解析为本地麦克风音乐数据对象 * * @public * @since @ray-js/panel-sdk 1.0.0 * @param value - 8 位十六进制 DP 字符串 * @returns 本地麦克风音乐数据对象,包含 power、id、status、style、speed、sensitivity、light;格式不合法时返回默认值 * * @example * ```ts * const data = transformer.parser('80323264'); * // => { power: 1, id: 0, status: 0, style: 0, speed: 50, sensitivity: 50, light: 100 } * ``` */ parser(value: string): { power: number; id: number; status: number; style: number; speed: any; sensitivity: any; light: any; }; /** * 将十进制数值转为指定长度的十六进制字符串 * * @internal * @param value - 十进制数值 * @param length - 目标十六进制字符串长度,默认 4 * @returns 补零后的十六进制字符串 */ to16(value: any, length?: number): string; /** * 将本地麦克风音乐数据对象格式化为 Raw DP 十六进制字符串 * * @public * @since @ray-js/panel-sdk 1.0.0 * @param data - 本地麦克风音乐数据对象,包含 power、id、status、style、speed、sensitivity、light * @returns 8 位十六进制 DP 字符串(第一字节为位编码的控制参数) * * @example * ```ts * const dpStr = transformer.formatter({ * power: 1, id: 0, status: 0, style: 0, * speed: 50, sensitivity: 50, light: 100 * }); * // => '80323264' * ``` */ formatter(data: IMicMusicData): string; } export default MicMusicDataRawTransformer;