💄 Use different icon for mute state of outputs

This commit is contained in:
2024-02-29 21:20:33 +01:00
parent f91cdc3827
commit 1d8b841f71
2 changed files with 35 additions and 20 deletions

View File

@ -4,7 +4,12 @@ import 'package:gomix_flutter/mixer_state.dart' as mixer;
class MixingCard extends StatefulWidget { class MixingCard extends StatefulWidget {
final mixer.Port port; final mixer.Port port;
final Function sendAction; 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 @override
State<MixingCard> createState() => _MixingCardState(); State<MixingCard> createState() => _MixingCardState();
@ -57,9 +62,15 @@ class _MixingCardState extends State<MixingCard> {
"stateData": {"mute": !widget.port.state.mute} "stateData": {"mute": !widget.port.state.mute}
}); });
}, },
icon: 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_off_outlined)
: const Icon(Icons.mic_none_outlined))), : const Icon(Icons.mic_none_outlined)),
),
),
const SizedBox(width: 5), const SizedBox(width: 5),
SizedBox( SizedBox(
height: 40, height: 40,

View File

@ -13,8 +13,8 @@ class MixingTab extends StatefulWidget {
} }
class _MixingTabState extends State<MixingTab> { class _MixingTabState extends State<MixingTab> {
Widget buildCardGrid( Widget buildCardGrid(List<mixer.Port> from, int cols,
List<mixer.Port> from, int cols, double cardGridAspectRatio) { double cardGridAspectRatio, bool isOutput) {
return GridView.count( return GridView.count(
shrinkWrap: true, shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(), physics: const NeverScrollableScrollPhysics(),
@ -23,7 +23,11 @@ class _MixingTabState extends State<MixingTab> {
mainAxisSpacing: 10, mainAxisSpacing: 10,
crossAxisSpacing: 10, crossAxisSpacing: 10,
children: from children: from
.map((p) => MixingCard(port: p, sendAction: widget.sendAction)) .map((p) => MixingCard(
port: p,
sendAction: widget.sendAction,
isOutput: isOutput,
))
.toList(), .toList(),
); );
} }
@ -46,12 +50,12 @@ class _MixingTabState extends State<MixingTab> {
Text("Inputs", style: Theme.of(context).textTheme.titleLarge), Text("Inputs", style: Theme.of(context).textTheme.titleLarge),
const SizedBox(height: 10), const SizedBox(height: 10),
buildCardGrid( buildCardGrid(
widget.mixerState.inputs, cols, cardGridAspectRatio), widget.mixerState.inputs, cols, cardGridAspectRatio, false),
const SizedBox(height: 20), const SizedBox(height: 20),
Text("Outputs", style: Theme.of(context).textTheme.titleLarge), Text("Outputs", style: Theme.of(context).textTheme.titleLarge),
const SizedBox(height: 10), const SizedBox(height: 10),
buildCardGrid( buildCardGrid(
widget.mixerState.outputs, cols, cardGridAspectRatio), widget.mixerState.outputs, cols, cardGridAspectRatio, true),
], ],
), ),
), ),