diff --git a/MiToolz/App.xaml b/MiToolz/App.xaml index 5e2842d..19318ac 100644 --- a/MiToolz/App.xaml +++ b/MiToolz/App.xaml @@ -16,9 +16,9 @@ MiToolz v3.5.2 + xml:space="preserve"> MiToolz v3.6.0 Build Date : 29-06-2020 + xml:space="preserve"> Build Date : 16-07-2020 diff --git a/MiToolz/ListManager.cs b/MiToolz/ListManager.cs index 7d03d2f..14839a2 100644 --- a/MiToolz/ListManager.cs +++ b/MiToolz/ListManager.cs @@ -49,7 +49,6 @@ internal IEnumerable ControlsMainTiles { _mw.GpuTile, _mw.PowerPlanTile, - _mw.AudioTile, _mw.TimerResolutionTile, _mw.AudioDeviceSwitchTile }; diff --git a/MiToolz/MainWindow.xaml b/MiToolz/MainWindow.xaml index 1b53b7b..827f54c 100644 --- a/MiToolz/MainWindow.xaml +++ b/MiToolz/MainWindow.xaml @@ -236,7 +236,7 @@ + IsTabStop="False" + Width="202"> + IsTabStop="False" + Width="223"> - - - - - @@ -329,12 +306,11 @@ BadgePlacementMode="Top" BadgeBackground="DarkGray" Height="76"> - + Width="99" + Height="76" /> diff --git a/MiToolz/MainWindow.xaml.cs b/MiToolz/MainWindow.xaml.cs index 9e0f046..23d31bb 100644 --- a/MiToolz/MainWindow.xaml.cs +++ b/MiToolz/MainWindow.xaml.cs @@ -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; @@ -62,7 +61,6 @@ public MainWindow() //run startup checks, read all config settings and set corresponding UI elements StartupSetup(); SetAppTheme(); - ShowActiveAudioProfile(); ShowActiveGpuProfile(); ShowActivePowerPlan(); ShowDefaultAudioDevice(); @@ -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; @@ -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); @@ -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() @@ -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() { @@ -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) @@ -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; } @@ -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; } @@ -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: @@ -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(); diff --git a/MiToolz/Properties/AssemblyInfo.cs b/MiToolz/Properties/AssemblyInfo.cs index d7db696..870fd7c 100644 --- a/MiToolz/Properties/AssemblyInfo.cs +++ b/MiToolz/Properties/AssemblyInfo.cs @@ -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")] diff --git a/MiToolz/Properties/Resources.Designer.cs b/MiToolz/Properties/Resources.Designer.cs index 9336fde..3b0403b 100644 --- a/MiToolz/Properties/Resources.Designer.cs +++ b/MiToolz/Properties/Resources.Designer.cs @@ -213,36 +213,9 @@ internal static string PowerPlanBalanced { /// /// Looks up a localized string similar to 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c. /// - internal static string PowerPlanPerformance { + internal static string PowerPlanHighPerformance { get { - return ResourceManager.GetString("PowerPlanPerformance", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to C:\Program Files (x86)\Creative\Sound Blaster Audigy Fx\Sound Blaster Audigy Fx Control Panel\SBAdgyFx.exe. - /// - internal static string SBControl_FilePath { - get { - return ResourceManager.GetString("SBControl_FilePath", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to AppData\Local\Creative\Sound Blaster Audigy Fx Control Panel\profile\. - /// - internal static string SBControl_ProfileFilePath { - get { - return ResourceManager.GetString("SBControl_ProfileFilePath", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Software\Creative Tech\Sound Blaster Audigy Fx Control Panel\Settings\. - /// - internal static string SBControl_ProfileRegPath { - get { - return ResourceManager.GetString("SBControl_ProfileRegPath", resourceCulture); + return ResourceManager.GetString("PowerPlanHighPerformance", resourceCulture); } } } diff --git a/MiToolz/Properties/Resources.resx b/MiToolz/Properties/Resources.resx index 4844028..5f36ab1 100644 --- a/MiToolz/Properties/Resources.resx +++ b/MiToolz/Properties/Resources.resx @@ -166,16 +166,7 @@ 381b4222-f694-41f0-9685-ff5bb260df2e - + 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c - - C:\Program Files (x86)\Creative\Sound Blaster Audigy Fx\Sound Blaster Audigy Fx Control Panel\SBAdgyFx.exe - - - AppData\Local\Creative\Sound Blaster Audigy Fx Control Panel\profile\ - - - Software\Creative Tech\Sound Blaster Audigy Fx Control Panel\Settings\ - \ No newline at end of file diff --git a/README.md b/README.md index 9bbcb59..7922344 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ## About > -Personal Nvidia GPU & Creative SoundBlaster Audio QuickTool with built-in real-time monitoring +Personal Nvidia GPU & Audio QuickTool with built-in real-time monitoring ## Framework & library dependencies > @@ -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 > diff --git a/images/MiToolz_ImageA.png b/images/MiToolz_ImageA.png index b5c6648..7d648cc 100644 Binary files a/images/MiToolz_ImageA.png and b/images/MiToolz_ImageA.png differ diff --git a/images/MiToolz_ImageB.png b/images/MiToolz_ImageB.png index 13481e4..d86a513 100644 Binary files a/images/MiToolz_ImageB.png and b/images/MiToolz_ImageB.png differ