Implemented toggle and inverted settings for muted actions
This commit is contained in:
parent
0183d50c46
commit
de27a6ccee
@ -5,12 +5,15 @@
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:getMuted="clr-namespace:MassiveKnob.Plugin.CoreAudio.GetMuted"
|
||||
xmlns:base="clr-namespace:MassiveKnob.Plugin.CoreAudio.Base"
|
||||
xmlns:coreAudio="clr-namespace:MassiveKnob.Plugin.CoreAudio"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="200" d:DesignWidth="800"
|
||||
d:DataContext="{d:DesignInstance getMuted:DeviceGetMutedActionSettingsViewModel}">
|
||||
<StackPanel Orientation="Vertical">
|
||||
<base:BaseDeviceSettingsView />
|
||||
|
||||
<!-- TODO Inverted -->
|
||||
<CheckBox Margin="0,8,0,0" IsChecked="{Binding Inverted}">
|
||||
<TextBlock Text="{x:Static coreAudio:Strings.SettingGetMutedInverted}" />
|
||||
</CheckBox>
|
||||
</StackPanel>
|
||||
</UserControl>
|
||||
|
@ -1,4 +1,5 @@
|
||||
using System.Threading;
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Windows;
|
||||
using AudioSwitcher.AudioApi;
|
||||
|
||||
@ -20,6 +21,7 @@ namespace MassiveKnob.Plugin.CoreAudio.OSD
|
||||
{
|
||||
windowViewModel = new OSDWindowViewModel();
|
||||
window = new OSDWindow(windowViewModel);
|
||||
window.Closed += WindowOnClosed;
|
||||
|
||||
hideTimer = new Timer(state =>
|
||||
{
|
||||
@ -34,9 +36,17 @@ namespace MassiveKnob.Plugin.CoreAudio.OSD
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private static void WindowOnClosed(object sender, EventArgs e)
|
||||
{
|
||||
hideTimer?.Dispose();
|
||||
hideTimer = null;
|
||||
}
|
||||
|
||||
|
||||
private static void Hide()
|
||||
{
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
Application.Current?.Dispatcher.Invoke(() =>
|
||||
{
|
||||
window?.Close();
|
||||
window = null;
|
||||
|
@ -5,13 +5,23 @@
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:setMuted="clr-namespace:MassiveKnob.Plugin.CoreAudio.SetMuted"
|
||||
xmlns:base="clr-namespace:MassiveKnob.Plugin.CoreAudio.Base"
|
||||
xmlns:coreAudio="clr-namespace:MassiveKnob.Plugin.CoreAudio"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="200" d:DesignWidth="800"
|
||||
d:DataContext="{d:DesignInstance setMuted:DeviceSetMutedActionSettingsViewModel}">
|
||||
<StackPanel Orientation="Vertical">
|
||||
<base:BaseDeviceSettingsView />
|
||||
|
||||
<!-- TODO Toggle -->
|
||||
<!-- TODO SetInverted -->
|
||||
<RadioButton Margin="0,8,0,0" IsChecked="{Binding ToggleTrue}">
|
||||
<TextBlock Text="{x:Static coreAudio:Strings.SettingSetMutedToggleTrue}" />
|
||||
</RadioButton>
|
||||
|
||||
<RadioButton Margin="0,8,0,0" IsChecked="{Binding ToggleFalse}">
|
||||
<TextBlock Text="{x:Static coreAudio:Strings.SettingSetMutedToggleFalse}" />
|
||||
</RadioButton>
|
||||
|
||||
<CheckBox Margin="24,8,0,0" IsChecked="{Binding SetInverted}">
|
||||
<TextBlock Text="{x:Static coreAudio:Strings.SettingSetMutedSetInverted}" />
|
||||
</CheckBox>
|
||||
</StackPanel>
|
||||
</UserControl>
|
||||
|
@ -5,15 +5,35 @@ namespace MassiveKnob.Plugin.CoreAudio.SetMuted
|
||||
public class DeviceSetMutedActionSettingsViewModel : BaseDeviceSettingsViewModel<DeviceSetMutedActionSettings>
|
||||
{
|
||||
// ReSharper disable UnusedMember.Global - used by WPF Binding
|
||||
public bool Toggle
|
||||
public bool ToggleTrue
|
||||
{
|
||||
get => Settings.Toggle;
|
||||
set
|
||||
{
|
||||
if (value == Settings.Toggle)
|
||||
if (!value)
|
||||
return;
|
||||
|
||||
Settings.Toggle = value;
|
||||
if (Settings.Toggle)
|
||||
return;
|
||||
|
||||
Settings.Toggle = true;
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public bool ToggleFalse
|
||||
{
|
||||
get => !Settings.Toggle;
|
||||
set
|
||||
{
|
||||
if (!value)
|
||||
return;
|
||||
|
||||
if (!Settings.Toggle)
|
||||
return;
|
||||
|
||||
Settings.Toggle = false;
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
@ -178,7 +178,7 @@ namespace MassiveKnob.Plugin.CoreAudio {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Inverted (muted is off).
|
||||
/// Looks up a localized string similar to Inverted (off when muted).
|
||||
/// </summary>
|
||||
public static string SettingGetMutedInverted {
|
||||
get {
|
||||
@ -205,7 +205,7 @@ namespace MassiveKnob.Plugin.CoreAudio {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Inverted (off is muted).
|
||||
/// Looks up a localized string similar to Inverted (muted when off).
|
||||
/// </summary>
|
||||
public static string SettingSetMutedSetInverted {
|
||||
get {
|
||||
|
@ -157,7 +157,7 @@
|
||||
<value>Mute / unmute</value>
|
||||
</data>
|
||||
<data name="SettingGetMutedInverted" xml:space="preserve">
|
||||
<value>Inverted (muted is off)</value>
|
||||
<value>Inverted (off when muted)</value>
|
||||
</data>
|
||||
<data name="SettingOSD" xml:space="preserve">
|
||||
<value>Show On-Screen Display</value>
|
||||
@ -166,7 +166,7 @@
|
||||
<value>Playback device</value>
|
||||
</data>
|
||||
<data name="SettingSetMutedSetInverted" xml:space="preserve">
|
||||
<value>Inverted (off is muted)</value>
|
||||
<value>Inverted (muted when off)</value>
|
||||
</data>
|
||||
<data name="SettingSetMutedToggleFalse" xml:space="preserve">
|
||||
<value>Set mute depending on value (eg. switch)</value>
|
||||
|
Loading…
Reference in New Issue
Block a user