Skip to content

Commit

Permalink
Update v3.6.0 ..
Browse files Browse the repository at this point in the history
- Removed Soundblaster Audio profile switcher (Using APO Equalizer on main machine which has the ability to know when device has been switched and can assign equalizer profile based on default assigned audio device)
- Removed unused methods etc
- Updated readme to reflect new changes and features
- Updated repo images to reflect new changes etc
- Bumped to v3.6.0
  • Loading branch information
SmokeyMcBong committed Jul 16, 2020
1 parent 4535937 commit d3effb5
Show file tree
Hide file tree
Showing 10 changed files with 46 additions and 136 deletions.
4 changes: 2 additions & 2 deletions MiToolz/App.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
<system:String x:Key="VersionNo"
xml:space="preserve"> MiToolz v3.5.2 </system:String>
xml:space="preserve"> MiToolz v3.6.0 </system:String>
<system:String x:Key="VersionDate"
xml:space="preserve"> Build Date : 29-06-2020 </system:String>
xml:space="preserve"> Build Date : 16-07-2020 </system:String>
</ResourceDictionary>
</Application.Resources>
</Application>
1 change: 0 additions & 1 deletion MiToolz/ListManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ internal IEnumerable<Tile> ControlsMainTiles
{
_mw.GpuTile,
_mw.PowerPlanTile,
_mw.AudioTile,
_mw.TimerResolutionTile,
_mw.AudioDeviceSwitchTile
};
Expand Down
52 changes: 14 additions & 38 deletions MiToolz/MainWindow.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@
</Separator>
<mah:Tile x:Name="GpuTile"
Click="GpuTile_OnClick"
Title="GPU Profile"
Title="MSI GPU Profile"
TitleFontSize="17"
HorizontalTitleAlignment="Right"
Margin="267,50,0,0"
Expand All @@ -246,7 +246,8 @@
Height="162"
VerticalAlignment="Top"
HorizontalAlignment="Left"
IsTabStop="False">
IsTabStop="False"
Width="202">
<mah:Badged x:Name="GpuProfileBadge"
Badge=""
BadgeForeground="Black"
Expand All @@ -261,17 +262,18 @@
</mah:Tile>
<mah:Tile x:Name="PowerPlanTile"
Click="PowerPlanTile_OnCLick"
Title="Power Plan"
Title="Windows Power Plan"
TitleFontSize="17"
HorizontalTitleAlignment="Right"
Margin="557,50,0,0"
Margin="474,50,0,0"
mah:ControlsHelper.MouseOverBorderBrush="{DynamicResource MahApps.Brushes.ThemeForeground}"
Background="{DynamicResource MahApps.Brushes.Accent}"
Cursor="Hand"
Height="162"
VerticalAlignment="Top"
HorizontalAlignment="Left"
IsTabStop="False">
IsTabStop="False"
Width="223">
<mah:Badged x:Name="PowerPlanBadge"
Badge=""
BadgeForeground="Black"
Expand All @@ -284,31 +286,6 @@
Height="130" />
</mah:Badged>
</mah:Tile>
<mah:Tile x:Name="AudioTile"
Click="AudioTile_OnClick"
Title="Audio Profile"
TitleFontSize="17"
HorizontalTitleAlignment="Right"
Margin="412,50,0,0"
mah:ControlsHelper.MouseOverBorderBrush="{DynamicResource MahApps.Brushes.ThemeForeground}"
Background="{DynamicResource MahApps.Brushes.Accent}"
Cursor="Hand"
Height="162"
VerticalAlignment="Top"
HorizontalAlignment="Left"
IsTabStop="False">
<mah:Badged x:Name="AudioProfileBadge"
Badge=""
BadgeForeground="Black"
BadgePlacementMode="Top"
BadgeBackground="DarkGray">
<Image VerticalAlignment="Center"
HorizontalAlignment="Center"
Source="pack://siteoforigin:,,,/Resources/Image_Audio.png"
Width="130"
Height="130" />
</mah:Badged>
</mah:Tile>
<mah:Tile x:Name="TimerResolutionTile"
Click="TimerResolutionTile_OnClick"
Title="Windows Timer Resolution"
Expand All @@ -319,7 +296,7 @@
Background="{DynamicResource MahApps.Brushes.Accent}"
Cursor="Hand"
Height="108"
Width="213"
Width="241"
VerticalAlignment="Top"
HorizontalAlignment="Left"
IsTabStop="False">
Expand All @@ -329,25 +306,24 @@
BadgePlacementMode="Top"
BadgeBackground="DarkGray"
Height="76">
<Image VerticalAlignment="Center"
HorizontalAlignment="Center"
<Image VerticalAlignment="Center"
HorizontalAlignment="Center"
Source="pack://siteoforigin:,,,/Resources/Image_TimerResolution.png"
Width="90"
Height="74"
Margin="0,2,0,0" />
Width="99"
Height="76" />
</mah:Badged>
</mah:Tile>
<mah:Tile x:Name="AudioDeviceSwitchTile"
Click="AudioDeviceSwitchTile_OnClick"
Title="Audio Output Device"
TitleFontSize="14"
HorizontalTitleAlignment="Right"
Margin="485,217,0,0"
Margin="513,217,0,0"
mah:ControlsHelper.MouseOverBorderBrush="{DynamicResource MahApps.Brushes.ThemeForeground}"
Background="{DynamicResource MahApps.Brushes.Accent}"
Cursor="Hand"
Height="108"
Width="212"
Width="184"
VerticalAlignment="Top"
HorizontalAlignment="Left"
IsTabStop="False">
Expand Down
60 changes: 11 additions & 49 deletions MiToolz/MainWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ public partial class MainWindow
private static string _powerPlanBalanced;
private static string _powerPlanPerformance;
private static string _sbControlFile;
private static string _sbControlActiveProfile;
private static string _msiabFile;
private static string _isMonitoringEnabled;
private static string _appTheme;
Expand Down Expand Up @@ -62,7 +61,6 @@ public MainWindow()
//run startup checks, read all config settings and set corresponding UI elements
StartupSetup();
SetAppTheme();
ShowActiveAudioProfile();
ShowActiveGpuProfile();
ShowActivePowerPlan();
ShowDefaultAudioDevice();
Expand Down Expand Up @@ -91,12 +89,11 @@ private static void StartupSetup()

