You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
203 lines
5.8 KiB
203 lines
5.8 KiB
import 'package:flutter/material.dart';
|
|
import 'package:get/get.dart';
|
|
|
|
import '../../../core/utils/logger.dart';
|
|
import '../../../routes/app_routes.dart';
|
|
import '../views/widgets/row_confirm_widget.dart';
|
|
import '../views/widgets/row_equalizer_widget.dart';
|
|
import '../views/widgets/row_grade_widget.dart';
|
|
import '../views/widgets/row_input_widget.dart';
|
|
import '../views/widgets/row_keypress_widget.dart';
|
|
import '../views/widgets/row_radio_widget.dart';
|
|
import '../views/widgets/row_switch_widget.dart';
|
|
import '../views/widgets/row_timer_widget.dart';
|
|
|
|
class EqSettingsController extends GetxController {
|
|
final RxList uiList = [
|
|
{
|
|
'title': '音效',
|
|
'templates': [
|
|
{
|
|
'type': 'equalizer',
|
|
'name': '均衡器',
|
|
'value': [],
|
|
'options': [
|
|
{
|
|
'label': '默认',
|
|
'value': [1, 2, 3, 4, 5, 4, 3, 2, 1, 0],
|
|
'default': true,
|
|
},
|
|
{
|
|
'label': '流行',
|
|
'value': [1, 0, 3, 4, 5, 4, 1, 2, 1, 0],
|
|
'default': true,
|
|
},
|
|
{
|
|
'label': '摇滚',
|
|
'value': [2, 3, 4, 5, 4, 3, 2, 1, 0, -1],
|
|
'default': true,
|
|
},
|
|
{
|
|
'label': '爵士',
|
|
'value': [3, 4, 0, 4, 3, 2, 1, 0, -1, -2],
|
|
'default': true,
|
|
},
|
|
{
|
|
'label': '经典',
|
|
'value': [3, 4, 2, 4, 3, 2, 1, 0, -1, -2],
|
|
'default': true,
|
|
},
|
|
{
|
|
'label': '乡村',
|
|
'value': [3, 4, 1, 4, 3, 2, 1, 0, -1, -2],
|
|
'default': true,
|
|
},
|
|
],
|
|
'xAxis': [
|
|
'8',
|
|
'31',
|
|
'62',
|
|
'125',
|
|
'250',
|
|
'500',
|
|
'1K',
|
|
'2K',
|
|
'4K',
|
|
'16K'
|
|
],
|
|
'onCallback': (List value) {
|
|
Logger.d('equalizer', '均衡器:$value');
|
|
},
|
|
}
|
|
],
|
|
},
|
|
{
|
|
'title': '按键功能',
|
|
'templates': [
|
|
{
|
|
'type': 'keypress',
|
|
'data': [
|
|
{'key': 'key1', 'label': '单击', 'left': 1, 'right': 1},
|
|
{'key': 'key2', 'label': '双击', 'left': 1, 'right': 1},
|
|
{'key': 'key3', 'label': '三击', 'left': 1, 'right': 1},
|
|
{'key': 'key4', 'label': '长按', 'left': 1, 'right': 1},
|
|
],
|
|
'options': [
|
|
{'label': '无作用', 'value': 0},
|
|
{'label': '回拨电话', 'value': 1},
|
|
{'label': '语音助手', 'value': 2},
|
|
{'label': '上一曲', 'value': 3},
|
|
{'label': '下一曲', 'value': 4},
|
|
{'label': '音量加', 'value': 5},
|
|
{'label': '音量减', 'value': 6},
|
|
{'label': '播放暂停', 'value': 7},
|
|
{'label': '游戏模式', 'value': 8},
|
|
{'label': '降噪设置', 'value': 9},
|
|
{'label': 'EQ切换', 'value': 10},
|
|
],
|
|
'onCallback': (Map value) {
|
|
Logger.d('keypress', '按键功能:$value');
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
'title': '耳机功能',
|
|
'templates': [
|
|
{
|
|
'type': 'input',
|
|
'name': '修改名称',
|
|
'value': 'voitrans',
|
|
'onCallback': (String value) {
|
|
Logger.d('input', '修改名称:$value');
|
|
},
|
|
},
|
|
{
|
|
'type': 'radio',
|
|
'name': '工作模式',
|
|
'value': 1,
|
|
'options': [
|
|
{'label': '游戏模式', 'value': 1},
|
|
{'label': '娱乐模式', 'value': 2},
|
|
{'label': '睡眠模式', 'value': 3},
|
|
],
|
|
'onCallback': (int value) {
|
|
Logger.d('radio', '工作模式:$value');
|
|
},
|
|
},
|
|
{
|
|
'type': 'switch',
|
|
'name': '闪灯开关',
|
|
'value': false,
|
|
'onCallback': (bool value) {
|
|
Logger.d('switch', '闪灯开关:$value');
|
|
},
|
|
},
|
|
{
|
|
'type': 'switch',
|
|
'name': '查找设备',
|
|
'value': false,
|
|
'description': '在设备上播放声音',
|
|
'onCallback': (bool value) {
|
|
Logger.d('switch', '查找设备:$value');
|
|
},
|
|
},
|
|
{
|
|
'type': 'grade',
|
|
'name': '降噪等级',
|
|
'value': 0,
|
|
'onCallback': (int value) {
|
|
Logger.d('grade', '降噪等级:$value');
|
|
},
|
|
},
|
|
{
|
|
'type': 'timer',
|
|
'name': '定时关机',
|
|
'value': 0,
|
|
'onCallback': (int value) {
|
|
Logger.d('timer', '定时关机:$value');
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
'templates': [
|
|
{
|
|
'type': 'confirm',
|
|
'name': '升级耳机固件',
|
|
'onCallback': () => Get.toNamed(Routes.OTA_UPGRADE),
|
|
},
|
|
{
|
|
'type': 'confirm',
|
|
'name': '恢复出厂设置',
|
|
'tips': '确定要恢复出厂设置吗?',
|
|
'onCallback': () {
|
|
Logger.d('confirm', '恢复出厂设置');
|
|
},
|
|
},
|
|
{
|
|
'type': 'confirm',
|
|
'name': '清除配对记录',
|
|
'tips': '确定要清除配对记录吗?',
|
|
'onCallback': () {
|
|
Logger.d('confirm', '清除配对记录');
|
|
},
|
|
},
|
|
],
|
|
}
|
|
].obs;
|
|
|
|
Widget getTemplate(Map data) {
|
|
return switch (data['type']) {
|
|
'equalizer' => RowEqualizerWidget(data),
|
|
'keypress' => RowKeypressWidget(data),
|
|
'input' => RowInputWidget(data),
|
|
'radio' => RowRadioWidget(data),
|
|
'switch' => RowSwitchWidget(data),
|
|
'grade' => RowGradeWidget(data),
|
|
'timer' => RowTimerWidget(data),
|
|
'confirm' => RowConfirmWidget(data),
|
|
_ => const SizedBox.shrink(),
|
|
};
|
|
}
|
|
}
|
|
|