@@ -256,8 +256,10 @@ public void SuspendDeviceProviders()
256256 try
257257 {
258258 _renderService . Value . IsPaused = true ;
259- foreach ( DeviceProvider deviceProvider in _pluginManagementService . GetFeaturesOfType < DeviceProvider > ( ) . Where ( d => d . SuspendSupported ) )
260- SuspendDeviceProvider ( deviceProvider ) ;
259+ foreach ( DeviceProvider deviceProvider in _pluginManagementService . GetFeaturesOfType < DeviceProvider > ( ) )
260+ {
261+ SuspendDeviceProvider ( deviceProvider , deviceProvider . SuspendSupported ) ;
262+ }
261263 }
262264 finally
263265 {
@@ -278,7 +280,9 @@ public void ResumeDeviceProviders()
278280 {
279281 _renderService . Value . IsPaused = true ;
280282 foreach ( DeviceProvider deviceProvider in _suspendedDeviceProviders . ToList ( ) )
283+ {
281284 ResumeDeviceProvider ( deviceProvider ) ;
285+ }
282286 }
283287 finally
284288 {
@@ -287,7 +291,7 @@ public void ResumeDeviceProviders()
287291 }
288292 }
289293
290- private void SuspendDeviceProvider ( DeviceProvider deviceProvider )
294+ private void SuspendDeviceProvider ( DeviceProvider deviceProvider , bool callSuspend )
291295 {
292296 if ( _suspendedDeviceProviders . Contains ( deviceProvider ) )
293297 {
@@ -298,7 +302,10 @@ private void SuspendDeviceProvider(DeviceProvider deviceProvider)
298302 try
299303 {
300304 _pluginManagementService . DisablePluginFeature ( deviceProvider , false ) ;
301- deviceProvider . Suspend ( ) ;
305+ if ( callSuspend )
306+ {
307+ deviceProvider . Suspend ( ) ;
308+ }
302309 _suspendedDeviceProviders . Add ( deviceProvider ) ;
303310 _logger . Information ( "Device provider {DeviceProvider} suspended" , deviceProvider . Info . Name ) ;
304311 }
@@ -445,4 +452,4 @@ protected virtual void OnLedsChanged()
445452 }
446453
447454 #endregion
448- }
455+ }
0 commit comments