//check for ini file, if not found then create new file and write default values to it
var myConfigManager = Properties.Resources.MyConfigManager;
var sbControlFilePath = Properties.Resources.SBControl_FilePath;
var msiabFilePath = Properties.Resources.MSIAB_FilePath;
var defaultStockProfile = Properties.Resources.DefaultStockProfile;
var defaultOcProfile = Properties.Resources.DefaultOCProfile;
var powerPlanBalanced = Properties.Resources.PowerPlanBalanced;
var powerPlanPerformance = Properties.Resources.PowerPlanPerformance;
var powerPlanPerformance = Properties.Resources.PowerPlanHighPerformance;
var defaultMonitoringEnabled = Properties.Resources.DefaultMonitoringEnabled;
var defaultAppTheme = Properties.Resources.DefaultAppTheme;
var defaultGameModeHotKey = Properties.Resources.DefaultGameModeHotKey;
Expand All @@ -112,7 +109,6 @@ private static void StartupSetup()
ConfigManager.IniWrite("OCProfile", defaultOcProfile);
ConfigManager.IniWrite("PowerPlanBalanced", powerPlanBalanced);
ConfigManager.IniWrite("PowerPlanPerformance", powerPlanPerformance);
ConfigManager.IniWrite("SBControl_File", sbControlFilePath);
ConfigManager.IniWrite("MSIAB_File", msiabFilePath);
ConfigManager.IniWrite("IsMonitoringEnabled", defaultMonitoringEnabled);
ConfigManager.IniWrite("AppTheme", defaultAppTheme);
Expand Down Expand Up @@ -147,27 +143,6 @@ private static void ReadSettings()
_audioDevice1 = ConfigManager.IniRead("AudioDeviceNo1");
_audioDevice2 = ConfigManager.IniRead("AudioDeviceNo2");
_defaultAudioDevice = ConfigManager.IniRead("DefaultAudioDevice");

