💄 Use different icon for mute state of outputs
This commit is contained in:
@ -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,
|
||||||
|
@ -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),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
Reference in New Issue
Block a user