From dcff47ce2714a83a9038538c583bdd83a73f7334 Mon Sep 17 00:00:00 2001
From: Inga Lovinde <52715130+inga-lovinde@users.noreply.github.com>
Date: Sat, 22 Aug 2020 17:47:17 +0300
Subject: [PATCH] Improved service restart experience
---
.../RadeonResetBugFixService.csproj | 3 ++-
.../Tasks/BasicTasks/StartAudioServiceTask.cs | 15 +++++++++++++++
.../Tasks/ComplexTasks/ShutdownTask.cs | 1 +
3 files changed, 18 insertions(+), 1 deletion(-)
create mode 100644 RadeonResetBugFixService/Tasks/BasicTasks/StartAudioServiceTask.cs
diff --git a/RadeonResetBugFixService/RadeonResetBugFixService.csproj b/RadeonResetBugFixService/RadeonResetBugFixService.csproj
index c584c29..8fe4ff4 100644
--- a/RadeonResetBugFixService/RadeonResetBugFixService.csproj
+++ b/RadeonResetBugFixService/RadeonResetBugFixService.csproj
@@ -87,7 +87,6 @@
RadeonResetBugFixService.cs
-
@@ -100,11 +99,13 @@
+
+
diff --git a/RadeonResetBugFixService/Tasks/BasicTasks/StartAudioServiceTask.cs b/RadeonResetBugFixService/Tasks/BasicTasks/StartAudioServiceTask.cs
new file mode 100644
index 0000000..3988541
--- /dev/null
+++ b/RadeonResetBugFixService/Tasks/BasicTasks/StartAudioServiceTask.cs
@@ -0,0 +1,15 @@
+namespace RadeonResetBugFixService.Tasks.BasicTasks
+{
+ using System;
+ using System.ServiceProcess;
+
+ class StartAudioServiceTask : AbstractServiceTask
+ {
+ public override string TaskName => "Stopping audio service";
+
+ protected override bool ShouldStart(ServiceController serviceInfo)
+ {
+ return serviceInfo.ServiceName.Equals("audiosrv", StringComparison.OrdinalIgnoreCase);
+ }
+ }
+}
diff --git a/RadeonResetBugFixService/Tasks/ComplexTasks/ShutdownTask.cs b/RadeonResetBugFixService/Tasks/ComplexTasks/ShutdownTask.cs
index 7a62ac2..fbbfd1c 100644
--- a/RadeonResetBugFixService/Tasks/ComplexTasks/ShutdownTask.cs
+++ b/RadeonResetBugFixService/Tasks/ComplexTasks/ShutdownTask.cs
@@ -22,6 +22,7 @@
new DisableAmdVideoTask(this.Context.ShutdownDevicesStatus),
new LastResortDevicesRestoreTask(this.Context.StartupDevicesStatus),
new LastResortDevicesRestoreTask(this.Context.StartupDevicesStatus), // just in case
+ new StartAudioServiceTask(),
new DisableBasicDisplayStartupTask(this.Context.StartupDevicesStatus),
};
}