var sbControlProfileFilePath = Properties.Resources.SBControl_ProfileFilePath;
var sbControlProfileRegPath = Properties.Resources.SBControl_ProfileRegPath;

//full path to profile folder
var userProfile = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
var sbPath = userProfile + @"\" + sbControlProfileFilePath;

//get folder name of subfolder/deviceID (HDAUDIO_VEN_10EC_DEV_0899_SUBSYS_11020041 etc)
var sbGetIdDir = Directory.GetDirectories(sbPath, "HDAUDIO*", SearchOption.TopDirectoryOnly);
var sbDeviceIdPath = string.Join("", sbGetIdDir);
var sbDeviceId = sbDeviceIdPath.Substring(sbDeviceIdPath.LastIndexOf(@"\", StringComparison.Ordinal) + 1);

//get registry key value for active profile using deviceID
var sbRegKeyName = sbControlProfileRegPath + sbDeviceId;
var sbGetValue = ConfigManager.RegReadKeyValue(sbRegKeyName, "Profile");
var sbRegKeyValue = sbGetValue.Substring(sbGetValue.LastIndexOf(@"\", StringComparison.Ordinal) + 1);

//read profile xml and extract profile_name value
var fullXmlFilePath = sbDeviceIdPath + @"\" + sbRegKeyValue;
_sbControlActiveProfile = ConfigManager.XmlRead(fullXmlFilePath);
}

private void SetAppTheme()
Expand Down Expand Up @@ -229,28 +204,16 @@ private void ShowActiveGpuProfile()

if (activePLvalue > defaultPLvalue)
{
GpuProfileBadge.Badge = " Overclock ";
GpuProfileBadge.Badge = " Overclock Profile ";
}
else
{
GpuProfileBadge.Badge = " Default ";
GpuProfileBadge.Badge = " Default Profile ";
}

showProfileProcess.WaitForExit();
}

//show which Audio profile is active
private void ShowActiveAudioProfile()
{
var soundBlasterActiveProfile = " " + _sbControlActiveProfile + " ";
var soundBlasterBadge = AudioProfileBadge.Badge.ToString();

if (soundBlasterBadge != soundBlasterActiveProfile)
{
AudioProfileBadge.Badge = " " + _sbControlActiveProfile + " ";
}
}

//show which Power Plan is active
private void ShowActivePowerPlan()
{
Expand All @@ -275,11 +238,11 @@ private void ShowActivePowerPlan()

if (activePlan.Contains(_powerPlanBalanced))
{
_activePowerPlan = " " + "Balanced" + " ";
_activePowerPlan = " " + "Balanced Profile" + " ";
}
if (activePlan.Contains(_powerPlanPerformance))
{
_activePowerPlan = " " + "Performance" + " ";
_activePowerPlan = " " + "High Performance Profile" + " ";
}

if (PowerPlanBadge.ToString() != _activePowerPlan)
Expand Down Expand Up @@ -584,10 +547,10 @@ private void GpuTile_OnClick(object sender, RoutedEventArgs e)

switch (badgeString)
{
case " Overclock ":
case " Overclock Profile ":
ApplyProfile("SetStock");
break;
case " Default ":
case " Default Profile ":
ApplyProfile("SetOC");
break;
}
Expand Down Expand Up @@ -642,10 +605,10 @@ private void PowerPlanTile_OnCLick(object sender, RoutedEventArgs e)

switch (badgeString)
{
case " Balanced ":
case " Balanced Profile ":
ApplyPowerPlan(_powerPlanPerformance);
break;
case " Performance ":
case " High Performance Profile ":
ApplyPowerPlan(_powerPlanBalanced);
break;
}
Expand Down Expand Up @@ -1003,10 +966,10 @@ private void HotKeyManager(object sender, KeyEventArgs e)
{
switch (PowerPlanBadge.Badge.ToString())
{
case " Performance " when GpuProfileBadge.Badge.ToString() == " Default ":
case " High Performance Profile " when GpuProfileBadge.Badge.ToString() == " Default Profile ":
GpuTile_OnClick(sender, e);
break;
case " Balanced " when GpuProfileBadge.Badge.ToString() == " Overclock ":
case " Balanced Profile " when GpuProfileBadge.Badge.ToString() == " Overclock Profile ":
PowerPlanTile_OnCLick(sender, e);
break;
default:
Expand Down Expand Up @@ -1045,7 +1008,6 @@ private void UninstallServiceButton_OnClick(object sender, RoutedEventArgs e)
private void MainWindow_Activated(object sender, EventArgs e)
{
ReadSettings();
ShowActiveAudioProfile();
ShowActiveGpuProfile();
ShowActivePowerPlan();
ShowDefaultAudioDevice();
Expand Down
2 changes: 1 addition & 1 deletion MiToolz/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,4 @@
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("3.5.2.0")]
[assembly: AssemblyFileVersion("3.6.0.0")]
31 changes: 2 additions & 29 deletions MiToolz/Properties/Resources.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 1 addition & 10 deletions MiToolz/Properties/Resources.resx
Original file line number Diff line number Diff line change
Expand Up @@ -166,16 +166,7 @@
<data name="PowerPlanBalanced" xml:space="preserve">
<value>381b4222-f694-41f0-9685-ff5bb260df2e</value>
</data>
<data name="PowerPlanPerformance" xml:space="preserve">
<data name="PowerPlanHighPerformance" xml:space="preserve">
<value>8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c</value>
</data>
<data name="SBControl_FilePath" xml:space="preserve">
<value>C:\Program Files (x86)\Creative\Sound Blaster Audigy Fx\Sound Blaster Audigy Fx Control Panel\SBAdgyFx.exe</value>
</data>
<data name="SBControl_ProfileFilePath" xml:space="preserve">
<value>AppData\Local\Creative\Sound Blaster Audigy Fx Control Panel\profile\</value>
</data>
<data name="SBControl_ProfileRegPath" xml:space="preserve">
<value>Software\Creative Tech\Sound Blaster Audigy Fx Control Panel\Settings\</value>
</data>
</root>
21 changes: 15 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@


## About >
Personal Nvidia GPU &amp; Creative SoundBlaster Audio QuickTool with built-in real-time monitoring
Personal Nvidia GPU &amp; Audio QuickTool with built-in real-time monitoring


## Framework & library dependencies >
Expand All @@ -17,11 +17,20 @@ NirCmd > https://www.nirsoft.net/utils/nircmd.html
(doesn't need to be running. MiToolz will send the selected profile to MSI-Afterburner and then close it immediately)


## Planned >
1. ~~Add ability to switch audio output devices from within MiToolz itself~~ >> Completed.
2. ~~Add option (service) for changing the Windows Timer Resolution setting, ie 1ms or 0.5ms etc~~ >> Completed.
3. Implement universal audio equalizer to remove reliance of proprietary audio software ie, Creative SoundBlaster control panel etc

## Features >
1. Ability to change MSI Afterburner Profiles on the fly
2. Option to change the Windows Power Plan between 'Balanced' and 'High Performance' Profiles
3. Swap between different Windows Audio Output Devices
4. Ability to switch between the default Windows Timer Resolution value and 0.5ms Timer Resolution (using new built in service which can be installed/uninstalled at any time within the settings panel)
5. Realtime System monitoring of the following data ..
- GPU Core Speed
- GPU Memory Speed
- GPU Core Load %
- GPU Memory Load %
- GPU Total Power Usage watts
- GPU Core Temperature
- CPU Core Speed
- CPU Core Temperature

## Screens >

Expand Down
Binary file modified images/MiToolz_ImageA.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified images/MiToolz_ImageB.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit d3effb5

Please sign in to comment.