From 1d8b841f7188e91d80db03e832b3ce179f9ec074 Mon Sep 17 00:00:00 2001 From: minie4 Date: Thu, 29 Feb 2024 21:20:33 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=92=84=20Use=20different=20icon=20for=20m?= =?UTF-8?q?ute=20state=20of=20outputs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/mixing_card.dart | 41 ++++++++++++++++++++++++++--------------- lib/mixing_tab.dart | 14 +++++++++----- 2 files changed, 35 insertions(+), 20 deletions(-) diff --git a/lib/mixing_card.dart b/lib/mixing_card.dart index 734ccd5..f51bb0e 100644 --- a/lib/mixing_card.dart +++ b/lib/mixing_card.dart @@ -4,7 +4,12 @@ import 'package:gomix_flutter/mixer_state.dart' as mixer; class MixingCard extends StatefulWidget { final mixer.Port port; final Function sendAction; - const MixingCard({super.key, required this.port, required this.sendAction}); + final bool isOutput; + const MixingCard( + {super.key, + required this.port, + required this.sendAction, + this.isOutput = false}); @override State createState() => _MixingCardState(); @@ -45,21 +50,27 @@ class _MixingCardState extends State { children: [ Expanded(child: Text(widget.port.name, style: labelStyle)), SizedBox( - height: 40, - width: 40, - child: IconButton.filledTonal( - iconSize: 20, - isSelected: widget.port.state.mute, - onPressed: () { - widget.sendAction({ - "method": "setPortState", - "UUID": widget.port.uuid, - "stateData": {"mute": !widget.port.state.mute} - }); - }, - icon: widget.port.state.mute + height: 40, + width: 40, + child: IconButton.filledTonal( + iconSize: 20, + isSelected: widget.port.state.mute, + onPressed: () { + widget.sendAction({ + "method": "setPortState", + "UUID": widget.port.uuid, + "stateData": {"mute": !widget.port.state.mute} + }); + }, + icon: widget.isOutput + ? (widget.port.state.mute + ? const Icon(Icons.volume_off_outlined) + : const Icon(Icons.volume_up_outlined)) + : (widget.port.state.mute ? const Icon(Icons.mic_off_outlined) - : const Icon(Icons.mic_none_outlined))), + : const Icon(Icons.mic_none_outlined)), + ), + ), const SizedBox(width: 5), SizedBox( height: 40, diff --git a/lib/mixing_tab.dart b/lib/mixing_tab.dart index df17e4e..5c174d0 100644 --- a/lib/mixing_tab.dart +++ b/lib/mixing_tab.dart @@ -13,8 +13,8 @@ class MixingTab extends StatefulWidget { } class _MixingTabState extends State { - Widget buildCardGrid( - List from, int cols, double cardGridAspectRatio) { + Widget buildCardGrid(List from, int cols, + double cardGridAspectRatio, bool isOutput) { return GridView.count( shrinkWrap: true, physics: const NeverScrollableScrollPhysics(), @@ -23,7 +23,11 @@ class _MixingTabState extends State { mainAxisSpacing: 10, crossAxisSpacing: 10, children: from - .map((p) => MixingCard(port: p, sendAction: widget.sendAction)) + .map((p) => MixingCard( + port: p, + sendAction: widget.sendAction, + isOutput: isOutput, + )) .toList(), ); } @@ -46,12 +50,12 @@ class _MixingTabState extends State { Text("Inputs", style: Theme.of(context).textTheme.titleLarge), const SizedBox(height: 10), buildCardGrid( - widget.mixerState.inputs, cols, cardGridAspectRatio), + widget.mixerState.inputs, cols, cardGridAspectRatio, false), const SizedBox(height: 20), Text("Outputs", style: Theme.of(context).textTheme.titleLarge), const SizedBox(height: 10), buildCardGrid( - widget.mixerState.outputs, cols, cardGridAspectRatio), + widget.mixerState.outputs, cols, cardGridAspectRatio, true), ], ), ),